From: martin f. krafft Date: Thu, 14 Oct 2021 02:22:02 +0000 (+1300) Subject: Merge commit '907d4569b0384e76f9e3ca4a6a7ee917712c031d' into tmp X-Git-Url: https://git.madduck.net/etc/vim.git/commitdiff_plain/d5c95f6a8f274f42cce81bfe544266a7bb53474b?hp=907d4569b0384e76f9e3ca4a6a7ee917712c031d Merge commit '907d4569b0384e76f9e3ca4a6a7ee917712c031d' into tmp --- diff --git a/.gitignore.d/vim b/.gitignore.d/vim new file mode 100644 index 0000000..f3ace18 --- /dev/null +++ b/.gitignore.d/vim @@ -0,0 +1,64 @@ +* +!/.gitignore.d/vim +!/.var/vim/.gitignore +!/.vim/after/ftplugin/automake.vim +!/.vim/after/ftplugin/debchangelog.vim +!/.vim/after/ftplugin/diff.vim +!/.vim/after/ftplugin/gitcommit.vim +!/.vim/after/ftplugin/git.vim +!/.vim/after/ftplugin/mail.vim +!/.vim/after/ftplugin/make.vim +!/.vim/after/ftplugin/nroff.vim +!/.vim/after/ftplugin/perl.vim +!/.vim/after/ftplugin/puppet.vim +!/.vim/after/ftplugin/python.vim +!/.vim/after/ftplugin/rst.vim +!/.vim/after/ftplugin/tex.vim +!/.vim/after/ftplugin/vo_base.vim +!/.vim/after/plugin/TabularMaps.vim +!/.vim/after/syntax/tex.vim +!/.vim/autoload/pathogen.vim +!/.vim/autoload/tabular.vim +!/.vim/autoload/voom/voom_vimplugin2657/__pycache__/__init__.cpython-37.pyc +!/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_mode_fmr.cpython-37.pyc +!/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_vim.cpython-37.pyc +!/.vim/bundle/explainpat/autoload/explainpat.vim +!/.vim/bundle/explainpat/autoload/nwo/magic.vim +!/.vim/bundle/explainpat/doc/explainpat.txt +!/.vim/bundle/explainpat/.gitignore +!/.vim/bundle/explainpat/plugin/explainpat.vim +!/.vim/bundle/explainpat/README +!/.vim/bundle/password-store/doc/vim-password-store.txt +!/.vim/bundle/password-store/ftdetect/pass.vim +!/.vim/bundle/password-store/ftplugin/pass.vim +!/.vim/bundle/password-store/LICENSE +!/.vim/bundle/password-store/README.md +!/.vim/bundle/password-store/syntax/pass.vim +!/.vim/colors/madduck.vim +!/.vim/doc/.gitignore +!/.vim/doc/Tabular.txt +!/.vim/ftdetect/itsalltext.vim +!/.vim/ftdetect/mediawiki.vim +!/.vim/ftdetect/puppet.vim +!/.vim/ftplugin/gitcommit.vim +!/.vim/ftplugin/gitconfig.vim +!/.vim/ftplugin/itsalltext.vim +!/.vim/ftplugin/latex-suite/.gitignore +!/.vim/ftplugin/mediawiki.vim +!/.vim/ftplugin/tex.vim +!/.vim/ftplugin/vcard.vim +!/.vim/.gitignore +!/.vim/macros/table.vim +!/.vim/plugin/justify.vim +!/.vim/plugin/lbdbq.vim +!/.vim/plugin/matchit.vim +!/.vim/plugin/Tabular.vim +!/.vimrc +!/.vim/spell/en.utf-8.add +!/.vim/spell/.gitignore +!/.vim/syntax/jinja.vim +!/.vim/syntax/mediawiki.vim +!/.vim/syntax/puppet.vim +!/.vim/syntax/tex.vim +!/.vim/vimplaterc +!/.zsh/zshenv/parts.d/50-vim diff --git a/.var/vim/.gitignore b/.var/vim/.gitignore new file mode 100644 index 0000000..0199914 --- /dev/null +++ b/.var/vim/.gitignore @@ -0,0 +1,2 @@ +view +viminfo diff --git a/.vim/.gitignore b/.vim/.gitignore new file mode 100644 index 0000000..6e92f57 --- /dev/null +++ b/.vim/.gitignore @@ -0,0 +1 @@ +tags diff --git a/.vim/UltiSnips/mail.snippets b/.vim/UltiSnips/mail.snippets new file mode 100644 index 0000000..65d25f9 --- /dev/null +++ b/.vim/UltiSnips/mail.snippets @@ -0,0 +1,82 @@ +snippet sgf "Sehr geehrte Frau" b +Sehr geehrte Frau $1, + +$0 +endsnippet + +snippet sgh "Sehr geehrter Herr" b +Sehr geehrter Herr $1, + +$0 +endsnippet + +snippet sghn "Sehr geehrte Herren" b +Sehr geehrte Herren, + +$0 +endsnippet + +snippet lf "Liebe Frau" b +Liebe Frau $1, + +$0 +endsnippet + +snippet lh "Lieber Herr" b +Lieber Herr $1, + +$0 +endsnippet + +snippet sgdh "Sehr geehrte Damen und Herren" b +Sehr geehrte Damen und Herren, + +$0 +endsnippet + +snippet twimc "To Whom It May Concern" b +To Whom It May Concern: + +$0 +endsnippet + +snippet lg "Liebe Grüsse" b +Liebe Grüsse, +${0:Martin Krafft} +endsnippet + +snippet fg "Freundliche Grüsse" b +Freundliche Grüsse, +${0:Martin Krafft} +endsnippet + +snippet mfg "Mit freundlichen Grüssen" b +Mit freundlichen Grüssen, +${0:Martin Krafft} +endsnippet + +snippet mbg "Mit den besten Grüssen" b +Mit den besten Grüssen, +${0:Martin Krafft} +endsnippet + +snippet hg "Herzliche Grüsse" b +Herzliche Grüsse, +${0:Martin Krafft} +endsnippet + +snippet mhg "Mit herzlichen Grüssen" b +Mit herzlichen Grüssen, +${0:Martin Krafft} +endsnippet + +snippet mbbg "Mit bundesbrüderlichen Grüssen" b +Mit bundesbrüderlichen Grüssen, +${0:Martin Krafft} +endsnippet + +snippet mvbg "Mit verbandsbrüderlichen Grüssen" b +Mit verbandsbrüderlichen Grüssen, +${0:Martin Krafft} +endsnippet + diff --git a/.vim/UltiSnips/python.snippets b/.vim/UltiSnips/python.snippets new file mode 100644 index 0000000..ecb4e8e --- /dev/null +++ b/.vim/UltiSnips/python.snippets @@ -0,0 +1,10 @@ +snippet #! "My own Python hashbang" b +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +# +# Copyright © ${1:2021} martin f. krafft <${2:m@rtin.kiwi}> +# Released under the ${3:MIT} Licence. +# + +$0 +endsnippet diff --git a/.vim/after/ftplugin/automake.vim b/.vim/after/ftplugin/automake.vim new file mode 100644 index 0000000..bbd8967 --- /dev/null +++ b/.vim/after/ftplugin/automake.vim @@ -0,0 +1 @@ +setlocal noexpandtab diff --git a/.vim/after/ftplugin/debchangelog.vim b/.vim/after/ftplugin/debchangelog.vim new file mode 100644 index 0000000..d352495 --- /dev/null +++ b/.vim/after/ftplugin/debchangelog.vim @@ -0,0 +1,3 @@ +setlocal foldclose= +setlocal nofoldenable +setlocal comments+=f:- diff --git a/.vim/after/ftplugin/diff.vim b/.vim/after/ftplugin/diff.vim new file mode 100644 index 0000000..bbd8967 --- /dev/null +++ b/.vim/after/ftplugin/diff.vim @@ -0,0 +1 @@ +setlocal noexpandtab diff --git a/.vim/after/ftplugin/git.vim b/.vim/after/ftplugin/git.vim new file mode 100644 index 0000000..446f25e --- /dev/null +++ b/.vim/after/ftplugin/git.vim @@ -0,0 +1 @@ +setlocal textwidth=72 diff --git a/.vim/after/ftplugin/gitcommit.vim b/.vim/after/ftplugin/gitcommit.vim new file mode 100644 index 0000000..bfefe09 --- /dev/null +++ b/.vim/after/ftplugin/gitcommit.vim @@ -0,0 +1,3 @@ +" display the git-diff --cached in window below commit +" assumes nosplitbelow set. Might want to use wincmd p otherwise +DiffGitCached | wincmd J diff --git a/.vim/after/ftplugin/mail.vim b/.vim/after/ftplugin/mail.vim new file mode 100644 index 0000000..2ab8174 --- /dev/null +++ b/.vim/after/ftplugin/mail.vim @@ -0,0 +1,213 @@ +setlocal textwidth=68 +setlocal formatoptions-=o +setlocal formatoptions-=r +setlocal formatoptions-=l +setlocal formatoptions+=a +setlocal formatoptions+=w +setlocal formatoptions+=n + +setlocal comments=n:> + +"setlocal spell + +augroup tsperrorinsert + au! +augroup END +match none /\s*$/ +augroup listinsert + au! +augroup END +setlocal list + +" Dynamically set format options, depending on where you are in a +" mail, idea from Teemu Likonen: +" http://groups.google.com/group/vim_use/msg/f59e5c1adc6be2b3 + +let s:defaults = "setlocal fo=".&fo +" tw=".&tw." ts=".&ts." sts=".&sts." sw=".&sw." fo=".&fo +execute s:defaults +let b:MailAreaDetect=1 + +nnoremap :call MailAreaDetect_Switch(0) +inoremap :call MailAreaDetect_Switch(1) + +function! s:MailAreaDetect_Switch(vmode) + if b:MailAreaDetect + silent call MailAreaDetect_Off() + let b:MailAreaDetect=0 + echo 'MailAreaDetect Off' + if a:vmode + sleep 1 + endif + else + silent call MailAreaDetect_On() + let b:MailAreaDetect=1 + echo 'MailAreaDetect On' + if a:vmode + sleep 1 + endif + endif +endfu + +function! s:MailAreaDetect_On() + silent autocmd! MailAreaDetect CursorMoved,CursorMoved + \ call AreaOptions() + let b:MailAreaDetect=1 +endfunction + +function! s:MailAreaDetect_Off() + silent autocmd! MailAreaDetect + execute s:defaults + let b:MailAreaDetect=0 +endfunction + +augroup MailAreaDetect + autocmd! + call MailAreaDetect_On() +augroup END + +function! s:AreaOptions() + execute s:defaults + + let s:synCur = synIDattr(synID(line("."),1,0),"name") + let s:synNext = synIDattr(synID(line(".")+1,1,0),"name") + + if s:synNext =~ '^mailQuote' && s:synCur == '' && getline('.') =~ '^.' + " elseif getline('.') =~ '^\s*[^>]' && getline(line('.')+1) =~ '\m^\s*>' + setlocal fo-=a + "echo 'Quotation leader (fo='.&fo.')' + elseif s:synCur =~ '^mailQuote' + " elseif getline('.') =~ '\m^\s*>' + setlocal fo-=a + "echo 'Quotation (fo='.&fo.')' + elseif CheckArea('\m^--- .*\n^+++ ','\v(^$|\n^-- $)') + setlocal fo-=a fo-=w fo-=t noet + "echo 'Patch (fo='.&fo.')' + elseif s:synCur == '' && s:synNext =~ '^mailSignature' + " elseif getline(line('.')+1) =~ '\m^-- $' + setlocal fo-=a fo-=w fo-=t + "echo 'Last line before signature (fo='.&fo.')' + elseif s:synCur =~ '^mailSignature' + " elseif CheckArea('^-- $','^$') + setlocal fo-=a fo-=w fo-=t + "echo 'Signature (fo='.&fo.')' + elseif s:synCur =~ '^mail' + " if CheckArea('\v^From( |: ).*\n','\v^$') + setlocal fo-=a fo-=w fo-=t + "echo 'Header (fo='.&fo.')' + else + "echo 'My text (fo='.&fo.')' + endif +endfunction + +function! s:CheckArea(start, end) + return (search(a:start,'bcnW')-line('.')) > + \ (search(a:end,'bnW')-line('.')) +endfunction + +function! FixQuotes() + let l:i = 0 + let l:lineNxt = getline(l:i) + let l:synNxt = synIDattr(synID(l:i,1,0),"name") + while l:i < line('$')-1 + let l:lineCur = l:lineNxt + let l:synCur = l:synNxt + let l:lineNxt = getline(l:i+1) + let l:synNxt = synIDattr(synID(l:i+1,1,0),"name") + if l:synCur =~ '^mailQuote' && l:lineCur =~ '\w.*\S$' && + \ l:synNxt =~ '^mailQuote' && l:lineNxt =~ '\w' + call setline(l:i, l:lineCur . ' ') + endif + let l:i += 1 + endwhile +endfunction + +augroup fixquotes + au! + autocmd BufWinEnter $TMPDIR/mutt-* call FixQuotes() +augroup END + +nmap :w:%!mailplate --keep-unknown official +nmap :w:%!mailplate --keep-unknown tahi +nmap :w:%!mailplate --keep-unknown kiwi +nmap :w:%!mailplate --keep-unknown pobox +nmap :w:%!mailplate --keep-unknown kbkg +nmap :w:%!mailplate --keep-unknown debian +nmap :w:%!mailplate --keep-unknown uniwh +nmap :w:%!mailplate --keep-unknown mtfk +nmap :w:%!mailplate --keep-unknown sudetia +nmap :w:%!mailplate --keep-unknown thorndonsquashtc +nmap :w:%!mailplate --keep-unknown default +nmap :w:%!mailplate --auto --keep-unknown 2>/dev/null + +" change subject line +" Before: Subject: old +" After : Subject: New (was: old) +" http://strcat.de/wiki/dotfiles#vim +" map ,sw 1G/^Subject: :s/Re:/was:/Wi ($)0Whi +map ns 1G/^Subject: /:s,\(Subject: \)\(Re: \)*\(.*\)$,\1 (was: \3),:set nohlsf li + +" Delete 'was' in the Subject. +" Before: Subject: New (was: old) +" After : Subject: New +" http://strcat.de/wiki/dotfiles#vim +map dw 1G/^Subject: /:s, *(was: .*)$:set nohlsf l + +" http://dollyfish.net.nz/blog/2008-04-01/mutt-and-vim-custom-autocompletion +fun! LBDBCompleteFn(findstart, base) + let line = getline('.') + if a:findstart + " locate the start of the word + let start = col('.') - 1 + while start > 0 && line[start - 1] =~ '[^:,]' + let start -= 1 + endwhile + while start < col('.') && line[start] =~ '[:, ]' + let start += 1 + endwhile + return start + else + let res = [] + let query = substitute(a:base, '"', '', 'g') + let query = substitute(query, '\s*<.*>\s*', '', 'g') + for m in LbdbQuery(query) + call complete_add(printf('"%s" <%s>', escape(m[0], '"'), m[1])) + if complete_check() + break + endif + endfor + return res + endif +endfun +set completefunc=LBDBCompleteFn + +" And this magic by James Vega, which ensures that we only complete with lbdb +" on the recipient lines of the mail header. +inoremap DelegateCompletion(1) +inoremap DelegateCompletion(0) + +fun! DelegateCompletion(next) + if getline('.') =~? '^\%(To\|B\=Cc\):' + return "\x18\x15" + elseif a:next + return "\x0e" + else + return "\x10" + endif +endfun + +function! WriteMailBackup() + let l:tmpdir = fnameescape((exists('$TMPDIR') ? expand('$TMPDIR') : '/tmp')) + let l:tgtdir = l:tmpdir . '/mail-backups' + call mkdir(l:tgtdir, "p", 0o700) + let l:modified = &modified + let l:filename = l:tgtdir . '/' . strftime('%Y-%m-%d-%H%M%S') . '.msg' + exe 'silent update! ' . l:filename + if 0 && l:modified + echo 'Backup written to ' . l:filename + endif +endfunction +autocmd BufWritePre call WriteMailBackup() + +let g:markdown_in_mail = 1 +runtime! ftplugin/markdown.vim diff --git a/.vim/after/ftplugin/make.vim b/.vim/after/ftplugin/make.vim new file mode 100644 index 0000000..bbd8967 --- /dev/null +++ b/.vim/after/ftplugin/make.vim @@ -0,0 +1 @@ +setlocal noexpandtab diff --git a/.vim/after/ftplugin/markdown.vim b/.vim/after/ftplugin/markdown.vim new file mode 100644 index 0000000..0382d5d --- /dev/null +++ b/.vim/after/ftplugin/markdown.vim @@ -0,0 +1,19 @@ +if !exists("g:markdown_in_mail") + setlocal wrap + setlocal linebreak + setlocal textwidth=0 + + " treat wrapped lines normally + nnoremap k gk + nnoremap gk + inoremap gk + nnoremap j gj + nnoremap gj + inoremap gj + nnoremap 0 g0 + nnoremap g0 + inoremap g0 + nnoremap $ g$ + nnoremap g$ + inoremap g$ +end diff --git a/.vim/after/ftplugin/nroff.vim b/.vim/after/ftplugin/nroff.vim new file mode 100644 index 0000000..1eb89d9 --- /dev/null +++ b/.vim/after/ftplugin/nroff.vim @@ -0,0 +1 @@ +setlocal tw=75 diff --git a/.vim/after/ftplugin/perl.vim b/.vim/after/ftplugin/perl.vim new file mode 100644 index 0000000..f419622 --- /dev/null +++ b/.vim/after/ftplugin/perl.vim @@ -0,0 +1,3 @@ +setlocal sw=8 +setlocal sts=8 +setlocal noet diff --git a/.vim/after/ftplugin/puppet.vim b/.vim/after/ftplugin/puppet.vim new file mode 100644 index 0000000..54363e7 --- /dev/null +++ b/.vim/after/ftplugin/puppet.vim @@ -0,0 +1,3 @@ +setlocal sw=4 +setlocal sts=4 +iunab ➬ diff --git a/.vim/after/ftplugin/python.vim b/.vim/after/ftplugin/python.vim new file mode 100644 index 0000000..34edf01 --- /dev/null +++ b/.vim/after/ftplugin/python.vim @@ -0,0 +1,20 @@ +let python_highlight_all=1 + +let g:linelength = 79 + +setlocal sw=4 +setlocal sts=4 +let &l:textwidth=g:linelength +setlocal autoindent + +setlocal formatoptions+=bl + +nnoremap :Black +inoremap :Black +nnoremap :call flake8#Flake8() +inoremap :call flake8#Flake8() + +let g:flake8_quickfix_height=3 +let g:black_linelength = g:linelength + +imap t import ipdb; ipdb.set_trace() diff --git a/.vim/after/ftplugin/rst.vim b/.vim/after/ftplugin/rst.vim new file mode 100644 index 0000000..d194443 --- /dev/null +++ b/.vim/after/ftplugin/rst.vim @@ -0,0 +1,4 @@ +"setlocal formatoptions+=a +setlocal formatoptions-=n +setlocal formatoptions-=o +setlocal formatoptions-=r diff --git a/.vim/after/ftplugin/tex.vim b/.vim/after/ftplugin/tex.vim new file mode 100644 index 0000000..eddf539 --- /dev/null +++ b/.vim/after/ftplugin/tex.vim @@ -0,0 +1,7 @@ +setlocal formatoptions-=r +setlocal formatoptions-=o +setlocal formatoptions-=n + +setlocal iskeyword+=: + +"setlocal spell diff --git a/.vim/after/ftplugin/vo_base.vim b/.vim/after/ftplugin/vo_base.vim new file mode 100644 index 0000000..6f5fe3d --- /dev/null +++ b/.vim/after/ftplugin/vo_base.vim @@ -0,0 +1 @@ +setlocal nolist diff --git a/.vim/after/plugin/TabularMaps.vim b/.vim/after/plugin/TabularMaps.vim new file mode 120000 index 0000000..236e16a --- /dev/null +++ b/.vim/after/plugin/TabularMaps.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/after/plugin/TabularMaps.vim \ No newline at end of file diff --git a/.vim/after/syntax/tex.vim b/.vim/after/syntax/tex.vim new file mode 100644 index 0000000..ea9ea67 --- /dev/null +++ b/.vim/after/syntax/tex.vim @@ -0,0 +1,38 @@ +syn region texRefZone matchgroup=texRefZone start="\\[acefmptl]label{" end="}\|%stopzone\>" contains=@texRefGroup +syn region texRefZone matchgroup=texRefZone start="\\[aAcCeEfFmMpPtTlL][rvx]\=ref{" end="}\|%stopzone\>" contains=@texRefGroup + +syn region texMyForeign matchgroup=texTypeStyle start="\\foreign{" end="}" contains=texMatcher,@NoSpell +syn cluster texFoldGroup add=texMyForeign +syn cluster texMatchGroup add=texMyForeign + +syn region texMyTTerm matchgroup=texTypeStyle start="\\tterm{" end="}" contains=texMatcher,@NoSpell +syn cluster texFoldGroup add=texMyTTerm +syn cluster texMatchGroup add=texMyTTerm + +syn region texTodoCmd matchgroup=texTodoCmd start="\\todo{" end="}\|%stopzone\>" contains=@texMatchGroup,@NoSpell,texMatcher +syn cluster texFoldGroup add=texTodoCmd +syn cluster texMatchGroup add=texTodoCmd +hi def link texTodoCmd texTodo + +syn match texCiteNeeded '\\citeneeded\ze:\=\>' +syn cluster texFoldGroup add=texCiteNeeded +syn cluster texMatchGroup add=texCiteNeeded +hi def link texCiteNeeded texTodo + +syn region texHighlit matchgroup=texHighlit start="\\highlit{" end="}\|%stopzone\>" contains=@texMatchGroup +syn cluster texFoldGroup add=texHighlit +syn cluster texMatchGroup add=texHighlit +hi def link texHighlit Highlit + +syn region texDLMsg matchgroup=texDLMsg start="\\d[lp]msg{" end="}\|%stopzone\>" contains=@NoSpell +syn cluster texFoldGroup add=texDLMsg +syn cluster texMatchGroup add=texDLMsg + +syn match texMySection '^\\section{.*' +syn match texMySubSection '^\\subsection{.*' +syn match texMySubSubSection '^\\subsubsection{.*' +syn match texMyParagraph '^\\paragraph{.*' +hi texMySection ctermbg=gray ctermfg=white cterm=bold term=reverse +hi texMySubSection ctermbg=cyan ctermfg=black cterm=none term=reverse +hi texMySubSubSection ctermbg=none ctermfg=blue cterm=bold term=reverse +hi texMyParagraph ctermbg=none ctermfg=black cterm=bold term=reverse diff --git a/.vim/autoload/editorconfig.vim b/.vim/autoload/editorconfig.vim new file mode 120000 index 0000000..c6d022e --- /dev/null +++ b/.vim/autoload/editorconfig.vim @@ -0,0 +1 @@ +/usr/share/vim-editorconfig/autoload/editorconfig.vim \ No newline at end of file diff --git a/.vim/autoload/fugitive.vim b/.vim/autoload/fugitive.vim new file mode 120000 index 0000000..62940ba --- /dev/null +++ b/.vim/autoload/fugitive.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/autoload/fugitive.vim \ No newline at end of file diff --git a/.vim/autoload/khuno.vim b/.vim/autoload/khuno.vim new file mode 120000 index 0000000..bdff76c --- /dev/null +++ b/.vim/autoload/khuno.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/autoload/khuno.vim \ No newline at end of file diff --git a/.vim/autoload/pathogen.vim b/.vim/autoload/pathogen.vim new file mode 120000 index 0000000..aa9233f --- /dev/null +++ b/.vim/autoload/pathogen.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/autoload/pathogen.vim \ No newline at end of file diff --git a/.vim/autoload/tabular.vim b/.vim/autoload/tabular.vim new file mode 120000 index 0000000..e10a6f5 --- /dev/null +++ b/.vim/autoload/tabular.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/autoload/tabular.vim \ No newline at end of file diff --git a/.vim/autoload/vim_snippets.vim b/.vim/autoload/vim_snippets.vim new file mode 120000 index 0000000..7a266b6 --- /dev/null +++ b/.vim/autoload/vim_snippets.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/autoload/vim_snippets.vim \ No newline at end of file diff --git a/.vim/autoload/voom/voom_vimplugin2657/__pycache__/__init__.cpython-37.pyc b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000..fbfd99b Binary files /dev/null and b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/__init__.cpython-37.pyc differ diff --git a/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_mode_fmr.cpython-37.pyc b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_mode_fmr.cpython-37.pyc new file mode 100644 index 0000000..bca8ee3 Binary files /dev/null and b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_mode_fmr.cpython-37.pyc differ diff --git a/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_vim.cpython-37.pyc b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_vim.cpython-37.pyc new file mode 100644 index 0000000..2120ec2 Binary files /dev/null and b/.vim/autoload/voom/voom_vimplugin2657/__pycache__/voom_vim.cpython-37.pyc differ diff --git a/.vim/autoload/youcompleteme.vim b/.vim/autoload/youcompleteme.vim new file mode 120000 index 0000000..861db0b --- /dev/null +++ b/.vim/autoload/youcompleteme.vim @@ -0,0 +1 @@ +/usr/share/vim-youcompleteme/autoload/youcompleteme.vim \ No newline at end of file diff --git a/.vim/black/.gitignore b/.vim/black/.gitignore new file mode 100644 index 0000000..925dbdd --- /dev/null +++ b/.vim/black/.gitignore @@ -0,0 +1,3 @@ +* +!/pyenv.cgf +!/.gitignore diff --git a/.vim/black/pyvenv.cfg b/.vim/black/pyvenv.cfg new file mode 100644 index 0000000..7480373 --- /dev/null +++ b/.vim/black/pyvenv.cfg @@ -0,0 +1,3 @@ +home = /usr/bin +include-system-site-packages = true +version = 3.9.7 diff --git a/.vim/bundle/black/.coveragerc b/.vim/bundle/black/.coveragerc new file mode 100644 index 0000000..5577e49 --- /dev/null +++ b/.vim/bundle/black/.coveragerc @@ -0,0 +1,9 @@ +[report] +omit = + src/blib2to3/* + tests/data/* + */site-packages/* + .tox/* + +[run] +relative_files = True diff --git a/.vim/bundle/black/.flake8 b/.vim/bundle/black/.flake8 new file mode 100644 index 0000000..ae11a13 --- /dev/null +++ b/.vim/bundle/black/.flake8 @@ -0,0 +1,7 @@ +[flake8] +ignore = E203, E266, E501, W503 +# line length is intentionally set to 80 here because black uses Bugbear +# See https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#line-length for more details +max-line-length = 80 +max-complexity = 18 +select = B,C,E,F,W,T4,B9 diff --git a/.vim/bundle/black/.github/CODE_OF_CONDUCT.md b/.vim/bundle/black/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..dbd5f23 --- /dev/null +++ b/.vim/bundle/black/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,11 @@ +# Treat each other well + +Everyone participating in the _Black_ project, and in particular in the issue tracker, +pull requests, and social media activity, is expected to treat other people with respect +and more generally to follow the guidelines articulated in the +[Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/). + +At the same time, humor is encouraged. In fact, basic familiarity with Monty Python's +Flying Circus is expected. We are not savages. + +And if you _really_ need to slap somebody, do it with a fish while dancing. diff --git a/.vim/bundle/black/.github/ISSUE_TEMPLATE/bug_report.md b/.vim/bundle/black/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..e8d232c --- /dev/null +++ b/.vim/bundle/black/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,47 @@ +--- +name: Bug report +about: Create a report to help us improve Black's quality +title: "" +labels: "T: bug" +assignees: "" +--- + +**Describe the bug** + + + +**To Reproduce** + + + +**Expected behavior** + + + +**Environment (please complete the following information):** + +- Version: +- OS and Python version: + +**Does this bug also happen on main?** + + + +**Additional context** + + diff --git a/.vim/bundle/black/.github/ISSUE_TEMPLATE/config.yml b/.vim/bundle/black/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3f6641c --- /dev/null +++ b/.vim/bundle/black/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,12 @@ +# See also: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser + +# This is the default and blank issues are useful so let's keep 'em. +blank_issues_enabled: true + +contact_links: + - name: Chat on Python Discord + url: https://discord.gg/RtVdv86PrH + about: | + User support, questions, and other lightweight requests can be + handled via the #black-formatter text channel we have on Python + Discord. diff --git a/.vim/bundle/black/.github/ISSUE_TEMPLATE/docs-issue.md b/.vim/bundle/black/.github/ISSUE_TEMPLATE/docs-issue.md new file mode 100644 index 0000000..d362b86 --- /dev/null +++ b/.vim/bundle/black/.github/ISSUE_TEMPLATE/docs-issue.md @@ -0,0 +1,27 @@ +--- +name: Documentation +about: Report a problem with or suggest something for the documentation +title: "" +labels: "T: documentation" +assignees: "" +--- + +**Is this related to a problem? Please describe.** + + + +**Describe the solution you'd like** + + + +**Describe alternatives you've considered** + + + +**Additional context** + + diff --git a/.vim/bundle/black/.github/ISSUE_TEMPLATE/feature_request.md b/.vim/bundle/black/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..a34e4a0 --- /dev/null +++ b/.vim/bundle/black/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,27 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "" +labels: "T: enhancement" +assignees: "" +--- + +**Is your feature request related to a problem? Please describe.** + + + +**Describe the solution you'd like** + + + +**Describe alternatives you've considered** + + + +**Additional context** + + diff --git a/.vim/bundle/black/.github/ISSUE_TEMPLATE/style_issue.md b/.vim/bundle/black/.github/ISSUE_TEMPLATE/style_issue.md new file mode 100644 index 0000000..2e4343a --- /dev/null +++ b/.vim/bundle/black/.github/ISSUE_TEMPLATE/style_issue.md @@ -0,0 +1,37 @@ +--- +name: Style issue +about: Help us improve the Black style +title: "" +labels: "T: design" +assignees: "" +--- + +**Describe the style change** + + + +**Examples in the current _Black_ style** + + + +```python +def f(): + "Make sure this code is blackened""" + pass +``` + +**Desired style** + + + +```python +def f( + ): + pass +``` + +**Additional context** + + diff --git a/.vim/bundle/black/.github/PULL_REQUEST_TEMPLATE.md b/.vim/bundle/black/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..833cd16 --- /dev/null +++ b/.vim/bundle/black/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,36 @@ + + +### Description + + + +### Checklist - did you ... + + + +- [ ] Add a CHANGELOG entry if necessary? +- [ ] Add / update tests if necessary? +- [ ] Add new / update outdated documentation? + + diff --git a/.vim/bundle/black/.github/workflows/changelog.yml b/.vim/bundle/black/.github/workflows/changelog.yml new file mode 100644 index 0000000..d7ee505 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/changelog.yml @@ -0,0 +1,21 @@ +name: changelog + +on: + pull_request: + types: [opened, synchronize, labeled, unlabeled, reopened] + +jobs: + build: + name: Changelog Entry Check + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Grep CHANGES.md for PR number + if: contains(github.event.pull_request.labels.*.name, 'skip news') != true + run: | + grep -Pz "\((\n\s*)?#${{ github.event.pull_request.number }}(\n\s*)?\)" CHANGES.md || \ + (echo "Please add '(#${{ github.event.pull_request.number }})' change line to CHANGES.md" && \ + exit 1) diff --git a/.vim/bundle/black/.github/workflows/doc.yml b/.vim/bundle/black/.github/workflows/doc.yml new file mode 100644 index 0000000..5689d28 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/doc.yml @@ -0,0 +1,33 @@ +name: Documentation Build + +on: [push, pull_request] + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest] + + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + + - name: Set up latest Python + uses: actions/setup-python@v2 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + python -m pip install -e ".[d]" + python -m pip install -r "docs/requirements.txt" + + - name: Build documentation + run: sphinx-build -a -b html -W --keep-going docs/ docs/_build diff --git a/.vim/bundle/black/.github/workflows/docker.yml b/.vim/bundle/black/.github/workflows/docker.yml new file mode 100644 index 0000000..0825385 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/docker.yml @@ -0,0 +1,53 @@ +name: docker + +on: + push: + branches: + - "main" + release: + types: [published] + +jobs: + docker: + if: github.repository == 'psf/black' + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Login to DockerHub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Check + set version tag + run: + echo "GIT_TAG=$(git describe --candidates=0 --tags 2> /dev/null || echo + latest_non_release)" >> $GITHUB_ENV + + - name: Build and push + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: pyfound/black:latest,pyfound/black:${{ env.GIT_TAG }} + + - name: Build and push latest_release tag + if: ${{ github.event_name == 'release' && github.event.action == 'published' }} + uses: docker/build-push-action@v2 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: pyfound/black:latest_release + + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.vim/bundle/black/.github/workflows/fuzz.yml b/.vim/bundle/black/.github/workflows/fuzz.yml new file mode 100644 index 0000000..146277a --- /dev/null +++ b/.vim/bundle/black/.github/workflows/fuzz.yml @@ -0,0 +1,35 @@ +name: Fuzz + +on: [push, pull_request] + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade tox + + - name: Run fuzz tests + run: | + tox -e fuzz diff --git a/.vim/bundle/black/.github/workflows/lint.yml b/.vim/bundle/black/.github/workflows/lint.yml new file mode 100644 index 0000000..51f6d02 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/lint.yml @@ -0,0 +1,28 @@ +name: Lint + +on: [push, pull_request] + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e '.[d]' + + - name: Lint + uses: pre-commit/action@v2.0.2 diff --git a/.vim/bundle/black/.github/workflows/primer.yml b/.vim/bundle/black/.github/workflows/primer.yml new file mode 100644 index 0000000..5fa6ac0 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/primer.yml @@ -0,0 +1,47 @@ +name: Primer + +on: + push: + paths-ignore: + - "docs/**" + - "*.md" + + pull_request: + paths-ignore: + - "docs/**" + - "*.md" + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + os: [ubuntu-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install -e ".[d,jupyter]" + + - name: Primer run + env: + pythonioencoding: utf-8 + run: | + black-primer diff --git a/.vim/bundle/black/.github/workflows/pypi_upload.yml b/.vim/bundle/black/.github/workflows/pypi_upload.yml new file mode 100644 index 0000000..201d94f --- /dev/null +++ b/.vim/bundle/black/.github/workflows/pypi_upload.yml @@ -0,0 +1,31 @@ +name: pypi_upload + +on: + release: + types: [published] + +jobs: + build: + name: PyPI Upload + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + + - name: Install latest pip, setuptools, twine + wheel + run: | + python -m pip install --upgrade pip setuptools twine wheel + + - name: Build wheels + run: | + python setup.py bdist_wheel + python setup.py sdist + + - name: Upload to PyPI via Twine + env: + TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + run: | + twine upload --verbose -u '__token__' dist/* diff --git a/.vim/bundle/black/.github/workflows/test.yml b/.vim/bundle/black/.github/workflows/test.yml new file mode 100644 index 0000000..296ac34 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/test.yml @@ -0,0 +1,76 @@ +name: Test + +on: + push: + paths-ignore: + - "docs/**" + - "*.md" + + pull_request: + paths-ignore: + - "docs/**" + - "*.md" + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] + os: [ubuntu-latest, macOS-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade tox + + - name: Unit tests + run: | + tox -e ci-py -- -v --color=yes + + - name: Publish coverage to Coveralls + # If pushed / is a pull request against main repo AND + # we're running on Linux (this action only supports Linux) + if: + ((github.event_name == 'push' && github.repository == 'psf/black') || + github.event.pull_request.base.repo.full_name == 'psf/black') && matrix.os == + 'ubuntu-latest' + + uses: AndreMiras/coveralls-python-action@v20201129 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + parallel: true + flag-name: py${{ matrix.python-version }}-${{ matrix.os }} + debug: true + + coveralls-finish: + needs: build + # If pushed / is a pull request against main repo + if: + (github.event_name == 'push' && github.repository == 'psf/black') || + github.event.pull_request.base.repo.full_name == 'psf/black' + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Coveralls finished + uses: AndreMiras/coveralls-python-action@v20201129 + with: + parallel-finished: true + debug: true diff --git a/.vim/bundle/black/.github/workflows/upload_binary.yml b/.vim/bundle/black/.github/workflows/upload_binary.yml new file mode 100644 index 0000000..8f44d4e --- /dev/null +++ b/.vim/bundle/black/.github/workflows/upload_binary.yml @@ -0,0 +1,59 @@ +name: Upload self-contained binaries + +on: + release: + types: [published] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-2019, ubuntu-20.04, macos-latest] + include: + - os: windows-2019 + pathsep: ";" + asset_name: black_windows.exe + executable_mime: "application/vnd.microsoft.portable-executable" + platform: windows + - os: ubuntu-20.04 + pathsep: ":" + asset_name: black_linux + executable_mime: "application/x-executable" + platform: unix + - os: macos-latest + pathsep: ":" + asset_name: black_macos + executable_mime: "application/x-mach-binary" + platform: macos + + steps: + - uses: actions/checkout@v2 + + - name: Set up latest Python + uses: actions/setup-python@v2 + with: + python-version: "*" + + - name: Install dependencies + run: | + python -m pip install --upgrade pip wheel setuptools + python -m pip install . + python -m pip install pyinstaller + + - name: Build binary + run: > + python -m PyInstaller -F --name ${{ matrix.asset_name }} --add-data + 'src/blib2to3${{ matrix.pathsep }}blib2to3' --hidden-import platformdirs.${{ + matrix.platform }} src/black/__main__.py + + - name: Upload binary as release asset + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ github.event.release.upload_url }} + asset_path: dist/${{ matrix.asset_name }} + asset_name: ${{ matrix.asset_name }} + asset_content_type: ${{ matrix.executable_mime }} diff --git a/.vim/bundle/black/.github/workflows/uvloop_test.yml b/.vim/bundle/black/.github/workflows/uvloop_test.yml new file mode 100644 index 0000000..5d23ec6 --- /dev/null +++ b/.vim/bundle/black/.github/workflows/uvloop_test.yml @@ -0,0 +1,45 @@ +name: test uvloop + +on: + push: + paths-ignore: + - "docs/**" + - "*.md" + + pull_request: + paths-ignore: + - "docs/**" + - "*.md" + +jobs: + build: + # We want to run on external PRs, but not on our own internal PRs as they'll be run + # by the push to the branch. Without this if check, checks are duplicated since + # internal PRs match both the push and pull_request events. + if: + github.event_name == 'push' || github.event.pull_request.head.repo.full_name != + github.repository + + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macOS-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + + - name: Install latest pip + run: | + python -m pip install --upgrade pip + + - name: Test uvloop Extra Install + run: | + python -m pip install -e ".[uvloop]" + + - name: Primer uvloop run + run: | + black-primer diff --git a/.vim/bundle/black/.gitignore b/.vim/bundle/black/.gitignore new file mode 100644 index 0000000..f81bce8 --- /dev/null +++ b/.vim/bundle/black/.gitignore @@ -0,0 +1,21 @@ +.venv +.coverage +.coverage.* +_build +.DS_Store +.vscode +docs/_static/pypi.svg +.tox +__pycache__ +black.egg-info +build/ +dist/ +pip-wheel-metadata/ +src/_black_version.py +.idea +.eggs +.dmypy.json +*.swp +.hypothesis/ +venv/ +.ipynb_checkpoints/ diff --git a/.vim/bundle/black/.pre-commit-config.yaml b/.vim/bundle/black/.pre-commit-config.yaml new file mode 100644 index 0000000..a3cd663 --- /dev/null +++ b/.vim/bundle/black/.pre-commit-config.yaml @@ -0,0 +1,63 @@ +# Note: don't use this config for your own repositories. Instead, see +# "Version control integration" in docs/integrations/source_version_control.md +exclude: ^(src/blib2to3/|profiling/|tests/data/) +repos: + - repo: local + hooks: + - id: black + name: black + language: system + entry: black + minimum_pre_commit_version: 2.9.2 + require_serial: true + types_or: [python, pyi] + + - id: check-pre-commit-rev-in-example + name: Check pre-commit rev in example + language: python + entry: python -m scripts.check_pre_commit_rev_in_example + files: '(CHANGES\.md|source_version_control\.md)$' + additional_dependencies: + &version_check_dependencies [ + commonmark==0.9.1, + pyyaml==5.4.1, + beautifulsoup4==4.9.3, + ] + + - id: check-version-in-the-basics-example + name: Check black version in the basics example + language: python + entry: python -m scripts.check_version_in_basics_example + files: '(CHANGES\.md|the_basics\.md)$' + additional_dependencies: *version_check_dependencies + + - repo: https://gitlab.com/pycqa/flake8 + rev: 3.9.2 + hooks: + - id: flake8 + additional_dependencies: [flake8-bugbear] + + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v0.910 + hooks: + - id: mypy + exclude: ^docs/conf.py + additional_dependencies: + - types-dataclasses >= 0.1.3 + - types-PyYAML + - tomli >= 0.2.6, < 2.0.0 + - types-typed-ast >= 1.4.1 + - click >= 8.0.0 + - platformdirs >= 2.1.0 + + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.3.2 + hooks: + - id: prettier + exclude: ^Pipfile\.lock + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + - id: end-of-file-fixer + - id: trailing-whitespace diff --git a/.vim/bundle/black/.pre-commit-hooks.yaml b/.vim/bundle/black/.pre-commit-hooks.yaml new file mode 100644 index 0000000..1379570 --- /dev/null +++ b/.vim/bundle/black/.pre-commit-hooks.yaml @@ -0,0 +1,18 @@ +- id: black + name: black + description: "Black: The uncompromising Python code formatter" + entry: black + language: python + minimum_pre_commit_version: 2.9.2 + require_serial: true + types_or: [python, pyi] +- id: black-jupyter + name: black-jupyter + description: + "Black: The uncompromising Python code formatter (with Jupyter Notebook support)" + entry: black + language: python + minimum_pre_commit_version: 2.9.2 + require_serial: true + types_or: [python, pyi, jupyter] + additional_dependencies: [".[jupyter]"] diff --git a/.vim/bundle/black/.prettierrc.yaml b/.vim/bundle/black/.prettierrc.yaml new file mode 100644 index 0000000..beda5ba --- /dev/null +++ b/.vim/bundle/black/.prettierrc.yaml @@ -0,0 +1,3 @@ +proseWrap: always +printWidth: 88 +endOfLine: auto diff --git a/.vim/bundle/black/.readthedocs.yaml b/.vim/bundle/black/.readthedocs.yaml new file mode 100644 index 0000000..24eb3ea --- /dev/null +++ b/.vim/bundle/black/.readthedocs.yaml @@ -0,0 +1,14 @@ +version: 2 + +formats: + - htmlzip + +python: + version: 3.8 + install: + - requirements: docs/requirements.txt + + - method: pip + path: . + extra_requirements: + - d diff --git a/.vim/bundle/black/AUTHORS.md b/.vim/bundle/black/AUTHORS.md new file mode 100644 index 0000000..8d112ea --- /dev/null +++ b/.vim/bundle/black/AUTHORS.md @@ -0,0 +1,185 @@ +# Authors + +Glued together by [Łukasz Langa](mailto:lukasz@langa.pl). + +Maintained with [Carol Willing](mailto:carolcode@willingconsulting.com), +[Carl Meyer](mailto:carl@oddbird.net), +[Jelle Zijlstra](mailto:jelle.zijlstra@gmail.com), +[Mika Naylor](mailto:mail@autophagy.io), +[Zsolt Dollenstein](mailto:zsol.zsol@gmail.com), +[Cooper Lees](mailto:me@cooperlees.com), and Richard Si. + +Multiple contributions by: + +- [Abdur-Rahmaan Janhangeer](mailto:arj.python@gmail.com) +- [Adam Johnson](mailto:me@adamj.eu) +- [Adam Williamson](mailto:adamw@happyassassin.net) +- [Alexander Huynh](mailto:github@grande.coffee) +- [Alex Vandiver](mailto:github@chmrr.net) +- [Allan Simon](mailto:allan.simon@supinfo.com) +- Anders-Petter Ljungquist +- [Andrew Thorp](mailto:andrew.thorp.dev@gmail.com) +- [Andrew Zhou](mailto:andrewfzhou@gmail.com) +- [Andrey](mailto:dyuuus@yandex.ru) +- [Andy Freeland](mailto:andy@andyfreeland.net) +- [Anthony Sottile](mailto:asottile@umich.edu) +- [Arjaan Buijk](mailto:arjaan.buijk@gmail.com) +- [Arnav Borbornah](mailto:arnavborborah11@gmail.com) +- [Artem Malyshev](mailto:proofit404@gmail.com) +- [Asger Hautop Drewsen](mailto:asgerdrewsen@gmail.com) +- [Augie Fackler](mailto:raf@durin42.com) +- [Aviskar KC](mailto:aviskarkc10@gmail.com) +- Batuhan Taşkaya +- [Benjamin Wohlwend](mailto:bw@piquadrat.ch) +- [Benjamin Woodruff](mailto:github@benjam.info) +- [Bharat Raghunathan](mailto:bharatraghunthan9767@gmail.com) +- [Brandt Bucher](mailto:brandtbucher@gmail.com) +- [Brett Cannon](mailto:brett@python.org) +- [Bryan Bugyi](mailto:bryan.bugyi@rutgers.edu) +- [Bryan Forbes](mailto:bryan@reigndropsfall.net) +- [Calum Lind](mailto:calumlind@gmail.com) +- [Charles](mailto:peacech@gmail.com) +- Charles Reid +- [Christian Clauss](mailto:cclauss@bluewin.ch) +- [Christian Heimes](mailto:christian@python.org) +- [Chuck Wooters](mailto:chuck.wooters@microsoft.com) +- [Chris Rose](mailto:offline@offby1.net) +- Codey Oxley +- [Cong](mailto:congusbongus@gmail.com) +- [Cooper Ry Lees](mailto:me@cooperlees.com) +- [Dan Davison](mailto:dandavison7@gmail.com) +- [Daniel Hahler](mailto:github@thequod.de) +- [Daniel M. Capella](mailto:polycitizen@gmail.com) +- Daniele Esposti +- [David Hotham](mailto:david.hotham@metaswitch.com) +- [David Lukes](mailto:dafydd.lukes@gmail.com) +- [David Szotten](mailto:davidszotten@gmail.com) +- [Denis Laxalde](mailto:denis@laxalde.org) +- [Douglas Thor](mailto:dthor@transphormusa.com) +- dylanjblack +- [Eli Treuherz](mailto:eli@treuherz.com) +- [Emil Hessman](mailto:emil@hessman.se) +- [Felix Kohlgrüber](mailto:felix.kohlgrueber@gmail.com) +- [Florent Thiery](mailto:fthiery@gmail.com) +- Francisco +- [Giacomo Tagliabue](mailto:giacomo.tag@gmail.com) +- [Greg Gandenberger](mailto:ggandenberger@shoprunner.com) +- [Gregory P. Smith](mailto:greg@krypto.org) +- Gustavo Camargo +- hauntsaninja +- [Hadi Alqattan](mailto:alqattanhadizaki@gmail.com) +- [Hassan Abouelela](mailto:hassan@hassanamr.com) +- [Heaford](mailto:dan@heaford.com) +- [Hugo Barrera](mailto::hugo@barrera.io) +- Hugo van Kemenade +- [Hynek Schlawack](mailto:hs@ox.cx) +- [Ivan Katanić](mailto:ivan.katanic@gmail.com) +- [Jakub Kadlubiec](mailto:jakub.kadlubiec@skyscanner.net) +- [Jakub Warczarek](mailto:jakub.warczarek@gmail.com) +- [Jan Hnátek](mailto:jan.hnatek@gmail.com) +- [Jason Fried](mailto:me@jasonfried.info) +- [Jason Friedland](mailto:jason@friedland.id.au) +- [jgirardet](mailto:ijkl@netc.fr) +- Jim Brännlund +- [Jimmy Jia](mailto:tesrin@gmail.com) +- [Joe Antonakakis](mailto:jma353@cornell.edu) +- [Jon Dufresne](mailto:jon.dufresne@gmail.com) +- [Jonas Obrist](mailto:ojiidotch@gmail.com) +- [Jonty Wareing](mailto:jonty@jonty.co.uk) +- [Jose Nazario](mailto:jose.monkey.org@gmail.com) +- [Joseph Larson](mailto:larson.joseph@gmail.com) +- [Josh Bode](mailto:joshbode@fastmail.com) +- [Josh Holland](mailto:anowlcalledjosh@gmail.com) +- [Joshua Cannon](mailto:joshdcannon@gmail.com) +- [José Padilla](mailto:jpadilla@webapplicate.com) +- [Juan Luis Cano Rodríguez](mailto:hello@juanlu.space) +- [kaiix](mailto:kvn.hou@gmail.com) +- [Katie McLaughlin](mailto:katie@glasnt.com) +- Katrin Leinweber +- [Keith Smiley](mailto:keithbsmiley@gmail.com) +- [Kenyon Ralph](mailto:kenyon@kenyonralph.com) +- [Kevin Kirsche](mailto:Kev.Kirsche+GitHub@gmail.com) +- [Kyle Hausmann](mailto:kyle.hausmann@gmail.com) +- [Kyle Sunden](mailto:sunden@wisc.edu) +- Lawrence Chan +- [Linus Groh](mailto:mail@linusgroh.de) +- [Loren Carvalho](mailto:comradeloren@gmail.com) +- [Luka Sterbic](mailto:luka.sterbic@gmail.com) +- [LukasDrude](mailto:mail@lukas-drude.de) +- Mahmoud Hossam +- Mariatta +- [Matt VanEseltine](mailto:vaneseltine@gmail.com) +- [Matthew Clapp](mailto:itsayellow+dev@gmail.com) +- [Matthew Walster](mailto:matthew@walster.org) +- Max Smolens +- [Michael Aquilina](mailto:michaelaquilina@gmail.com) +- [Michael Flaxman](mailto:michael.flaxman@gmail.com) +- [Michael J. Sullivan](mailto:sully@msully.net) +- [Michael McClimon](mailto:michael@mcclimon.org) +- [Miguel Gaiowski](mailto:miggaiowski@gmail.com) +- [Mike](mailto:roshi@fedoraproject.org) +- [mikehoyio](mailto:mikehoy@gmail.com) +- [Min ho Kim](mailto:minho42@gmail.com) +- [Miroslav Shubernetskiy](mailto:miroslav@miki725.com) +- MomIsBestFriend +- [Nathan Goldbaum](mailto:ngoldbau@illinois.edu) +- [Nathan Hunt](mailto:neighthan.hunt@gmail.com) +- [Neraste](mailto:neraste.herr10@gmail.com) +- [Nikolaus Waxweiler](mailto:madigens@gmail.com) +- [Ofek Lev](mailto:ofekmeister@gmail.com) +- [Osaetin Daniel](mailto:osaetindaniel@gmail.com) +- [otstrel](mailto:otstrel@gmail.com) +- [Pablo Galindo](mailto:Pablogsal@gmail.com) +- [Paul Ganssle](mailto:p.ganssle@gmail.com) +- [Paul Meinhardt](mailto:mnhrdt@gmail.com) +- [Peter Bengtsson](mailto:mail@peterbe.com) +- [Peter Grayson](mailto:pete@jpgrayson.net) +- [Peter Stensmyr](mailto:peter.stensmyr@gmail.com) +- pmacosta +- [Quentin Pradet](mailto:quentin@pradet.me) +- [Ralf Schmitt](mailto:ralf@systemexit.de) +- [Ramón Valles](mailto:mroutis@protonmail.com) +- [Richard Fearn](mailto:richardfearn@gmail.com) +- [Rishikesh Jha](mailto:rishijha424@gmail.com) +- [Rupert Bedford](mailto:rupert@rupertb.com) +- Russell Davis +- [Rémi Verschelde](mailto:rverschelde@gmail.com) +- [Sami Salonen](mailto:sakki@iki.fi) +- [Samuel Cormier-Iijima](mailto:samuel@cormier-iijima.com) +- [Sanket Dasgupta](mailto:sanketdasgupta@gmail.com) +- Sergi +- [Scott Stevenson](mailto:scott@stevenson.io) +- Shantanu +- [shaoran](mailto:shaoran@sakuranohana.org) +- [Shinya Fujino](mailto:shf0811@gmail.com) +- springstan +- [Stavros Korokithakis](mailto:hi@stavros.io) +- [Stephen Rosen](mailto:sirosen@globus.org) +- [Steven M. Vascellaro](mailto:S.Vascellaro@gmail.com) +- [Sunil Kapil](mailto:snlkapil@gmail.com) +- [Sébastien Eustace](mailto:sebastien.eustace@gmail.com) +- [Tal Amuyal](mailto:TalAmuyal@gmail.com) +- [Terrance](mailto:git@terrance.allofti.me) +- [Thom Lu](mailto:thomas.c.lu@gmail.com) +- [Thomas Grainger](mailto:tagrain@gmail.com) +- [Tim Gates](mailto:tim.gates@iress.com) +- [Tim Swast](mailto:swast@google.com) +- [Timo](mailto:timo_tk@hotmail.com) +- Toby Fleming +- [Tom Christie](mailto:tom@tomchristie.com) +- [Tony Narlock](mailto:tony@git-pull.com) +- [Tsuyoshi Hombashi](mailto:tsuyoshi.hombashi@gmail.com) +- [Tushar Chandra](mailto:tusharchandra2018@u.northwestern.edu) +- [Tzu-ping Chung](mailto:uranusjr@gmail.com) +- [Utsav Shah](mailto:ukshah2@illinois.edu) +- utsav-dbx +- vezeli +- [Ville Skyttä](mailto:ville.skytta@iki.fi) +- [Vishwas B Sharma](mailto:sharma.vishwas88@gmail.com) +- [Vlad Emelianov](mailto:volshebnyi@gmail.com) +- [williamfzc](mailto:178894043@qq.com) +- [wouter bolsterlee](mailto:wouter@bolsterl.ee) +- Yazdan +- [Yngve Høiseth](mailto:yngve@hoiseth.net) +- [Yurii Karabas](mailto:1998uriyyo@gmail.com) +- [Zac Hatfield-Dodds](mailto:zac@zhd.dev) diff --git a/.vim/bundle/black/CHANGES.md b/.vim/bundle/black/CHANGES.md new file mode 100644 index 0000000..864f0a5 --- /dev/null +++ b/.vim/bundle/black/CHANGES.md @@ -0,0 +1,761 @@ +# Change Log + +## Unreleased + +### _Black_ + +- Add new `--workers` parameter (#2514) +- Fixed feature detection for positional-only arguments in lambdas (#2532) +- Bumped typed-ast version minimum to 1.4.3 for 3.10 compatiblity (#2519) + +### _Blackd_ + +- Remove dependency on aiohttp-cors (#2500) +- Bump required aiohttp version to 3.7.4 (#2509) + +### Integrations + +- Allow to pass `target_version` in the vim plugin (#1319) + +## 21.9b0 + +### Packaging + +- Fix missing modules in self-contained binaries (#2466) +- Fix missing toml extra used during installation (#2475) + +## 21.8b0 + +### _Black_ + +- Add support for formatting Jupyter Notebook files (#2357) +- Move from `appdirs` dependency to `platformdirs` (#2375) +- Present a more user-friendly error if .gitignore is invalid (#2414) +- The failsafe for accidentally added backslashes in f-string expressions has been + hardened to handle more edge cases during quote normalization (#2437) +- Avoid changing a function return type annotation's type to a tuple by adding a + trailing comma (#2384) +- Parsing support has been added for unparenthesized walruses in set literals, set + comprehensions, and indices (#2447). +- Pin `setuptools-scm` build-time dependency version (#2457) +- Exclude typing-extensions version 3.10.0.1 due to it being broken on Python 3.10 + (#2460) + +### _Blackd_ + +- Replace sys.exit(-1) with raise ImportError as it plays more nicely with tools that + scan installed packages (#2440) + +### Integrations + +- The provided pre-commit hooks no longer specify `language_version` to avoid overriding + `default_language_version` (#2430) + +## 21.7b0 + +### _Black_ + +- Configuration files using TOML features higher than spec v0.5.0 are now supported + (#2301) +- Add primer support and test for code piped into black via STDIN (#2315) +- Fix internal error when `FORCE_OPTIONAL_PARENTHESES` feature is enabled (#2332) +- Accept empty stdin (#2346) +- Provide a more useful error when parsing fails during AST safety checks (#2304) + +### Docker + +- Add new `latest_release` tag automation to follow latest black release on docker + images (#2374) + +### Integrations + +- The vim plugin now searches upwards from the directory containing the current buffer + instead of the current working directory for pyproject.toml. (#1871) +- The vim plugin now reads the correct string normalization option in pyproject.toml + (#1869) +- The vim plugin no longer crashes Black when there's boolean values in pyproject.toml + (#1869) + +## 21.6b0 + +### _Black_ + +- Fix failure caused by `fmt: skip` and indentation (#2281) +- Account for += assignment when deciding whether to split string (#2312) +- Correct max string length calculation when there are string operators (#2292) +- Fixed option usage when using the `--code` flag (#2259) +- Do not call `uvloop.install()` when _Black_ is used as a library (#2303) +- Added `--required-version` option to require a specific version to be running (#2300) +- Fix incorrect custom breakpoint indices when string group contains fake f-strings + (#2311) +- Fix regression where `R` prefixes would be lowercased for docstrings (#2285) +- Fix handling of named escapes (`\N{...}`) when `--experimental-string-processing` is + used (#2319) + +### Integrations + +- The official Black action now supports choosing what version to use, and supports the + major 3 OSes. (#1940) + +## 21.5b2 + +### _Black_ + +- A space is no longer inserted into empty docstrings (#2249) +- Fix handling of .gitignore files containing non-ASCII characters on Windows (#2229) +- Respect `.gitignore` files in all levels, not only `root/.gitignore` file (apply + `.gitignore` rules like `git` does) (#2225) +- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227) +- Add extra uvloop install + import support if in python env (#2258) +- Fix --experimental-string-processing crash when matching parens are not found (#2283) +- Make sure to split lines that start with a string operator (#2286) +- Fix regular expression that black uses to identify f-expressions (#2287) + +### _Blackd_ + +- Add a lower bound for the `aiohttp-cors` dependency. Only 0.4.0 or higher is + supported. (#2231) + +### Packaging + +- Release self-contained x86_64 MacOS binaries as part of the GitHub release pipeline + (#2198) +- Always build binaries with the latest available Python (#2260) + +### Documentation + +- Add discussion of magic comments to FAQ page (#2272) +- `--experimental-string-processing` will be enabled by default in the future (#2273) +- Fix typos discovered by codespell (#2228) +- Fix Vim plugin installation instructions. (#2235) +- Add new Frequently Asked Questions page (#2247) +- Fix encoding + symlink issues preventing proper build on Windows (#2262) + +## 21.5b1 + +### _Black_ + +- Refactor `src/black/__init__.py` into many files (#2206) + +### Documentation + +- Replaced all remaining references to the + [`master`](https://github.com/psf/black/tree/main) branch with the + [`main`](https://github.com/psf/black/tree/main) branch. Some additional changes in + the source code were also made. (#2210) +- Sigificantly reorganized the documentation to make much more sense. Check them out by + heading over to [the stable docs on RTD](https://black.readthedocs.io/en/stable/). + (#2174) + +## 21.5b0 + +### _Black_ + +- Set `--pyi` mode if `--stdin-filename` ends in `.pyi` (#2169) +- Stop detecting target version as Python 3.9+ with pre-PEP-614 decorators that are + being called but with no arguments (#2182) + +### _Black-Primer_ + +- Add `--no-diff` to black-primer to suppress formatting changes (#2187) + +## 21.4b2 + +### _Black_ + +- Fix crash if the user configuration directory is inaccessible. (#2158) + +- Clarify + [circumstances](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#pragmatism) + in which _Black_ may change the AST (#2159) + +- Allow `.gitignore` rules to be overridden by specifying `exclude` in `pyproject.toml` + or on the command line. (#2170) + +### _Packaging_ + +- Install `primer.json` (used by `black-primer` by default) with black. (#2154) + +## 21.4b1 + +### _Black_ + +- Fix crash on docstrings ending with "\\ ". (#2142) + +- Fix crash when atypical whitespace is cleaned out of dostrings (#2120) + +- Reflect the `--skip-magic-trailing-comma` and `--experimental-string-processing` flags + in the name of the cache file. Without this fix, changes in these flags would not take + effect if the cache had already been populated. (#2131) + +- Don't remove necessary parentheses from assignment expression containing assert / + return statements. (#2143) + +### _Packaging_ + +- Bump pathspec to >= 0.8.1 to solve invalid .gitignore exclusion handling + +## 21.4b0 + +### _Black_ + +- Fixed a rare but annoying formatting instability created by the combination of + optional trailing commas inserted by `Black` and optional parentheses looking at + pre-existing "magic" trailing commas. This fixes issue #1629 and all of its many many + duplicates. (#2126) + +- `Black` now processes one-line docstrings by stripping leading and trailing spaces, + and adding a padding space when needed to break up """". (#1740) + +- `Black` now cleans up leading non-breaking spaces in comments (#2092) + +- `Black` now respects `--skip-string-normalization` when normalizing multiline + docstring quotes (#1637) + +- `Black` no longer removes all empty lines between non-function code and decorators + when formatting typing stubs. Now `Black` enforces a single empty line. (#1646) + +- `Black` no longer adds an incorrect space after a parenthesized assignment expression + in if/while statements (#1655) + +- Added `--skip-magic-trailing-comma` / `-C` to avoid using trailing commas as a reason + to split lines (#1824) + +- fixed a crash when PWD=/ on POSIX (#1631) + +- fixed "I/O operation on closed file" when using --diff (#1664) + +- Prevent coloured diff output being interleaved with multiple files (#1673) + +- Added support for PEP 614 relaxed decorator syntax on python 3.9 (#1711) + +- Added parsing support for unparenthesized tuples and yield expressions in annotated + assignments (#1835) + +- added `--extend-exclude` argument (PR #2005) + +- speed up caching by avoiding pathlib (#1950) + +- `--diff` correctly indicates when a file doesn't end in a newline (#1662) + +- Added `--stdin-filename` argument to allow stdin to respect `--force-exclude` rules + (#1780) + +- Lines ending with `fmt: skip` will now be not formatted (#1800) + +- PR #2053: Black no longer relies on typed-ast for Python 3.8 and higher + +- PR #2053: Python 2 support is now optional, install with + `python3 -m pip install black[python2]` to maintain support. + +- Exclude `venv` directory by default (#1683) + +- Fixed "Black produced code that is not equivalent to the source" when formatting + Python 2 docstrings (#2037) + +### _Packaging_ + +- Self-contained native _Black_ binaries are now provided for releases via GitHub + Releases (#1743) + +## 20.8b1 + +### _Packaging_ + +- explicitly depend on Click 7.1.2 or newer as `Black` no longer works with versions + older than 7.0 + +## 20.8b0 + +### _Black_ + +- re-implemented support for explicit trailing commas: now it works consistently within + any bracket pair, including nested structures (#1288 and duplicates) + +- `Black` now reindents docstrings when reindenting code around it (#1053) + +- `Black` now shows colored diffs (#1266) + +- `Black` is now packaged using 'py3' tagged wheels (#1388) + +- `Black` now supports Python 3.8 code, e.g. star expressions in return statements + (#1121) + +- `Black` no longer normalizes capital R-string prefixes as those have a + community-accepted meaning (#1244) + +- `Black` now uses exit code 2 when specified configuration file doesn't exit (#1361) + +- `Black` now works on AWS Lambda (#1141) + +- added `--force-exclude` argument (#1032) + +- removed deprecated `--py36` option (#1236) + +- fixed `--diff` output when EOF is encountered (#526) + +- fixed `# fmt: off` handling around decorators (#560) + +- fixed unstable formatting with some `# type: ignore` comments (#1113) + +- fixed invalid removal on organizing brackets followed by indexing (#1575) + +- introduced `black-primer`, a CI tool that allows us to run regression tests against + existing open source users of Black (#1402) + +- introduced property-based fuzzing to our test suite based on Hypothesis and + Hypothersmith (#1566) + +- implemented experimental and disabled by default long string rewrapping (#1132), + hidden under a `--experimental-string-processing` flag while it's being worked on; + this is an undocumented and unsupported feature, you lose Internet points for + depending on it (#1609) + +### Vim plugin + +- prefer virtualenv packages over global packages (#1383) + +## 19.10b0 + +- added support for PEP 572 assignment expressions (#711) + +- added support for PEP 570 positional-only arguments (#943) + +- added support for async generators (#593) + +- added support for pre-splitting collections by putting an explicit trailing comma + inside (#826) + +- added `black -c` as a way to format code passed from the command line (#761) + +- --safe now works with Python 2 code (#840) + +- fixed grammar selection for Python 2-specific code (#765) + +- fixed feature detection for trailing commas in function definitions and call sites + (#763) + +- `# fmt: off`/`# fmt: on` comment pairs placed multiple times within the same block of + code now behave correctly (#1005) + +- _Black_ no longer crashes on Windows machines with more than 61 cores (#838) + +- _Black_ no longer crashes on standalone comments prepended with a backslash (#767) + +- _Black_ no longer crashes on `from` ... `import` blocks with comments (#829) + +- _Black_ no longer crashes on Python 3.7 on some platform configurations (#494) + +- _Black_ no longer fails on comments in from-imports (#671) + +- _Black_ no longer fails when the file starts with a backslash (#922) + +- _Black_ no longer merges regular comments with type comments (#1027) + +- _Black_ no longer splits long lines that contain type comments (#997) + +- removed unnecessary parentheses around `yield` expressions (#834) + +- added parentheses around long tuples in unpacking assignments (#832) + +- added parentheses around complex powers when they are prefixed by a unary operator + (#646) + +- fixed bug that led _Black_ format some code with a line length target of 1 (#762) + +- _Black_ no longer introduces quotes in f-string subexpressions on string boundaries + (#863) + +- if _Black_ puts parenthesis around a single expression, it moves comments to the + wrapped expression instead of after the brackets (#872) + +- `blackd` now returns the version of _Black_ in the response headers (#1013) + +- `blackd` can now output the diff of formats on source code when the `X-Diff` header is + provided (#969) + +## 19.3b0 + +- new option `--target-version` to control which Python versions _Black_-formatted code + should target (#618) + +- deprecated `--py36` (use `--target-version=py36` instead) (#724) + +- _Black_ no longer normalizes numeric literals to include `_` separators (#696) + +- long `del` statements are now split into multiple lines (#698) + +- type comments are no longer mangled in function signatures + +- improved performance of formatting deeply nested data structures (#509) + +- _Black_ now properly formats multiple files in parallel on Windows (#632) + +- _Black_ now creates cache files atomically which allows it to be used in parallel + pipelines (like `xargs -P8`) (#673) + +- _Black_ now correctly indents comments in files that were previously formatted with + tabs (#262) + +- `blackd` now supports CORS (#622) + +## 18.9b0 + +- numeric literals are now formatted by _Black_ (#452, #461, #464, #469): + + - numeric literals are normalized to include `_` separators on Python 3.6+ code + + - added `--skip-numeric-underscore-normalization` to disable the above behavior and + leave numeric underscores as they were in the input + + - code with `_` in numeric literals is recognized as Python 3.6+ + + - most letters in numeric literals are lowercased (e.g., in `1e10`, `0x01`) + + - hexadecimal digits are always uppercased (e.g. `0xBADC0DE`) + +- added `blackd`, see + [its documentation](https://github.com/psf/black/blob/18.9b0/README.md#blackd) for + more info (#349) + +- adjacent string literals are now correctly split into multiple lines (#463) + +- trailing comma is now added to single imports that don't fit on a line (#250) + +- cache is now populated when `--check` is successful for a file which speeds up + consecutive checks of properly formatted unmodified files (#448) + +- whitespace at the beginning of the file is now removed (#399) + +- fixed mangling [pweave](http://mpastell.com/pweave/) and + [Spyder IDE](https://www.spyder-ide.org/) special comments (#532) + +- fixed unstable formatting when unpacking big tuples (#267) + +- fixed parsing of `__future__` imports with renames (#389) + +- fixed scope of `# fmt: off` when directly preceding `yield` and other nodes (#385) + +- fixed formatting of lambda expressions with default arguments (#468) + +- fixed `async for` statements: _Black_ no longer breaks them into separate lines (#372) + +- note: the Vim plugin stopped registering `,=` as a default chord as it turned out to + be a bad idea (#415) + +## 18.6b4 + +- hotfix: don't freeze when multiple comments directly precede `# fmt: off` (#371) + +## 18.6b3 + +- typing stub files (`.pyi`) now have blank lines added after constants (#340) + +- `# fmt: off` and `# fmt: on` are now much more dependable: + + - they now work also within bracket pairs (#329) + + - they now correctly work across function/class boundaries (#335) + + - they now work when an indentation block starts with empty lines or misaligned + comments (#334) + +- made Click not fail on invalid environments; note that Click is right but the + likelihood we'll need to access non-ASCII file paths when dealing with Python source + code is low (#277) + +- fixed improper formatting of f-strings with quotes inside interpolated expressions + (#322) + +- fixed unnecessary slowdown when long list literals where found in a file + +- fixed unnecessary slowdown on AST nodes with very many siblings + +- fixed cannibalizing backslashes during string normalization + +- fixed a crash due to symbolic links pointing outside of the project directory (#338) + +## 18.6b2 + +- added `--config` (#65) + +- added `-h` equivalent to `--help` (#316) + +- fixed improper unmodified file caching when `-S` was used + +- fixed extra space in string unpacking (#305) + +- fixed formatting of empty triple quoted strings (#313) + +- fixed unnecessary slowdown in comment placement calculation on lines without comments + +## 18.6b1 + +- hotfix: don't output human-facing information on stdout (#299) + +- hotfix: don't output cake emoji on non-zero return code (#300) + +## 18.6b0 + +- added `--include` and `--exclude` (#270) + +- added `--skip-string-normalization` (#118) + +- added `--verbose` (#283) + +- the header output in `--diff` now actually conforms to the unified diff spec + +- fixed long trivial assignments being wrapped in unnecessary parentheses (#273) + +- fixed unnecessary parentheses when a line contained multiline strings (#232) + +- fixed stdin handling not working correctly if an old version of Click was used (#276) + +- _Black_ now preserves line endings when formatting a file in place (#258) + +## 18.5b1 + +- added `--pyi` (#249) + +- added `--py36` (#249) + +- Python grammar pickle caches are stored with the formatting caches, making _Black_ + work in environments where site-packages is not user-writable (#192) + +- _Black_ now enforces a PEP 257 empty line after a class-level docstring (and/or + fields) and the first method + +- fixed invalid code produced when standalone comments were present in a trailer that + was omitted from line splitting on a large expression (#237) + +- fixed optional parentheses being removed within `# fmt: off` sections (#224) + +- fixed invalid code produced when stars in very long imports were incorrectly wrapped + in optional parentheses (#234) + +- fixed unstable formatting when inline comments were moved around in a trailer that was + omitted from line splitting on a large expression (#238) + +- fixed extra empty line between a class declaration and the first method if no class + docstring or fields are present (#219) + +- fixed extra empty line between a function signature and an inner function or inner + class (#196) + +## 18.5b0 + +- call chains are now formatted according to the + [fluent interfaces](https://en.wikipedia.org/wiki/Fluent_interface) style (#67) + +- data structure literals (tuples, lists, dictionaries, and sets) are now also always + exploded like imports when they don't fit in a single line (#152) + +- slices are now formatted according to PEP 8 (#178) + +- parentheses are now also managed automatically on the right-hand side of assignments + and return statements (#140) + +- math operators now use their respective priorities for delimiting multiline + expressions (#148) + +- optional parentheses are now omitted on expressions that start or end with a bracket + and only contain a single operator (#177) + +- empty parentheses in a class definition are now removed (#145, #180) + +- string prefixes are now standardized to lowercase and `u` is removed on Python 3.6+ + only code and Python 2.7+ code with the `unicode_literals` future import (#188, #198, + #199) + +- typing stub files (`.pyi`) are now formatted in a style that is consistent with PEP + 484 (#207, #210) + +- progress when reformatting many files is now reported incrementally + +- fixed trailers (content with brackets) being unnecessarily exploded into their own + lines after a dedented closing bracket (#119) + +- fixed an invalid trailing comma sometimes left in imports (#185) + +- fixed non-deterministic formatting when multiple pairs of removable parentheses were + used (#183) + +- fixed multiline strings being unnecessarily wrapped in optional parentheses in long + assignments (#215) + +- fixed not splitting long from-imports with only a single name + +- fixed Python 3.6+ file discovery by also looking at function calls with unpacking. + This fixed non-deterministic formatting if trailing commas where used both in function + signatures with stars and function calls with stars but the former would be + reformatted to a single line. + +- fixed crash on dealing with optional parentheses (#193) + +- fixed "is", "is not", "in", and "not in" not considered operators for splitting + purposes + +- fixed crash when dead symlinks where encountered + +## 18.4a4 + +- don't populate the cache on `--check` (#175) + +## 18.4a3 + +- added a "cache"; files already reformatted that haven't changed on disk won't be + reformatted again (#109) + +- `--check` and `--diff` are no longer mutually exclusive (#149) + +- generalized star expression handling, including double stars; this fixes + multiplication making expressions "unsafe" for trailing commas (#132) + +- _Black_ no longer enforces putting empty lines behind control flow statements (#90) + +- _Black_ now splits imports like "Mode 3 + trailing comma" of isort (#127) + +- fixed comment indentation when a standalone comment closes a block (#16, #32) + +- fixed standalone comments receiving extra empty lines if immediately preceding a + class, def, or decorator (#56, #154) + +- fixed `--diff` not showing entire path (#130) + +- fixed parsing of complex expressions after star and double stars in function calls + (#2) + +- fixed invalid splitting on comma in lambda arguments (#133) + +- fixed missing splits of ternary expressions (#141) + +## 18.4a2 + +- fixed parsing of unaligned standalone comments (#99, #112) + +- fixed placement of dictionary unpacking inside dictionary literals (#111) + +- Vim plugin now works on Windows, too + +- fixed unstable formatting when encountering unnecessarily escaped quotes in a string + (#120) + +## 18.4a1 + +- added `--quiet` (#78) + +- added automatic parentheses management (#4) + +- added [pre-commit](https://pre-commit.com) integration (#103, #104) + +- fixed reporting on `--check` with multiple files (#101, #102) + +- fixed removing backslash escapes from raw strings (#100, #105) + +## 18.4a0 + +- added `--diff` (#87) + +- add line breaks before all delimiters, except in cases like commas, to better comply + with PEP 8 (#73) + +- standardize string literals to use double quotes (almost) everywhere (#75) + +- fixed handling of standalone comments within nested bracketed expressions; _Black_ + will no longer produce super long lines or put all standalone comments at the end of + the expression (#22) + +- fixed 18.3a4 regression: don't crash and burn on empty lines with trailing whitespace + (#80) + +- fixed 18.3a4 regression: `# yapf: disable` usage as trailing comment would cause + _Black_ to not emit the rest of the file (#95) + +- when CTRL+C is pressed while formatting many files, _Black_ no longer freaks out with + a flurry of asyncio-related exceptions + +- only allow up to two empty lines on module level and only single empty lines within + functions (#74) + +## 18.3a4 + +- `# fmt: off` and `# fmt: on` are implemented (#5) + +- automatic detection of deprecated Python 2 forms of print statements and exec + statements in the formatted file (#49) + +- use proper spaces for complex expressions in default values of typed function + arguments (#60) + +- only return exit code 1 when --check is used (#50) + +- don't remove single trailing commas from square bracket indexing (#59) + +- don't omit whitespace if the previous factor leaf wasn't a math operator (#55) + +- omit extra space in kwarg unpacking if it's the first argument (#46) + +- omit extra space in + [Sphinx auto-attribute comments](http://www.sphinx-doc.org/en/stable/ext/autodoc.html#directive-autoattribute) + (#68) + +## 18.3a3 + +- don't remove single empty lines outside of bracketed expressions (#19) + +- added ability to pipe formatting from stdin to stdin (#25) + +- restored ability to format code with legacy usage of `async` as a name (#20, #42) + +- even better handling of numpy-style array indexing (#33, again) + +## 18.3a2 + +- changed positioning of binary operators to occur at beginning of lines instead of at + the end, following + [a recent change to PEP 8](https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b) + (#21) + +- ignore empty bracket pairs while splitting. This avoids very weirdly looking + formattings (#34, #35) + +- remove a trailing comma if there is a single argument to a call + +- if top level functions were separated by a comment, don't put four empty lines after + the upper function + +- fixed unstable formatting of newlines with imports + +- fixed unintentional folding of post scriptum standalone comments into last statement + if it was a simple statement (#18, #28) + +- fixed missing space in numpy-style array indexing (#33) + +- fixed spurious space after star-based unary expressions (#31) + +## 18.3a1 + +- added `--check` + +- only put trailing commas in function signatures and calls if it's safe to do so. If + the file is Python 3.6+ it's always safe, otherwise only safe if there are no `*args` + or `**kwargs` used in the signature or call. (#8) + +- fixed invalid spacing of dots in relative imports (#6, #13) + +- fixed invalid splitting after comma on unpacked variables in for-loops (#23) + +- fixed spurious space in parenthesized set expressions (#7) + +- fixed spurious space after opening parentheses and in default arguments (#14, #17) + +- fixed spurious space after unary operators when the operand was a complex expression + (#15) + +## 18.3a0 + +- first published version, Happy 🍰 Day 2018! + +- alpha quality + +- date-versioned (see: ) diff --git a/.vim/bundle/black/CONTRIBUTING.md b/.vim/bundle/black/CONTRIBUTING.md new file mode 100644 index 0000000..10f6042 --- /dev/null +++ b/.vim/bundle/black/CONTRIBUTING.md @@ -0,0 +1,10 @@ +# Contributing to _Black_ + +Welcome! Happy to see you willing to make the project better. Have you read the entire +[user documentation](https://black.readthedocs.io/en/latest/) yet? + +Our [contributing documentation](https://black.readthedocs.org/en/latest/contributing/) +contains details on all you need to know about contributing to _Black_, the basics to +the internals of _Black_. + +We look forward to your contributions! diff --git a/.vim/bundle/black/Dockerfile b/.vim/bundle/black/Dockerfile new file mode 100644 index 0000000..9542479 --- /dev/null +++ b/.vim/bundle/black/Dockerfile @@ -0,0 +1,14 @@ +FROM python:3-slim + +RUN mkdir /src +COPY . /src/ +RUN pip install --no-cache-dir --upgrade pip setuptools wheel \ + && apt update && apt install -y git \ + && cd /src \ + && pip install --no-cache-dir .[colorama,d] \ + && rm -rf /src \ + && apt remove -y git \ + && apt autoremove -y \ + && rm -rf /var/lib/apt/lists/* + +CMD ["black"] diff --git a/.vim/bundle/black/LICENSE b/.vim/bundle/black/LICENSE new file mode 100644 index 0000000..7a9b891 --- /dev/null +++ b/.vim/bundle/black/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Łukasz Langa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/.vim/bundle/black/MANIFEST.in b/.vim/bundle/black/MANIFEST.in new file mode 100644 index 0000000..5e53af3 --- /dev/null +++ b/.vim/bundle/black/MANIFEST.in @@ -0,0 +1 @@ +prune profiling diff --git a/.vim/bundle/black/Pipfile b/.vim/bundle/black/Pipfile new file mode 100644 index 0000000..90e8f62 --- /dev/null +++ b/.vim/bundle/black/Pipfile @@ -0,0 +1,50 @@ +[[source]] +name = "pypi" +url = "https://pypi.python.org/simple" +verify_ssl = true + +[dev-packages] +# Testing related requirements. +coverage = ">= 5.3" +pytest = " >= 6.1.1" +pytest-xdist = ">= 2.2.1" +pytest-cov = ">= 2.11.1" +tox = "*" + +# Linting related requirements. +pre-commit = ">=2.9.2" +flake8 = ">=3.9.2" +flake8-bugbear = "*" +mypy = ">=0.910" +types-dataclasses = ">=0.1.3" +types-typed-ast = ">=1.4.1" +types-PyYAML = ">=5.4.1" + +# Documentation related requirements. +Sphinx = ">=4.1.2" +MyST-Parser = ">=0.15.1" +sphinxcontrib-programoutput = ">=0.17" +sphinx-copybutton = ">=0.4.0" +docutils = "==0.17.1" # not a direct dependency, see https://github.com/pypa/pipenv/issues/3865 + +# Packaging related requirements. +setuptools = ">=39.2.0" +setuptools-scm = "*" +twine = ">=1.11.0" +wheel = ">=0.31.1" +readme_renderer = "*" + +black = {editable = true, extras = ["d", "jupyter"], path = "."} + +[packages] +aiohttp = ">=3.7.4" +platformdirs= ">=2" +click = ">=8.0.0" +mypy_extensions = ">=0.4.3" +pathspec = ">=0.8.1" +regex = ">=2020.1.8" +tomli = ">=0.2.6, <2.0.0" +typed-ast = "==1.4.3" +typing_extensions = {markers = "python_version < '3.10'", version = ">=3.10.0.0"} +black = {editable = true,extras = ["d"],path = "."} +dataclasses = {markers = "python_version < '3.7'", version = ">0.1.3"} diff --git a/.vim/bundle/black/Pipfile.lock b/.vim/bundle/black/Pipfile.lock new file mode 100644 index 0000000..2ddeca8 --- /dev/null +++ b/.vim/bundle/black/Pipfile.lock @@ -0,0 +1,1613 @@ +{ + "_meta": { + "hash": { + "sha256": "4baa020356174f89177af103f1966928e7b9c2a69df3a9d4e8070eb83ee19387" + }, + "pipfile-spec": 6, + "requires": {}, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.python.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "aiohttp": { + "hashes": [ + "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe", + "sha256:0563c1b3826945eecd62186f3f5c7d31abb7391fedc893b7e2b26303b5a9f3fe", + "sha256:114b281e4d68302a324dd33abb04778e8557d88947875cbf4e842c2c01a030c5", + "sha256:14762875b22d0055f05d12abc7f7d61d5fd4fe4642ce1a249abdf8c700bf1fd8", + "sha256:15492a6368d985b76a2a5fdd2166cddfea5d24e69eefed4630cbaae5c81d89bd", + "sha256:17c073de315745a1510393a96e680d20af8e67e324f70b42accbd4cb3315c9fb", + "sha256:209b4a8ee987eccc91e2bd3ac36adee0e53a5970b8ac52c273f7f8fd4872c94c", + "sha256:230a8f7e24298dea47659251abc0fd8b3c4e38a664c59d4b89cca7f6c09c9e87", + "sha256:2e19413bf84934d651344783c9f5e22dee452e251cfd220ebadbed2d9931dbf0", + "sha256:393f389841e8f2dfc86f774ad22f00923fdee66d238af89b70ea314c4aefd290", + "sha256:3cf75f7cdc2397ed4442594b935a11ed5569961333d49b7539ea741be2cc79d5", + "sha256:3d78619672183be860b96ed96f533046ec97ca067fd46ac1f6a09cd9b7484287", + "sha256:40eced07f07a9e60e825554a31f923e8d3997cfc7fb31dbc1328c70826e04cde", + "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf", + "sha256:4b302b45040890cea949ad092479e01ba25911a15e648429c7c5aae9650c67a8", + "sha256:515dfef7f869a0feb2afee66b957cc7bbe9ad0cdee45aec7fdc623f4ecd4fb16", + "sha256:547da6cacac20666422d4882cfcd51298d45f7ccb60a04ec27424d2f36ba3eaf", + "sha256:5df68496d19f849921f05f14f31bd6ef53ad4b00245da3195048c69934521809", + "sha256:64322071e046020e8797117b3658b9c2f80e3267daec409b350b6a7a05041213", + "sha256:7615dab56bb07bff74bc865307aeb89a8bfd9941d2ef9d817b9436da3a0ea54f", + "sha256:79ebfc238612123a713a457d92afb4096e2148be17df6c50fb9bf7a81c2f8013", + "sha256:7b18b97cf8ee5452fa5f4e3af95d01d84d86d32c5e2bfa260cf041749d66360b", + "sha256:932bb1ea39a54e9ea27fc9232163059a0b8855256f4052e776357ad9add6f1c9", + "sha256:a00bb73540af068ca7390e636c01cbc4f644961896fa9363154ff43fd37af2f5", + "sha256:a5ca29ee66f8343ed336816c553e82d6cade48a3ad702b9ffa6125d187e2dedb", + "sha256:af9aa9ef5ba1fd5b8c948bb11f44891968ab30356d65fd0cc6707d989cd521df", + "sha256:bb437315738aa441251214dad17428cafda9cdc9729499f1d6001748e1d432f4", + "sha256:bdb230b4943891321e06fc7def63c7aace16095be7d9cf3b1e01be2f10fba439", + "sha256:c6e9dcb4cb338d91a73f178d866d051efe7c62a7166653a91e7d9fb18274058f", + "sha256:cffe3ab27871bc3ea47df5d8f7013945712c46a3cc5a95b6bee15887f1675c22", + "sha256:d012ad7911653a906425d8473a1465caa9f8dea7fcf07b6d870397b774ea7c0f", + "sha256:d9e13b33afd39ddeb377eff2c1c4f00544e191e1d1dee5b6c51ddee8ea6f0cf5", + "sha256:e4b2b334e68b18ac9817d828ba44d8fcb391f6acb398bcc5062b14b2cbeac970", + "sha256:e54962802d4b8b18b6207d4a927032826af39395a3bd9196a5af43fc4e60b009", + "sha256:f705e12750171c0ab4ef2a3c76b9a4024a62c4103e3a55dd6f99265b9bc6fcfc", + "sha256:f881853d2643a29e643609da57b96d5f9c9b93f62429dcc1cbb413c7d07f0e1a", + "sha256:fe60131d21b31fd1a14bd43e6bb88256f69dfc3188b3a89d736d6c71ed43ec95" + ], + "index": "pypi", + "version": "==3.7.4.post0" + }, + "async-timeout": { + "hashes": [ + "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", + "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" + ], + "markers": "python_full_version >= '3.5.3'", + "version": "==3.0.1" + }, + "attrs": { + "hashes": [ + "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", + "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==21.2.0" + }, + "black": { + "editable": true, + "extras": [ + "d" + ], + "path": "." + }, + "chardet": { + "hashes": [ + "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", + "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==4.0.0" + }, + "click": { + "hashes": [ + "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a", + "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6" + ], + "index": "pypi", + "version": "==8.0.1" + }, + "dataclasses": { + "hashes": [ + "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf", + "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97" + ], + "index": "pypi", + "markers": "python_version < '3.7'", + "version": "==0.8" + }, + "idna": { + "hashes": [ + "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a", + "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3" + ], + "markers": "python_version >= '3.5'", + "version": "==3.2" + }, + "idna-ssl": { + "hashes": [ + "sha256:a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c" + ], + "markers": "python_version < '3.7'", + "version": "==1.1.0" + }, + "importlib-metadata": { + "hashes": [ + "sha256:7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f", + "sha256:ed5157fef23a4bc4594615a0dd8eba94b2bb36bf2a343fa3d8bb2fa0a62a99d5" + ], + "markers": "python_version < '3.8'", + "version": "==4.6.4" + }, + "multidict": { + "hashes": [ + "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a", + "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93", + "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632", + "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656", + "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79", + "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7", + "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d", + "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5", + "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224", + "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26", + "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea", + "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348", + "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6", + "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76", + "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1", + "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f", + "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952", + "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a", + "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37", + "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9", + "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359", + "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8", + "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da", + "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3", + "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d", + "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf", + "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841", + "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d", + "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93", + "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f", + "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647", + "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635", + "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456", + "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda", + "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5", + "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281", + "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80" + ], + "markers": "python_version >= '3.6'", + "version": "==5.1.0" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "index": "pypi", + "version": "==0.4.3" + }, + "packaging": { + "hashes": [ + "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7", + "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14" + ], + "markers": "python_version >= '3.6'", + "version": "==21.0" + }, + "pathspec": { + "hashes": [ + "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", + "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + ], + "index": "pypi", + "version": "==0.9.0" + }, + "platformdirs": { + "hashes": [ + "sha256:4666d822218db6a262bdfdc9c39d21f23b4cfdb08af331a81e92751daf6c866c", + "sha256:632daad3ab546bd8e6af0537d09805cec458dce201bccfe23012df73332e181e" + ], + "index": "pypi", + "version": "==2.2.0" + }, + "pyparsing": { + "hashes": [ + "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", + "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.4.7" + }, + "regex": { + "hashes": [ + "sha256:03840a07a402576b8e3a6261f17eb88abd653ad4e18ec46ef10c9a63f8c99ebd", + "sha256:06ba444bbf7ede3890a912bd4904bb65bf0da8f0d8808b90545481362c978642", + "sha256:1f9974826aeeda32a76648fc677e3125ade379869a84aa964b683984a2dea9f1", + "sha256:330836ad89ff0be756b58758878409f591d4737b6a8cef26a162e2a4961c3321", + "sha256:38600fd58c2996829480de7d034fb2d3a0307110e44dae80b6b4f9b3d2eea529", + "sha256:3a195e26df1fbb40ebee75865f9b64ba692a5824ecb91c078cc665b01f7a9a36", + "sha256:41acdd6d64cd56f857e271009966c2ffcbd07ec9149ca91f71088574eaa4278a", + "sha256:45f97ade892ace20252e5ccecdd7515c7df5feeb42c3d2a8b8c55920c3551c30", + "sha256:4b0c211c55d4aac4309c3209833c803fada3fc21cdf7b74abedda42a0c9dc3ce", + "sha256:5d5209c3ba25864b1a57461526ebde31483db295fc6195fdfc4f8355e10f7376", + "sha256:615fb5a524cffc91ab4490b69e10ae76c1ccbfa3383ea2fad72e54a85c7d47dd", + "sha256:61e734c2bcb3742c3f454dfa930ea60ea08f56fd1a0eb52d8cb189a2f6be9586", + "sha256:640ccca4d0a6fcc6590f005ecd7b16c3d8f5d52174e4854f96b16f34c39d6cb7", + "sha256:6dbd51c3db300ce9d3171f4106da18fe49e7045232630fe3d4c6e37cb2b39ab9", + "sha256:71a904da8c9c02aee581f4452a5a988c3003207cb8033db426f29e5b2c0b7aea", + "sha256:8021dee64899f993f4b5cca323aae65aabc01a546ed44356a0965e29d7893c94", + "sha256:8b8d551f1bd60b3e1c59ff55b9e8d74607a5308f66e2916948cafd13480b44a3", + "sha256:93f9f720081d97acee38a411e861d4ce84cbc8ea5319bc1f8e38c972c47af49f", + "sha256:96f0c79a70642dfdf7e6a018ebcbea7ea5205e27d8e019cad442d2acfc9af267", + "sha256:9966337353e436e6ba652814b0a957a517feb492a98b8f9d3b6ba76d22301dcc", + "sha256:a34ba9e39f8269fd66ab4f7a802794ffea6d6ac500568ec05b327a862c21ce23", + "sha256:a49f85f0a099a5755d0a2cc6fc337e3cb945ad6390ec892332c691ab0a045882", + "sha256:a795829dc522227265d72b25d6ee6f6d41eb2105c15912c230097c8f5bfdbcdc", + "sha256:a89ca4105f8099de349d139d1090bad387fe2b208b717b288699ca26f179acbe", + "sha256:ac95101736239260189f426b1e361dc1b704513963357dc474beb0f39f5b7759", + "sha256:ae87ab669431f611c56e581679db33b9a467f87d7bf197ac384e71e4956b4456", + "sha256:b091dcfee169ad8de21b61eb2c3a75f9f0f859f851f64fdaf9320759a3244239", + "sha256:b511c6009d50d5c0dd0bab85ed25bc8ad6b6f5611de3a63a59786207e82824bb", + "sha256:b79dc2b2e313565416c1e62807c7c25c67a6ff0a0f8d83a318df464555b65948", + "sha256:bca14dfcfd9aae06d7d8d7e105539bd77d39d06caaae57a1ce945670bae744e0", + "sha256:c835c30f3af5c63a80917b72115e1defb83de99c73bc727bddd979a3b449e183", + "sha256:ccd721f1d4fc42b541b633d6e339018a08dd0290dc67269df79552843a06ca92", + "sha256:d6c2b1d78ceceb6741d703508cd0e9197b34f6bf6864dab30f940f8886e04ade", + "sha256:d6ec4ae13760ceda023b2e5ef1f9bc0b21e4b0830458db143794a117fdbdc044", + "sha256:d8b623fc429a38a881ab2d9a56ef30e8ea20c72a891c193f5ebbddc016e083ee", + "sha256:ea9753d64cba6f226947c318a923dadaf1e21cd8db02f71652405263daa1f033", + "sha256:ebbceefbffae118ab954d3cd6bf718f5790db66152f95202ebc231d58ad4e2c2", + "sha256:ecb6e7c45f9cd199c10ec35262b53b2247fb9a408803ed00ee5bb2b54aa626f5", + "sha256:ef9326c64349e2d718373415814e754183057ebc092261387a2c2f732d9172b2", + "sha256:f93a9d8804f4cec9da6c26c8cfae2c777028b4fdd9f49de0302e26e00bb86504", + "sha256:faf08b0341828f6a29b8f7dd94d5cf8cc7c39bfc3e67b78514c54b494b66915a" + ], + "index": "pypi", + "version": "==2021.8.21" + }, + "setuptools-scm": { + "extras": [ + "toml" + ], + "hashes": [ + "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c", + "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" + }, + "tomli": { + "hashes": [ + "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f", + "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442" + ], + "index": "pypi", + "version": "==1.2.1" + }, + "typed-ast": { + "hashes": [ + "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1", + "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d", + "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6", + "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd", + "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37", + "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151", + "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07", + "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440", + "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70", + "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496", + "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea", + "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400", + "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc", + "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606", + "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc", + "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581", + "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412", + "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a", + "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2", + "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787", + "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f", + "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937", + "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64", + "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487", + "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b", + "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41", + "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a", + "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3", + "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166", + "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10" + ], + "index": "pypi", + "version": "==1.4.3" + }, + "typing-extensions": { + "hashes": [ + "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497", + "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342", + "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84" + ], + "index": "pypi", + "markers": "python_version < '3.10'", + "version": "==3.10.0.0" + }, + "yarl": { + "hashes": [ + "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e", + "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434", + "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366", + "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3", + "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec", + "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959", + "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e", + "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c", + "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6", + "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a", + "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6", + "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424", + "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e", + "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f", + "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50", + "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2", + "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc", + "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4", + "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970", + "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10", + "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0", + "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406", + "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896", + "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643", + "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721", + "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478", + "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724", + "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e", + "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8", + "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96", + "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25", + "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76", + "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2", + "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2", + "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c", + "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a", + "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71" + ], + "markers": "python_version >= '3.6'", + "version": "==1.6.3" + }, + "zipp": { + "hashes": [ + "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3", + "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4" + ], + "markers": "python_version >= '3.6'", + "version": "==3.5.0" + } + }, + "develop": { + "aiohttp": { + "hashes": [ + "sha256:02f46fc0e3c5ac58b80d4d56eb0a7c7d97fcef69ace9326289fb9f1955e65cfe", + "sha256:0563c1b3826945eecd62186f3f5c7d31abb7391fedc893b7e2b26303b5a9f3fe", + "sha256:114b281e4d68302a324dd33abb04778e8557d88947875cbf4e842c2c01a030c5", + "sha256:14762875b22d0055f05d12abc7f7d61d5fd4fe4642ce1a249abdf8c700bf1fd8", + "sha256:15492a6368d985b76a2a5fdd2166cddfea5d24e69eefed4630cbaae5c81d89bd", + "sha256:17c073de315745a1510393a96e680d20af8e67e324f70b42accbd4cb3315c9fb", + "sha256:209b4a8ee987eccc91e2bd3ac36adee0e53a5970b8ac52c273f7f8fd4872c94c", + "sha256:230a8f7e24298dea47659251abc0fd8b3c4e38a664c59d4b89cca7f6c09c9e87", + "sha256:2e19413bf84934d651344783c9f5e22dee452e251cfd220ebadbed2d9931dbf0", + "sha256:393f389841e8f2dfc86f774ad22f00923fdee66d238af89b70ea314c4aefd290", + "sha256:3cf75f7cdc2397ed4442594b935a11ed5569961333d49b7539ea741be2cc79d5", + "sha256:3d78619672183be860b96ed96f533046ec97ca067fd46ac1f6a09cd9b7484287", + "sha256:40eced07f07a9e60e825554a31f923e8d3997cfc7fb31dbc1328c70826e04cde", + "sha256:493d3299ebe5f5a7c66b9819eacdcfbbaaf1a8e84911ddffcdc48888497afecf", + "sha256:4b302b45040890cea949ad092479e01ba25911a15e648429c7c5aae9650c67a8", + "sha256:515dfef7f869a0feb2afee66b957cc7bbe9ad0cdee45aec7fdc623f4ecd4fb16", + "sha256:547da6cacac20666422d4882cfcd51298d45f7ccb60a04ec27424d2f36ba3eaf", + "sha256:5df68496d19f849921f05f14f31bd6ef53ad4b00245da3195048c69934521809", + "sha256:64322071e046020e8797117b3658b9c2f80e3267daec409b350b6a7a05041213", + "sha256:7615dab56bb07bff74bc865307aeb89a8bfd9941d2ef9d817b9436da3a0ea54f", + "sha256:79ebfc238612123a713a457d92afb4096e2148be17df6c50fb9bf7a81c2f8013", + "sha256:7b18b97cf8ee5452fa5f4e3af95d01d84d86d32c5e2bfa260cf041749d66360b", + "sha256:932bb1ea39a54e9ea27fc9232163059a0b8855256f4052e776357ad9add6f1c9", + "sha256:a00bb73540af068ca7390e636c01cbc4f644961896fa9363154ff43fd37af2f5", + "sha256:a5ca29ee66f8343ed336816c553e82d6cade48a3ad702b9ffa6125d187e2dedb", + "sha256:af9aa9ef5ba1fd5b8c948bb11f44891968ab30356d65fd0cc6707d989cd521df", + "sha256:bb437315738aa441251214dad17428cafda9cdc9729499f1d6001748e1d432f4", + "sha256:bdb230b4943891321e06fc7def63c7aace16095be7d9cf3b1e01be2f10fba439", + "sha256:c6e9dcb4cb338d91a73f178d866d051efe7c62a7166653a91e7d9fb18274058f", + "sha256:cffe3ab27871bc3ea47df5d8f7013945712c46a3cc5a95b6bee15887f1675c22", + "sha256:d012ad7911653a906425d8473a1465caa9f8dea7fcf07b6d870397b774ea7c0f", + "sha256:d9e13b33afd39ddeb377eff2c1c4f00544e191e1d1dee5b6c51ddee8ea6f0cf5", + "sha256:e4b2b334e68b18ac9817d828ba44d8fcb391f6acb398bcc5062b14b2cbeac970", + "sha256:e54962802d4b8b18b6207d4a927032826af39395a3bd9196a5af43fc4e60b009", + "sha256:f705e12750171c0ab4ef2a3c76b9a4024a62c4103e3a55dd6f99265b9bc6fcfc", + "sha256:f881853d2643a29e643609da57b96d5f9c9b93f62429dcc1cbb413c7d07f0e1a", + "sha256:fe60131d21b31fd1a14bd43e6bb88256f69dfc3188b3a89d736d6c71ed43ec95" + ], + "index": "pypi", + "version": "==3.7.4.post0" + }, + "alabaster": { + "hashes": [ + "sha256:446438bdcca0e05bd45ea2de1668c1d9b032e1a9154c2c259092d77031ddd359", + "sha256:a661d72d58e6ea8a57f7a86e37d86716863ee5e92788398526d58b26a4e4dc02" + ], + "version": "==0.7.12" + }, + "async-timeout": { + "hashes": [ + "sha256:0c3c816a028d47f659d6ff5c745cb2acf1f966da1fe5c19c77a70282b25f4c5f", + "sha256:4291ca197d287d274d0b6cb5d6f8f8f82d434ed288f962539ff18cc9012f9ea3" + ], + "markers": "python_full_version >= '3.5.3'", + "version": "==3.0.1" + }, + "attrs": { + "hashes": [ + "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1", + "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==21.2.0" + }, + "babel": { + "hashes": [ + "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9", + "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.9.1" + }, + "backcall": { + "hashes": [ + "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e", + "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255" + ], + "version": "==0.2.0" + }, + "backports.entry-points-selectable": { + "hashes": [ + "sha256:988468260ec1c196dab6ae1149260e2f5472c9110334e5d51adcb77867361f6a", + "sha256:a6d9a871cde5e15b4c4a53e3d43ba890cc6861ec1332c9c2428c92f977192acc" + ], + "markers": "python_version >= '2.7'", + "version": "==1.1.0" + }, + "black": { + "editable": true, + "extras": [ + "d" + ], + "path": "." + }, + "bleach": { + "hashes": [ + "sha256:c1685a132e6a9a38bf93752e5faab33a9517a6c0bb2f37b785e47bf253bdb51d", + "sha256:ffa9221c6ac29399cc50fcc33473366edd0cf8d5e2cbbbb63296dc327fb67cc8" + ], + "markers": "python_version >= '3.6'", + "version": "==4.0.0" + }, + "certifi": { + "hashes": [ + "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee", + "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8" + ], + "version": "==2021.5.30" + }, + "cffi": { + "hashes": [ + "sha256:06c54a68935738d206570b20da5ef2b6b6d92b38ef3ec45c5422c0ebaf338d4d", + "sha256:0c0591bee64e438883b0c92a7bed78f6290d40bf02e54c5bf0978eaf36061771", + "sha256:19ca0dbdeda3b2615421d54bef8985f72af6e0c47082a8d26122adac81a95872", + "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c", + "sha256:26bb2549b72708c833f5abe62b756176022a7b9a7f689b571e74c8478ead51dc", + "sha256:33791e8a2dc2953f28b8d8d300dde42dd929ac28f974c4b4c6272cb2955cb762", + "sha256:3c8d896becff2fa653dc4438b54a5a25a971d1f4110b32bd3068db3722c80202", + "sha256:4373612d59c404baeb7cbd788a18b2b2a8331abcc84c3ba40051fcd18b17a4d5", + "sha256:487d63e1454627c8e47dd230025780e91869cfba4c753a74fda196a1f6ad6548", + "sha256:48916e459c54c4a70e52745639f1db524542140433599e13911b2f329834276a", + "sha256:4922cd707b25e623b902c86188aca466d3620892db76c0bdd7b99a3d5e61d35f", + "sha256:55af55e32ae468e9946f741a5d51f9896da6b9bf0bbdd326843fec05c730eb20", + "sha256:57e555a9feb4a8460415f1aac331a2dc833b1115284f7ded7278b54afc5bd218", + "sha256:5d4b68e216fc65e9fe4f524c177b54964af043dde734807586cf5435af84045c", + "sha256:64fda793737bc4037521d4899be780534b9aea552eb673b9833b01f945904c2e", + "sha256:6d6169cb3c6c2ad50db5b868db6491a790300ade1ed5d1da29289d73bbe40b56", + "sha256:7bcac9a2b4fdbed2c16fa5681356d7121ecabf041f18d97ed5b8e0dd38a80224", + "sha256:80b06212075346b5546b0417b9f2bf467fea3bfe7352f781ffc05a8ab24ba14a", + "sha256:818014c754cd3dba7229c0f5884396264d51ffb87ec86e927ef0be140bfdb0d2", + "sha256:8eb687582ed7cd8c4bdbff3df6c0da443eb89c3c72e6e5dcdd9c81729712791a", + "sha256:99f27fefe34c37ba9875f224a8f36e31d744d8083e00f520f133cab79ad5e819", + "sha256:9f3e33c28cd39d1b655ed1ba7247133b6f7fc16fa16887b120c0c670e35ce346", + "sha256:a8661b2ce9694ca01c529bfa204dbb144b275a31685a075ce123f12331be790b", + "sha256:a9da7010cec5a12193d1af9872a00888f396aba3dc79186604a09ea3ee7c029e", + "sha256:aedb15f0a5a5949ecb129a82b72b19df97bbbca024081ed2ef88bd5c0a610534", + "sha256:b315d709717a99f4b27b59b021e6207c64620790ca3e0bde636a6c7f14618abb", + "sha256:ba6f2b3f452e150945d58f4badd92310449876c4c954836cfb1803bdd7b422f0", + "sha256:c33d18eb6e6bc36f09d793c0dc58b0211fccc6ae5149b808da4a62660678b156", + "sha256:c9a875ce9d7fe32887784274dd533c57909b7b1dcadcc128a2ac21331a9765dd", + "sha256:c9e005e9bd57bc987764c32a1bee4364c44fdc11a3cc20a40b93b444984f2b87", + "sha256:d2ad4d668a5c0645d281dcd17aff2be3212bc109b33814bbb15c4939f44181cc", + "sha256:d950695ae4381ecd856bcaf2b1e866720e4ab9a1498cba61c602e56630ca7195", + "sha256:e22dcb48709fc51a7b58a927391b23ab37eb3737a98ac4338e2448bef8559b33", + "sha256:e8c6a99be100371dbb046880e7a282152aa5d6127ae01783e37662ef73850d8f", + "sha256:e9dc245e3ac69c92ee4c167fbdd7428ec1956d4e754223124991ef29eb57a09d", + "sha256:eb687a11f0a7a1839719edd80f41e459cc5366857ecbed383ff376c4e3cc6afd", + "sha256:eb9e2a346c5238a30a746893f23a9535e700f8192a68c07c0258e7ece6ff3728", + "sha256:ed38b924ce794e505647f7c331b22a693bee1538fdf46b0222c4717b42f744e7", + "sha256:f0010c6f9d1a4011e429109fda55a225921e3206e7f62a0c22a35344bfd13cca", + "sha256:f0c5d1acbfca6ebdd6b1e3eded8d261affb6ddcf2186205518f1428b8569bb99", + "sha256:f10afb1004f102c7868ebfe91c28f4a712227fe4cb24974350ace1f90e1febbf", + "sha256:f174135f5609428cc6e1b9090f9268f5c8935fddb1b25ccb8255a2d50de6789e", + "sha256:f3ebe6e73c319340830a9b2825d32eb6d8475c1dac020b4f0aa774ee3b898d1c", + "sha256:f627688813d0a4140153ff532537fbe4afea5a3dffce1f9deb7f91f848a832b5", + "sha256:fd4305f86f53dfd8cd3522269ed7fc34856a8ee3709a5e28b2836b2db9d4cd69" + ], + "version": "==1.14.6" + }, + "cfgv": { + "hashes": [ + "sha256:9e600479b3b99e8af981ecdfc80a0296104ee610cab48a5ae4ffd0b668650eb1", + "sha256:b449c9c6118fe8cca7fa5e00b9ec60ba08145d281d52164230a69211c5d597a1" + ], + "markers": "python_full_version >= '3.6.1'", + "version": "==3.3.0" + }, + "chardet": { + "hashes": [ + "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa", + "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==4.0.0" + }, + "charset-normalizer": { + "hashes": [ + "sha256:0c8911edd15d19223366a194a513099a302055a962bca2cec0f54b8b63175d8b", + "sha256:f23667ebe1084be45f6ae0538e4a5a865206544097e4e8bbcacf42cd02a348f3" + ], + "markers": "python_version >= '3'", + "version": "==2.0.4" + }, + "click": { + "hashes": [ + "sha256:8c04c11192119b1ef78ea049e0a6f0463e4c48ef00a30160c704337586f3ad7a", + "sha256:fba402a4a47334742d782209a7c79bc448911afe1149d07bdabdf480b3e2f4b6" + ], + "index": "pypi", + "version": "==8.0.1" + }, + "colorama": { + "hashes": [ + "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b", + "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==0.4.4" + }, + "coverage": { + "hashes": [ + "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c", + "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6", + "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45", + "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a", + "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03", + "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529", + "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a", + "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a", + "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2", + "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6", + "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759", + "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53", + "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a", + "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4", + "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff", + "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502", + "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793", + "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb", + "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905", + "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821", + "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b", + "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81", + "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0", + "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b", + "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3", + "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184", + "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701", + "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a", + "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82", + "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638", + "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5", + "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083", + "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6", + "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90", + "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465", + "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a", + "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3", + "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e", + "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066", + "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf", + "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b", + "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae", + "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669", + "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873", + "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b", + "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6", + "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb", + "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160", + "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c", + "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079", + "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d", + "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6" + ], + "index": "pypi", + "version": "==5.5" + }, + "cryptography": { + "hashes": [ + "sha256:0f1212a66329c80d68aeeb39b8a16d54ef57071bf22ff4e521657b27372e327d", + "sha256:1e056c28420c072c5e3cb36e2b23ee55e260cb04eee08f702e0edfec3fb51959", + "sha256:240f5c21aef0b73f40bb9f78d2caff73186700bf1bc6b94285699aff98cc16c6", + "sha256:26965837447f9c82f1855e0bc8bc4fb910240b6e0d16a664bb722df3b5b06873", + "sha256:37340614f8a5d2fb9aeea67fd159bfe4f5f4ed535b1090ce8ec428b2f15a11f2", + "sha256:3d10de8116d25649631977cb37da6cbdd2d6fa0e0281d014a5b7d337255ca713", + "sha256:3d8427734c781ea5f1b41d6589c293089704d4759e34597dce91014ac125aad1", + "sha256:7ec5d3b029f5fa2b179325908b9cd93db28ab7b85bb6c1db56b10e0b54235177", + "sha256:8e56e16617872b0957d1c9742a3f94b43533447fd78321514abbe7db216aa250", + "sha256:b01fd6f2737816cb1e08ed4807ae194404790eac7ad030b34f2ce72b332f5586", + "sha256:bf40af59ca2465b24e54f671b2de2c59257ddc4f7e5706dbd6930e26823668d3", + "sha256:de4e5f7f68220d92b7637fc99847475b59154b7a1b3868fb7385337af54ac9ca", + "sha256:eb8cc2afe8b05acbd84a43905832ec78e7b3873fb124ca190f574dca7389a87d", + "sha256:ee77aa129f481be46f8d92a1a7db57269a2f23052d5f2433b4621bb457081cc9" + ], + "markers": "python_version >= '3.6'", + "version": "==3.4.7" + }, + "dataclasses": { + "hashes": [ + "sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf", + "sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97" + ], + "index": "pypi", + "markers": "python_version < '3.7'", + "version": "==0.8" + }, + "decorator": { + "hashes": [ + "sha256:6e5c199c16f7a9f0e3a61a4a54b3d27e7dad0dbdde92b944426cb20914376323", + "sha256:72ecfba4320a893c53f9706bebb2d55c270c1e51a28789361aa93e4a21319ed5" + ], + "markers": "python_version >= '3.5'", + "version": "==5.0.9" + }, + "distlib": { + "hashes": [ + "sha256:106fef6dc37dd8c0e2c0a60d3fca3e77460a48907f335fa28420463a6f799736", + "sha256:23e223426b28491b1ced97dc3bbe183027419dfc7982b4fa2f05d5f3ff10711c" + ], + "version": "==0.3.2" + }, + "docutils": { + "hashes": [ + "sha256:686577d2e4c32380bb50cbb22f575ed742d58168cee37e99117a854bcd88f125", + "sha256:cf316c8370a737a022b72b56874f6602acf974a37a9fba42ec2876387549fc61" + ], + "index": "pypi", + "version": "==0.17.1" + }, + "execnet": { + "hashes": [ + "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5", + "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==1.9.0" + }, + "filelock": { + "hashes": [ + "sha256:18d82244ee114f543149c66a6e0c14e9c4f8a1044b5cdaadd0f82159d6a6ff59", + "sha256:929b7d63ec5b7d6b71b0fa5ac14e030b3f70b75747cef1b10da9b879fef15836" + ], + "version": "==3.0.12" + }, + "flake8": { + "hashes": [ + "sha256:07528381786f2a6237b061f6e96610a4167b226cb926e2aa2b6b1d78057c576b", + "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907" + ], + "index": "pypi", + "version": "==3.9.2" + }, + "flake8-bugbear": { + "hashes": [ + "sha256:2346c81f889955b39e4a368eb7d508de723d9de05716c287dc860a4073dc57e7", + "sha256:4f305dca96be62bf732a218fe6f1825472a621d3452c5b994d8f89dae21dbafa" + ], + "index": "pypi", + "version": "==21.4.3" + }, + "identify": { + "hashes": [ + "sha256:7199679b5be13a6b40e6e19ea473e789b11b4e3b60986499b1f589ffb03c217c", + "sha256:7bc6e829392bd017236531963d2d937d66fc27cadc643ac0aba2ce9f26157c79" + ], + "markers": "python_full_version >= '3.6.1'", + "version": "==2.2.13" + }, + "idna": { + "hashes": [ + "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a", + "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3" + ], + "markers": "python_version >= '3.5'", + "version": "==3.2" + }, + "idna-ssl": { + "hashes": [ + "sha256:a933e3bb13da54383f9e8f35dc4f9cb9eb9b3b78c6b36f311254d6d0d92c6c7c" + ], + "markers": "python_version < '3.7'", + "version": "==1.1.0" + }, + "imagesize": { + "hashes": [ + "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1", + "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.2.0" + }, + "importlib-metadata": { + "hashes": [ + "sha256:7b30a78db2922d78a6f47fb30683156a14f3c6aa5cc23f77cc8967e9ab2d002f", + "sha256:ed5157fef23a4bc4594615a0dd8eba94b2bb36bf2a343fa3d8bb2fa0a62a99d5" + ], + "markers": "python_version < '3.8'", + "version": "==4.6.4" + }, + "importlib-resources": { + "hashes": [ + "sha256:2480d8e07d1890056cb53c96e3de44fead9c62f2ba949b0f2e4c4345f4afa977", + "sha256:a65882a4d0fe5fbf702273456ba2ce74fe44892c25e42e057aca526b702a6d4b" + ], + "markers": "python_version < '3.7'", + "version": "==5.2.2" + }, + "iniconfig": { + "hashes": [ + "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3", + "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32" + ], + "version": "==1.1.1" + }, + "ipython": { + "hashes": [ + "sha256:2dbcc8c27ca7d3cfe4fcdff7f45b27f9a8d3edfa70ff8024a71c7a8eb5f09d64", + "sha256:9f4fcb31d3b2c533333893b9172264e4821c1ac91839500f31bd43f2c59b3ccf" + ], + "markers": "python_version >= '3.6'", + "version": "==7.16.1" + }, + "ipython-genutils": { + "hashes": [ + "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", + "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" + ], + "version": "==0.2.0" + }, + "jedi": { + "hashes": [ + "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93", + "sha256:92550a404bad8afed881a137ec9a461fed49eca661414be45059329614ed0707" + ], + "markers": "python_version >= '3.6'", + "version": "==0.18.0" + }, + "jeepney": { + "hashes": [ + "sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac", + "sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f" + ], + "markers": "sys_platform == 'linux'", + "version": "==0.7.1" + }, + "jinja2": { + "hashes": [ + "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4", + "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4" + ], + "markers": "python_version >= '3.6'", + "version": "==3.0.1" + }, + "keyring": { + "hashes": [ + "sha256:b32397fd7e7063f8dd74a26db910c9862fc2109285fa16e3b5208bcb42a3e579", + "sha256:b7e0156667f5dcc73c1f63a518005cd18a4eb23fe77321194fefcc03748b21a4" + ], + "markers": "python_version >= '3.6'", + "version": "==23.1.0" + }, + "markdown-it-py": { + "hashes": [ + "sha256:36be6bb3ad987bfdb839f5ba78ddf094552ca38ccbd784ae4f74a4e1419fc6e3", + "sha256:98080fc0bc34c4f2bcf0846a096a9429acbd9d5d8e67ed34026c03c61c464389" + ], + "markers": "python_version ~= '3.6'", + "version": "==1.1.0" + }, + "markupsafe": { + "hashes": [ + "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298", + "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64", + "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b", + "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567", + "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff", + "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724", + "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74", + "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646", + "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35", + "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6", + "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6", + "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad", + "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26", + "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38", + "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac", + "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7", + "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6", + "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75", + "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f", + "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135", + "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8", + "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a", + "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a", + "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9", + "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864", + "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914", + "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18", + "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8", + "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2", + "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d", + "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b", + "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b", + "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f", + "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb", + "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833", + "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28", + "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415", + "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902", + "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d", + "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9", + "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d", + "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145", + "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066", + "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c", + "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1", + "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f", + "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53", + "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134", + "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85", + "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5", + "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94", + "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509", + "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51", + "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872" + ], + "markers": "python_version >= '3.6'", + "version": "==2.0.1" + }, + "matplotlib-inline": { + "hashes": [ + "sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811", + "sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e" + ], + "markers": "python_version >= '3.5'", + "version": "==0.1.2" + }, + "mccabe": { + "hashes": [ + "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", + "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" + ], + "version": "==0.6.1" + }, + "mdit-py-plugins": { + "hashes": [ + "sha256:1833bf738e038e35d89cb3a07eb0d227ed647ce7dd357579b65343740c6d249c", + "sha256:5991cef645502e80a5388ec4fc20885d2313d4871e8b8e320ca2de14ac0c015f" + ], + "markers": "python_version ~= '3.6'", + "version": "==0.2.8" + }, + "multidict": { + "hashes": [ + "sha256:018132dbd8688c7a69ad89c4a3f39ea2f9f33302ebe567a879da8f4ca73f0d0a", + "sha256:051012ccee979b2b06be928a6150d237aec75dd6bf2d1eeeb190baf2b05abc93", + "sha256:05c20b68e512166fddba59a918773ba002fdd77800cad9f55b59790030bab632", + "sha256:07b42215124aedecc6083f1ce6b7e5ec5b50047afa701f3442054373a6deb656", + "sha256:0e3c84e6c67eba89c2dbcee08504ba8644ab4284863452450520dad8f1e89b79", + "sha256:0e929169f9c090dae0646a011c8b058e5e5fb391466016b39d21745b48817fd7", + "sha256:1ab820665e67373de5802acae069a6a05567ae234ddb129f31d290fc3d1aa56d", + "sha256:25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5", + "sha256:2e68965192c4ea61fff1b81c14ff712fc7dc15d2bd120602e4a3494ea6584224", + "sha256:2f1a132f1c88724674271d636e6b7351477c27722f2ed789f719f9e3545a3d26", + "sha256:37e5438e1c78931df5d3c0c78ae049092877e5e9c02dd1ff5abb9cf27a5914ea", + "sha256:3a041b76d13706b7fff23b9fc83117c7b8fe8d5fe9e6be45eee72b9baa75f348", + "sha256:3a4f32116f8f72ecf2a29dabfb27b23ab7cdc0ba807e8459e59a93a9be9506f6", + "sha256:46c73e09ad374a6d876c599f2328161bcd95e280f84d2060cf57991dec5cfe76", + "sha256:46dd362c2f045095c920162e9307de5ffd0a1bfbba0a6e990b344366f55a30c1", + "sha256:4b186eb7d6ae7c06eb4392411189469e6a820da81447f46c0072a41c748ab73f", + "sha256:54fd1e83a184e19c598d5e70ba508196fd0bbdd676ce159feb412a4a6664f952", + "sha256:585fd452dd7782130d112f7ddf3473ffdd521414674c33876187e101b588738a", + "sha256:5cf3443199b83ed9e955f511b5b241fd3ae004e3cb81c58ec10f4fe47c7dce37", + "sha256:6a4d5ce640e37b0efcc8441caeea8f43a06addace2335bd11151bc02d2ee31f9", + "sha256:7df80d07818b385f3129180369079bd6934cf70469f99daaebfac89dca288359", + "sha256:806068d4f86cb06af37cd65821554f98240a19ce646d3cd24e1c33587f313eb8", + "sha256:830f57206cc96ed0ccf68304141fec9481a096c4d2e2831f311bde1c404401da", + "sha256:929006d3c2d923788ba153ad0de8ed2e5ed39fdbe8e7be21e2f22ed06c6783d3", + "sha256:9436dc58c123f07b230383083855593550c4d301d2532045a17ccf6eca505f6d", + "sha256:9dd6e9b1a913d096ac95d0399bd737e00f2af1e1594a787e00f7975778c8b2bf", + "sha256:ace010325c787c378afd7f7c1ac66b26313b3344628652eacd149bdd23c68841", + "sha256:b47a43177a5e65b771b80db71e7be76c0ba23cc8aa73eeeb089ed5219cdbe27d", + "sha256:b797515be8743b771aa868f83563f789bbd4b236659ba52243b735d80b29ed93", + "sha256:b7993704f1a4b204e71debe6095150d43b2ee6150fa4f44d6d966ec356a8d61f", + "sha256:d5c65bdf4484872c4af3150aeebe101ba560dcfb34488d9a8ff8dbcd21079647", + "sha256:d81eddcb12d608cc08081fa88d046c78afb1bf8107e6feab5d43503fea74a635", + "sha256:dc862056f76443a0db4509116c5cd480fe1b6a2d45512a653f9a855cc0517456", + "sha256:ecc771ab628ea281517e24fd2c52e8f31c41e66652d07599ad8818abaad38cda", + "sha256:f200755768dc19c6f4e2b672421e0ebb3dd54c38d5a4f262b872d8cfcc9e93b5", + "sha256:f21756997ad8ef815d8ef3d34edd98804ab5ea337feedcd62fb52d22bf531281", + "sha256:fc13a9524bc18b6fb6e0dbec3533ba0496bbed167c56d0aabefd965584557d80" + ], + "markers": "python_version >= '3.6'", + "version": "==5.1.0" + }, + "mypy": { + "hashes": [ + "sha256:088cd9c7904b4ad80bec811053272986611b84221835e079be5bcad029e79dd9", + "sha256:0aadfb2d3935988ec3815952e44058a3100499f5be5b28c34ac9d79f002a4a9a", + "sha256:119bed3832d961f3a880787bf621634ba042cb8dc850a7429f643508eeac97b9", + "sha256:1a85e280d4d217150ce8cb1a6dddffd14e753a4e0c3cf90baabb32cefa41b59e", + "sha256:3c4b8ca36877fc75339253721f69603a9c7fdb5d4d5a95a1a1b899d8b86a4de2", + "sha256:3e382b29f8e0ccf19a2df2b29a167591245df90c0b5a2542249873b5c1d78212", + "sha256:42c266ced41b65ed40a282c575705325fa7991af370036d3f134518336636f5b", + "sha256:53fd2eb27a8ee2892614370896956af2ff61254c275aaee4c230ae771cadd885", + "sha256:704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150", + "sha256:7df1ead20c81371ccd6091fa3e2878559b5c4d4caadaf1a484cf88d93ca06703", + "sha256:866c41f28cee548475f146aa4d39a51cf3b6a84246969f3759cb3e9c742fc072", + "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457", + "sha256:adaeee09bfde366d2c13fe6093a7df5df83c9a2ba98638c7d76b010694db760e", + "sha256:b6fb13123aeef4a3abbcfd7e71773ff3ff1526a7d3dc538f3929a49b42be03f0", + "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb", + "sha256:c0df2d30ed496a08de5daed2a9ea807d07c21ae0ab23acf541ab88c24b26ab97", + "sha256:c6c2602dffb74867498f86e6129fd52a2770c48b7cd3ece77ada4fa38f94eba8", + "sha256:ceb6e0a6e27fb364fb3853389607cf7eb3a126ad335790fa1e14ed02fba50811", + "sha256:d9dd839eb0dc1bbe866a288ba3c1afc33a202015d2ad83b31e875b5905a079b6", + "sha256:e4dab234478e3bd3ce83bac4193b2ecd9cf94e720ddd95ce69840273bf44f6de", + "sha256:ec4e0cd079db280b6bdabdc807047ff3e199f334050db5cbb91ba3e959a67504", + "sha256:ecd2c3fe726758037234c93df7e98deb257fd15c24c9180dacf1ef829da5f921", + "sha256:ef565033fa5a958e62796867b1df10c40263ea9ded87164d67572834e57a174d" + ], + "index": "pypi", + "version": "==0.910" + }, + "mypy-extensions": { + "hashes": [ + "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d", + "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8" + ], + "index": "pypi", + "version": "==0.4.3" + }, + "myst-parser": { + "hashes": [ + "sha256:7c3c78a36c4bc30ce6a67933ebd800a880c8d81f1688fad5c2ebd82cddbc1603", + "sha256:e8baa9959dac0bcf0f3ea5fc32a1a28792959471d8a8094e3ed5ee0de9733ade" + ], + "index": "pypi", + "version": "==0.15.1" + }, + "nodeenv": { + "hashes": [ + "sha256:3ef13ff90291ba2a4a7a4ff9a979b63ffdd00a464dbe04acf0ea6471517a4c2b", + "sha256:621e6b7076565ddcacd2db0294c0381e01fd28945ab36bcf00f41c5daf63bef7" + ], + "version": "==1.6.0" + }, + "packaging": { + "hashes": [ + "sha256:7dc96269f53a4ccec5c0670940a4281106dd0bb343f47b7471f779df49c2fbe7", + "sha256:c86254f9220d55e31cc94d69bade760f0847da8000def4dfe1c6b872fd14ff14" + ], + "markers": "python_version >= '3.6'", + "version": "==21.0" + }, + "parso": { + "hashes": [ + "sha256:12b83492c6239ce32ff5eed6d3639d6a536170723c6f3f1506869f1ace413398", + "sha256:a8c4922db71e4fdb90e0d0bc6e50f9b273d3397925e5e60a717e719201778d22" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.2" + }, + "pathspec": { + "hashes": [ + "sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a", + "sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1" + ], + "index": "pypi", + "version": "==0.9.0" + }, + "pexpect": { + "hashes": [ + "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937", + "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c" + ], + "markers": "sys_platform != 'win32'", + "version": "==4.8.0" + }, + "pickleshare": { + "hashes": [ + "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", + "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" + ], + "version": "==0.7.5" + }, + "pkginfo": { + "hashes": [ + "sha256:37ecd857b47e5f55949c41ed061eb51a0bee97a87c969219d144c0e023982779", + "sha256:e7432f81d08adec7297633191bbf0bd47faf13cd8724c3a13250e51d542635bd" + ], + "version": "==1.7.1" + }, + "platformdirs": { + "hashes": [ + "sha256:4666d822218db6a262bdfdc9c39d21f23b4cfdb08af331a81e92751daf6c866c", + "sha256:632daad3ab546bd8e6af0537d09805cec458dce201bccfe23012df73332e181e" + ], + "index": "pypi", + "version": "==2.2.0" + }, + "pluggy": { + "hashes": [ + "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0", + "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.13.1" + }, + "pre-commit": { + "hashes": [ + "sha256:2386eeb4cf6633712c7cc9ede83684d53c8cafca6b59f79c738098b51c6d206c", + "sha256:ec3045ae62e1aa2eecfb8e86fa3025c2e3698f77394ef8d2011ce0aedd85b2d4" + ], + "index": "pypi", + "version": "==2.14.0" + }, + "prompt-toolkit": { + "hashes": [ + "sha256:6076e46efae19b1e0ca1ec003ed37a933dc94b4d20f486235d436e64771dcd5c", + "sha256:eb71d5a6b72ce6db177af4a7d4d7085b99756bf656d98ffcc4fecd36850eea6c" + ], + "markers": "python_full_version >= '3.6.2'", + "version": "==3.0.20" + }, + "ptyprocess": { + "hashes": [ + "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", + "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220" + ], + "version": "==0.7.0" + }, + "py": { + "hashes": [ + "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3", + "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.10.0" + }, + "pycodestyle": { + "hashes": [ + "sha256:514f76d918fcc0b55c6680472f0a37970994e07bbb80725808c17089be302068", + "sha256:c389c1d06bf7904078ca03399a4816f974a1d590090fecea0c63ec26ebaf1cef" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.7.0" + }, + "pycparser": { + "hashes": [ + "sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0", + "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.20" + }, + "pyflakes": { + "hashes": [ + "sha256:7893783d01b8a89811dd72d7dfd4d84ff098e5eed95cfa8905b22bbffe52efc3", + "sha256:f5bc8ecabc05bb9d291eb5203d6810b49040f6ff446a756326104746cc00c1db" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.3.1" + }, + "pygments": { + "hashes": [ + "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380", + "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6" + ], + "markers": "python_version >= '3.5'", + "version": "==2.10.0" + }, + "pyparsing": { + "hashes": [ + "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1", + "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.4.7" + }, + "pytest": { + "hashes": [ + "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b", + "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890" + ], + "index": "pypi", + "version": "==6.2.4" + }, + "pytest-cov": { + "hashes": [ + "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a", + "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7" + ], + "index": "pypi", + "version": "==2.12.1" + }, + "pytest-forked": { + "hashes": [ + "sha256:6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca", + "sha256:dc4147784048e70ef5d437951728825a131b81714b398d5d52f17c7c144d8815" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==1.3.0" + }, + "pytest-xdist": { + "hashes": [ + "sha256:e8ecde2f85d88fbcadb7d28cb33da0fa29bca5cf7d5967fa89fc0e97e5299ea5", + "sha256:ed3d7da961070fce2a01818b51f6888327fb88df4379edeb6b9d990e789d9c8d" + ], + "index": "pypi", + "version": "==2.3.0" + }, + "pytz": { + "hashes": [ + "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da", + "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798" + ], + "version": "==2021.1" + }, + "pyyaml": { + "hashes": [ + "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf", + "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696", + "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393", + "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77", + "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922", + "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5", + "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8", + "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10", + "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc", + "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018", + "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e", + "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253", + "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347", + "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183", + "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541", + "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb", + "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185", + "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc", + "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db", + "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa", + "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46", + "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122", + "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b", + "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63", + "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df", + "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc", + "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247", + "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6", + "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==5.4.1" + }, + "readme-renderer": { + "hashes": [ + "sha256:63b4075c6698fcfa78e584930f07f39e05d46f3ec97f65006e430b595ca6348c", + "sha256:92fd5ac2bf8677f310f3303aa4bce5b9d5f9f2094ab98c29f13791d7b805a3db" + ], + "index": "pypi", + "version": "==29.0" + }, + "regex": { + "hashes": [ + "sha256:03840a07a402576b8e3a6261f17eb88abd653ad4e18ec46ef10c9a63f8c99ebd", + "sha256:06ba444bbf7ede3890a912bd4904bb65bf0da8f0d8808b90545481362c978642", + "sha256:1f9974826aeeda32a76648fc677e3125ade379869a84aa964b683984a2dea9f1", + "sha256:330836ad89ff0be756b58758878409f591d4737b6a8cef26a162e2a4961c3321", + "sha256:38600fd58c2996829480de7d034fb2d3a0307110e44dae80b6b4f9b3d2eea529", + "sha256:3a195e26df1fbb40ebee75865f9b64ba692a5824ecb91c078cc665b01f7a9a36", + "sha256:41acdd6d64cd56f857e271009966c2ffcbd07ec9149ca91f71088574eaa4278a", + "sha256:45f97ade892ace20252e5ccecdd7515c7df5feeb42c3d2a8b8c55920c3551c30", + "sha256:4b0c211c55d4aac4309c3209833c803fada3fc21cdf7b74abedda42a0c9dc3ce", + "sha256:5d5209c3ba25864b1a57461526ebde31483db295fc6195fdfc4f8355e10f7376", + "sha256:615fb5a524cffc91ab4490b69e10ae76c1ccbfa3383ea2fad72e54a85c7d47dd", + "sha256:61e734c2bcb3742c3f454dfa930ea60ea08f56fd1a0eb52d8cb189a2f6be9586", + "sha256:640ccca4d0a6fcc6590f005ecd7b16c3d8f5d52174e4854f96b16f34c39d6cb7", + "sha256:6dbd51c3db300ce9d3171f4106da18fe49e7045232630fe3d4c6e37cb2b39ab9", + "sha256:71a904da8c9c02aee581f4452a5a988c3003207cb8033db426f29e5b2c0b7aea", + "sha256:8021dee64899f993f4b5cca323aae65aabc01a546ed44356a0965e29d7893c94", + "sha256:8b8d551f1bd60b3e1c59ff55b9e8d74607a5308f66e2916948cafd13480b44a3", + "sha256:93f9f720081d97acee38a411e861d4ce84cbc8ea5319bc1f8e38c972c47af49f", + "sha256:96f0c79a70642dfdf7e6a018ebcbea7ea5205e27d8e019cad442d2acfc9af267", + "sha256:9966337353e436e6ba652814b0a957a517feb492a98b8f9d3b6ba76d22301dcc", + "sha256:a34ba9e39f8269fd66ab4f7a802794ffea6d6ac500568ec05b327a862c21ce23", + "sha256:a49f85f0a099a5755d0a2cc6fc337e3cb945ad6390ec892332c691ab0a045882", + "sha256:a795829dc522227265d72b25d6ee6f6d41eb2105c15912c230097c8f5bfdbcdc", + "sha256:a89ca4105f8099de349d139d1090bad387fe2b208b717b288699ca26f179acbe", + "sha256:ac95101736239260189f426b1e361dc1b704513963357dc474beb0f39f5b7759", + "sha256:ae87ab669431f611c56e581679db33b9a467f87d7bf197ac384e71e4956b4456", + "sha256:b091dcfee169ad8de21b61eb2c3a75f9f0f859f851f64fdaf9320759a3244239", + "sha256:b511c6009d50d5c0dd0bab85ed25bc8ad6b6f5611de3a63a59786207e82824bb", + "sha256:b79dc2b2e313565416c1e62807c7c25c67a6ff0a0f8d83a318df464555b65948", + "sha256:bca14dfcfd9aae06d7d8d7e105539bd77d39d06caaae57a1ce945670bae744e0", + "sha256:c835c30f3af5c63a80917b72115e1defb83de99c73bc727bddd979a3b449e183", + "sha256:ccd721f1d4fc42b541b633d6e339018a08dd0290dc67269df79552843a06ca92", + "sha256:d6c2b1d78ceceb6741d703508cd0e9197b34f6bf6864dab30f940f8886e04ade", + "sha256:d6ec4ae13760ceda023b2e5ef1f9bc0b21e4b0830458db143794a117fdbdc044", + "sha256:d8b623fc429a38a881ab2d9a56ef30e8ea20c72a891c193f5ebbddc016e083ee", + "sha256:ea9753d64cba6f226947c318a923dadaf1e21cd8db02f71652405263daa1f033", + "sha256:ebbceefbffae118ab954d3cd6bf718f5790db66152f95202ebc231d58ad4e2c2", + "sha256:ecb6e7c45f9cd199c10ec35262b53b2247fb9a408803ed00ee5bb2b54aa626f5", + "sha256:ef9326c64349e2d718373415814e754183057ebc092261387a2c2f732d9172b2", + "sha256:f93a9d8804f4cec9da6c26c8cfae2c777028b4fdd9f49de0302e26e00bb86504", + "sha256:faf08b0341828f6a29b8f7dd94d5cf8cc7c39bfc3e67b78514c54b494b66915a" + ], + "index": "pypi", + "version": "==2021.8.21" + }, + "requests": { + "hashes": [ + "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24", + "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==2.26.0" + }, + "requests-toolbelt": { + "hashes": [ + "sha256:380606e1d10dc85c3bd47bf5a6095f815ec007be7a8b69c878507068df059e6f", + "sha256:968089d4584ad4ad7c171454f0a5c6dac23971e9472521ea3b6d49d610aa6fc0" + ], + "version": "==0.9.1" + }, + "rfc3986": { + "hashes": [ + "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835", + "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97" + ], + "version": "==1.5.0" + }, + "secretstorage": { + "hashes": [ + "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f", + "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195" + ], + "markers": "sys_platform == 'linux'", + "version": "==3.3.1" + }, + "setuptools-scm": { + "extras": [ + "toml" + ], + "hashes": [ + "sha256:c3bd5f701c8def44a5c0bfe8d407bef3f80342217ef3492b951f3777bd2d915c", + "sha256:d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "snowballstemmer": { + "hashes": [ + "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2", + "sha256:e997baa4f2e9139951b6f4c631bad912dfd3c792467e2f03d7239464af90e914" + ], + "version": "==2.1.0" + }, + "sphinx": { + "hashes": [ + "sha256:3092d929cd807926d846018f2ace47ba2f3b671b309c7a89cd3306e80c826b13", + "sha256:46d52c6cee13fec44744b8c01ed692c18a640f6910a725cbb938bc36e8d64544" + ], + "index": "pypi", + "version": "==4.1.2" + }, + "sphinx-copybutton": { + "hashes": [ + "sha256:4340d33c169dac6dd82dce2c83333412aa786a42dd01a81a8decac3b130dc8b0", + "sha256:8daed13a87afd5013c3a9af3575cc4d5bec052075ccd3db243f895c07a689386" + ], + "index": "pypi", + "version": "==0.4.0" + }, + "sphinxcontrib-applehelp": { + "hashes": [ + "sha256:806111e5e962be97c29ec4c1e7fe277bfd19e9652fb1a4392105b43e01af885a", + "sha256:a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.2" + }, + "sphinxcontrib-devhelp": { + "hashes": [ + "sha256:8165223f9a335cc1af7ffe1ed31d2871f325254c0423bc0c4c7cd1c1e4734a2e", + "sha256:ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.2" + }, + "sphinxcontrib-htmlhelp": { + "hashes": [ + "sha256:d412243dfb797ae3ec2b59eca0e52dac12e75a241bf0e4eb861e450d06c6ed07", + "sha256:f5f8bb2d0d629f398bf47d0d69c07bc13b65f75a81ad9e2f71a63d4b7a2f6db2" + ], + "markers": "python_version >= '3.6'", + "version": "==2.0.0" + }, + "sphinxcontrib-jsmath": { + "hashes": [ + "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", + "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.1" + }, + "sphinxcontrib-programoutput": { + "hashes": [ + "sha256:0ef1c1d9159dbe7103077748214305eb4e0138e861feb71c0c346afc5fe97f84", + "sha256:300ee9b8caee8355d25cc74b4d1c7efd12e608d2ad165e3141d31e6fbc152b7f" + ], + "index": "pypi", + "version": "==0.17" + }, + "sphinxcontrib-qthelp": { + "hashes": [ + "sha256:4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72", + "sha256:bd9fc24bcb748a8d51fd4ecaade681350aa63009a347a8c14e637895444dfab6" + ], + "markers": "python_version >= '3.5'", + "version": "==1.0.3" + }, + "sphinxcontrib-serializinghtml": { + "hashes": [ + "sha256:352a9a00ae864471d3a7ead8d7d79f5fc0b57e8b3f95e9867eb9eb28999b92fd", + "sha256:aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952" + ], + "markers": "python_version >= '3.5'", + "version": "==1.1.5" + }, + "tokenize-rt": { + "hashes": [ + "sha256:ab339b5ff829eb5e198590477f9c03c84e762b3e455e74c018956e7e326cbc70", + "sha256:b37251fa28c21e8cce2e42f7769a35fba2dd2ecafb297208f9a9a8add3ca7793" + ], + "markers": "python_full_version >= '3.6.1'", + "version": "==4.1.0" + }, + "toml": { + "hashes": [ + "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", + "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f" + ], + "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==0.10.2" + }, + "tomli": { + "hashes": [ + "sha256:8dd0e9524d6f386271a36b41dbf6c57d8e32fd96fd22b6584679dc569d20899f", + "sha256:a5b75cb6f3968abb47af1b40c1819dc519ea82bcc065776a866e8d74c5ca9442" + ], + "index": "pypi", + "version": "==1.2.1" + }, + "tox": { + "hashes": [ + "sha256:9fbf8e2ab758b2a5e7cb2c72945e4728089934853076f67ef18d7575c8ab6b88", + "sha256:c6c4e77705ada004283610fd6d9ba4f77bc85d235447f875df9f0ba1bc23b634" + ], + "index": "pypi", + "version": "==3.24.3" + }, + "tqdm": { + "hashes": [ + "sha256:07856e19a1fe4d2d9621b539d3f072fa88c9c1ef1f3b7dd4d4953383134c3164", + "sha256:35540feeaca9ac40c304e916729e6b78045cbbeccd3e941b2868f09306798ac9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==4.62.1" + }, + "traitlets": { + "hashes": [ + "sha256:70b4c6a1d9019d7b4f6846832288f86998aa3b9207c6821f3578a6a6a467fe44", + "sha256:d023ee369ddd2763310e4c3eae1ff649689440d4ae59d7485eb4cfbbe3e359f7" + ], + "version": "==4.3.3" + }, + "twine": { + "hashes": [ + "sha256:087328e9bb405e7ce18527a2dca4042a84c7918658f951110b38bc135acab218", + "sha256:4caec0f1ed78dc4c9b83ad537e453d03ce485725f2aea57f1bb3fdde78dae936" + ], + "index": "pypi", + "version": "==3.4.2" + }, + "typed-ast": { + "hashes": [ + "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1", + "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d", + "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6", + "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd", + "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37", + "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151", + "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07", + "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440", + "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70", + "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496", + "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea", + "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400", + "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc", + "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606", + "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc", + "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581", + "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412", + "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a", + "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2", + "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787", + "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f", + "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937", + "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64", + "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487", + "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b", + "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41", + "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a", + "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3", + "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166", + "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10" + ], + "index": "pypi", + "version": "==1.4.3" + }, + "types-dataclasses": { + "hashes": [ + "sha256:248075d093d8f7c1541ce515594df7ae40233d1340afde11ce7125368c5209b8", + "sha256:fc372bb68b878ac7a68fd04230d923d4a6303a137ecb0b9700b90630bdfcbfc9" + ], + "index": "pypi", + "version": "==0.1.7" + }, + "types-pyyaml": { + "hashes": [ + "sha256:745dcb4b1522423026bcc83abb9925fba747f1e8602d902f71a4058f9e7fb662", + "sha256:96f8d3d96aa1a18a465e8f6a220e02cff2f52632314845a364ecbacb0aea6e30" + ], + "index": "pypi", + "version": "==5.4.6" + }, + "types-typed-ast": { + "hashes": [ + "sha256:b7f561796b4d002c7522b0020f58b18f715bd28a31429d424a78e2e2dbbd6785", + "sha256:ffa0471e0ba19c4ea0cba0436d660871b5f5215854ea9ead3cb5b60f525af75a" + ], + "index": "pypi", + "version": "==1.4.4" + }, + "typing-extensions": { + "hashes": [ + "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497", + "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342", + "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84" + ], + "index": "pypi", + "markers": "python_version < '3.10'", + "version": "==3.10.0.0" + }, + "urllib3": { + "hashes": [ + "sha256:39fb8672126159acb139a7718dd10806104dec1e2f0f6c88aab05d17df10c8d4", + "sha256:f57b4c16c62fa2760b7e3d97c35b255512fb6b59a259730f36ba32ce9f8e342f" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'", + "version": "==1.26.6" + }, + "virtualenv": { + "hashes": [ + "sha256:9ef4e8ee4710826e98ff3075c9a4739e2cb1040de6a2a8d35db0055840dc96a0", + "sha256:e4670891b3a03eb071748c569a87cceaefbf643c5bac46d996c5a45c34aa0f06" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", + "version": "==20.7.2" + }, + "wcwidth": { + "hashes": [ + "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784", + "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83" + ], + "version": "==0.2.5" + }, + "webencodings": { + "hashes": [ + "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", + "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923" + ], + "version": "==0.5.1" + }, + "wheel": { + "hashes": [ + "sha256:21014b2bd93c6d0034b6ba5d35e4eb284340e09d63c59aef6fc14b0f346146fd", + "sha256:e2ef7239991699e3355d54f8e968a21bb940a1dbf34a4d226741e64462516fad" + ], + "index": "pypi", + "version": "==0.37.0" + }, + "yarl": { + "hashes": [ + "sha256:00d7ad91b6583602eb9c1d085a2cf281ada267e9a197e8b7cae487dadbfa293e", + "sha256:0355a701b3998dcd832d0dc47cc5dedf3874f966ac7f870e0f3a6788d802d434", + "sha256:15263c3b0b47968c1d90daa89f21fcc889bb4b1aac5555580d74565de6836366", + "sha256:2ce4c621d21326a4a5500c25031e102af589edb50c09b321049e388b3934eec3", + "sha256:31ede6e8c4329fb81c86706ba8f6bf661a924b53ba191b27aa5fcee5714d18ec", + "sha256:324ba3d3c6fee56e2e0b0d09bf5c73824b9f08234339d2b788af65e60040c959", + "sha256:329412812ecfc94a57cd37c9d547579510a9e83c516bc069470db5f75684629e", + "sha256:4736eaee5626db8d9cda9eb5282028cc834e2aeb194e0d8b50217d707e98bb5c", + "sha256:4953fb0b4fdb7e08b2f3b3be80a00d28c5c8a2056bb066169de00e6501b986b6", + "sha256:4c5bcfc3ed226bf6419f7a33982fb4b8ec2e45785a0561eb99274ebbf09fdd6a", + "sha256:547f7665ad50fa8563150ed079f8e805e63dd85def6674c97efd78eed6c224a6", + "sha256:5b883e458058f8d6099e4420f0cc2567989032b5f34b271c0827de9f1079a424", + "sha256:63f90b20ca654b3ecc7a8d62c03ffa46999595f0167d6450fa8383bab252987e", + "sha256:68dc568889b1c13f1e4745c96b931cc94fdd0defe92a72c2b8ce01091b22e35f", + "sha256:69ee97c71fee1f63d04c945f56d5d726483c4762845400a6795a3b75d56b6c50", + "sha256:6d6283d8e0631b617edf0fd726353cb76630b83a089a40933043894e7f6721e2", + "sha256:72a660bdd24497e3e84f5519e57a9ee9220b6f3ac4d45056961bf22838ce20cc", + "sha256:73494d5b71099ae8cb8754f1df131c11d433b387efab7b51849e7e1e851f07a4", + "sha256:7356644cbed76119d0b6bd32ffba704d30d747e0c217109d7979a7bc36c4d970", + "sha256:8a9066529240171b68893d60dca86a763eae2139dd42f42106b03cf4b426bf10", + "sha256:8aa3decd5e0e852dc68335abf5478a518b41bf2ab2f330fe44916399efedfae0", + "sha256:97b5bdc450d63c3ba30a127d018b866ea94e65655efaf889ebeabc20f7d12406", + "sha256:9ede61b0854e267fd565e7527e2f2eb3ef8858b301319be0604177690e1a3896", + "sha256:b2e9a456c121e26d13c29251f8267541bd75e6a1ccf9e859179701c36a078643", + "sha256:b5dfc9a40c198334f4f3f55880ecf910adebdcb2a0b9a9c23c9345faa9185721", + "sha256:bafb450deef6861815ed579c7a6113a879a6ef58aed4c3a4be54400ae8871478", + "sha256:c49ff66d479d38ab863c50f7bb27dee97c6627c5fe60697de15529da9c3de724", + "sha256:ce3beb46a72d9f2190f9e1027886bfc513702d748047b548b05dab7dfb584d2e", + "sha256:d26608cf178efb8faa5ff0f2d2e77c208f471c5a3709e577a7b3fd0445703ac8", + "sha256:d597767fcd2c3dc49d6eea360c458b65643d1e4dbed91361cf5e36e53c1f8c96", + "sha256:d5c32c82990e4ac4d8150fd7652b972216b204de4e83a122546dce571c1bdf25", + "sha256:d8d07d102f17b68966e2de0e07bfd6e139c7c02ef06d3a0f8d2f0f055e13bb76", + "sha256:e46fba844f4895b36f4c398c5af062a9808d1f26b2999c58909517384d5deda2", + "sha256:e6b5460dc5ad42ad2b36cca524491dfcaffbfd9c8df50508bddc354e787b8dc2", + "sha256:f040bcc6725c821a4c0665f3aa96a4d0805a7aaf2caf266d256b8ed71b9f041c", + "sha256:f0b059678fd549c66b89bed03efcabb009075bd131c248ecdf087bdb6faba24a", + "sha256:fcbb48a93e8699eae920f8d92f7160c03567b421bc17362a9ffbbd706a816f71" + ], + "markers": "python_version >= '3.6'", + "version": "==1.6.3" + }, + "zipp": { + "hashes": [ + "sha256:957cfda87797e389580cb8b9e3870841ca991e2125350677b2ca83a0e99390a3", + "sha256:f5812b1e007e48cff63449a5e9f4e7ebea716b4111f9c4f9a645f91d579bf0c4" + ], + "markers": "python_version >= '3.6'", + "version": "==3.5.0" + } + } +} diff --git a/.vim/bundle/black/README.md b/.vim/bundle/black/README.md new file mode 100644 index 0000000..7bf0ed8 --- /dev/null +++ b/.vim/bundle/black/README.md @@ -0,0 +1,230 @@ +![Black Logo](https://raw.githubusercontent.com/psf/black/main/docs/_static/logo2-readme.png) + +

The Uncompromising Code Formatter

+ +

+Actions Status +Actions Status +Documentation Status +Coverage Status +License: MIT +PyPI +Downloads +conda-forge +Code style: black +

+ +> “Any color you like.” + +_Black_ is the uncompromising Python code formatter. By using it, you agree to cede +control over minutiae of hand-formatting. In return, _Black_ gives you speed, +determinism, and freedom from `pycodestyle` nagging about formatting. You will save time +and mental energy for more important matters. + +Blackened code looks the same regardless of the project you're reading. Formatting +becomes transparent after a while and you can focus on the content instead. + +_Black_ makes code review faster by producing the smallest diffs possible. + +Try it out now using the [Black Playground](https://black.vercel.app). Watch the +[PyCon 2019 talk](https://youtu.be/esZLCuWs_2Y) to learn more. + +--- + +**[Read the documentation on ReadTheDocs!](https://black.readthedocs.io/en/stable)** + +--- + +## Installation and usage + +### Installation + +_Black_ can be installed by running `pip install black`. It requires Python 3.6.2+ to +run. If you want to format Python 2 code as well, install with +`pip install black[python2]`. If you want to format Jupyter Notebooks, install with +`pip install black[jupyter]`. + +If you can't wait for the latest _hotness_ and want to install from GitHub, use: + +`pip install git+git://github.com/psf/black` + +### Usage + +To get started right away with sensible defaults: + +```sh +black {source_file_or_directory} +``` + +You can run _Black_ as a package if running it as a script doesn't work: + +```sh +python -m black {source_file_or_directory} +``` + +Further information can be found in our docs: + +- [Usage and Configuration](https://black.readthedocs.io/en/stable/usage_and_configuration/index.html) + +### NOTE: This is a beta product + +_Black_ is already [successfully used](https://github.com/psf/black#used-by) by many +projects, small and big. Black has a comprehensive test suite, with efficient parallel +tests, and our own auto formatting and parallel Continuous Integration runner. However, +_Black_ is still beta. Things will probably be wonky for a while. This is made explicit +by the "Beta" trove classifier, as well as by the "b" in the version number. What this +means for you is that **until the formatter becomes stable, you should expect some +formatting to change in the future**. That being said, no drastic stylistic changes are +planned, mostly responses to bug reports. + +Also, as a safety measure which slows down processing, _Black_ will check that the +reformatted code still produces a valid AST that is effectively equivalent to the +original (see the +[Pragmatism](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#ast-before-and-after-formatting) +section for details). If you're feeling confident, use `--fast`. + +## The _Black_ code style + +_Black_ is a PEP 8 compliant opinionated formatter. _Black_ reformats entire files in +place. Style configuration options are deliberately limited and rarely added. It doesn't +take previous formatting into account (see [Pragmatism](#pragmatism) for exceptions). + +Our documentation covers the current _Black_ code style, but planned changes to it are +also documented. They're both worth taking a look: + +- [The _Black_ Code Style: Current style](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html) +- [The _Black_ Code Style: Future style](https://black.readthedocs.io/en/stable/the_black_code_style/future_style.html) + +Please refer to this document before submitting an issue. What seems like a bug might be +intended behaviour. + +### Pragmatism + +Early versions of _Black_ used to be absolutist in some respects. They took after its +initial author. This was fine at the time as it made the implementation simpler and +there were not many users anyway. Not many edge cases were reported. As a mature tool, +_Black_ does make some exceptions to rules it otherwise holds. + +- [The _Black_ code style: Pragmatism](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#pragmatism) + +Please refer to this document before submitting an issue just like with the document +above. What seems like a bug might be intended behaviour. + +## Configuration + +_Black_ is able to read project-specific default values for its command line options +from a `pyproject.toml` file. This is especially useful for specifying custom +`--include` and `--exclude`/`--force-exclude`/`--extend-exclude` patterns for your +project. + +You can find more details in our documentation: + +- [The basics: Configuration via a file](https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-via-a-file) + +And if you're looking for more general configuration documentation: + +- [Usage and Configuration](https://black.readthedocs.io/en/stable/usage_and_configuration/index.html) + +**Pro-tip**: If you're asking yourself "Do I need to configure anything?" the answer is +"No". _Black_ is all about sensible defaults. Applying those defaults will have your +code in compliance with many other _Black_ formatted projects. + +## Used by + +The following notable open-source projects trust _Black_ with enforcing a consistent +code style: pytest, tox, Pyramid, Django Channels, Hypothesis, attrs, SQLAlchemy, +Poetry, PyPA applications (Warehouse, Bandersnatch, Pipenv, virtualenv), pandas, Pillow, +Twisted, LocalStack, every Datadog Agent Integration, Home Assistant, Zulip, Kedro, and +many more. + +The following organizations use _Black_: Facebook, Dropbox, Mozilla, Quora, Duolingo, +QuantumBlack. + +Are we missing anyone? Let us know. + +## Testimonials + +**Mike Bayer**, [author of `SQLAlchemy`](https://www.sqlalchemy.org/): + +> I can't think of any single tool in my entire programming career that has given me a +> bigger productivity increase by its introduction. I can now do refactorings in about +> 1% of the keystrokes that it would have taken me previously when we had no way for +> code to format itself. + +**Dusty Phillips**, +[writer](https://smile.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=dusty+phillips): + +> _Black_ is opinionated so you don't have to be. + +**Hynek Schlawack**, [creator of `attrs`](https://www.attrs.org/), core developer of +Twisted and CPython: + +> An auto-formatter that doesn't suck is all I want for Xmas! + +**Carl Meyer**, [Django](https://www.djangoproject.com/) core developer: + +> At least the name is good. + +**Kenneth Reitz**, creator of [`requests`](http://python-requests.org/) and +[`pipenv`](https://readthedocs.org/projects/pipenv/): + +> This vastly improves the formatting of our code. Thanks a ton! + +## Show your style + +Use the badge in your project's README.md: + +```md +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) +``` + +Using the badge in README.rst: + +``` +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black +``` + +Looks like this: +[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) + +## License + +MIT + +## Contributing + +Welcome! Happy to see you willing to make the project better. You can get started by +reading this: + +- [Contributing: The basics](https://black.readthedocs.io/en/latest/contributing/the_basics.html) + +You can also take a look at the rest of the contributing docs or talk with the +developers: + +- [Contributing documentation](https://black.readthedocs.io/en/latest/contributing/index.html) +- [Chat on Discord](https://discord.gg/RtVdv86PrH) + +## Change log + +The log has become rather long. It moved to its own file. + +See [CHANGES](https://black.readthedocs.io/en/latest/change_log.html). + +## Authors + +The author list is quite long nowadays, so it lives in its own file. + +See [AUTHORS.md](./AUTHORS.md) + +## Code of Conduct + +Everyone participating in the _Black_ project, and in particular in the issue tracker, +pull requests, and social media activity, is expected to treat other people with respect +and more generally to follow the guidelines articulated in the +[Python Community Code of Conduct](https://www.python.org/psf/codeofconduct/). + +At the same time, humor is encouraged. In fact, basic familiarity with Monty Python's +Flying Circus is expected. We are not savages. + +And if you _really_ need to slap somebody, do it with a fish while dancing. diff --git a/.vim/bundle/black/action.yml b/.vim/bundle/black/action.yml new file mode 100644 index 0000000..ddf0793 --- /dev/null +++ b/.vim/bundle/black/action.yml @@ -0,0 +1,59 @@ +name: "Black" +description: "The uncompromising Python code formatter." +author: "Łukasz Langa and contributors to Black" +inputs: + options: + description: + "Options passed to Black. Use `black --help` to see available options. Default: + '--check'" + required: false + default: "--check --diff" + src: + description: "Source to run Black. Default: '.'" + required: false + default: "." + black_args: + description: "[DEPRECATED] Black input arguments." + required: false + default: "" + deprecationMessage: + "Input `with.black_args` is deprecated. Use `with.options` and `with.src` instead." + version: + description: 'Python Version specifier (PEP440) - e.g. "21.5b1"' + required: false + default: "" +branding: + color: "black" + icon: "check-circle" +runs: + using: composite + steps: + - run: | + # Exists since using github.action_path + path to main script doesn't work because bash + # interprets the backslashes in github.action_path (which are used when the runner OS + # is Windows) destroying the path to the target file. + # + # Also semicolons are necessary because I can't get the newlines to work + entrypoint="import sys; + import subprocess; + from pathlib import Path; + + MAIN_SCRIPT = Path(r'${{ github.action_path }}') / 'action' / 'main.py'; + + proc = subprocess.run([sys.executable, str(MAIN_SCRIPT)]); + sys.exit(proc.returncode) + " + + if [ "$RUNNER_OS" == "Windows" ]; then + echo $entrypoint | python + else + echo $entrypoint | python3 + fi + env: + # TODO: Remove once https://github.com/actions/runner/issues/665 is fixed. + INPUT_OPTIONS: ${{ inputs.options }} + INPUT_SRC: ${{ inputs.src }} + INPUT_BLACK_ARGS: ${{ inputs.black_args }} + INPUT_VERSION: ${{ inputs.version }} + pythonioencoding: utf-8 + shell: bash diff --git a/.vim/bundle/black/action/main.py b/.vim/bundle/black/action/main.py new file mode 100644 index 0000000..fde3125 --- /dev/null +++ b/.vim/bundle/black/action/main.py @@ -0,0 +1,39 @@ +import os +import shlex +import sys +from pathlib import Path +from subprocess import run, PIPE, STDOUT + +ACTION_PATH = Path(os.environ["GITHUB_ACTION_PATH"]) +ENV_PATH = ACTION_PATH / ".black-env" +ENV_BIN = ENV_PATH / ("Scripts" if sys.platform == "win32" else "bin") +OPTIONS = os.getenv("INPUT_OPTIONS", default="") +SRC = os.getenv("INPUT_SRC", default="") +BLACK_ARGS = os.getenv("INPUT_BLACK_ARGS", default="") +VERSION = os.getenv("INPUT_VERSION", default="") + +run([sys.executable, "-m", "venv", str(ENV_PATH)], check=True) + +req = "black[colorama,python2]" +if VERSION: + req += f"=={VERSION}" +pip_proc = run( + [str(ENV_BIN / "python"), "-m", "pip", "install", req], + stdout=PIPE, + stderr=STDOUT, + encoding="utf-8", +) +if pip_proc.returncode: + print(pip_proc.stdout) + print("::error::Failed to install Black.", flush=True) + sys.exit(pip_proc.returncode) + + +base_cmd = [str(ENV_BIN / "black")] +if BLACK_ARGS: + # TODO: remove after a while since this is deprecated in favour of SRC + OPTIONS. + proc = run([*base_cmd, *shlex.split(BLACK_ARGS)]) +else: + proc = run([*base_cmd, *shlex.split(OPTIONS), *shlex.split(SRC)]) + +sys.exit(proc.returncode) diff --git a/.vim/bundle/black/autoload/black.vim b/.vim/bundle/black/autoload/black.vim new file mode 100644 index 0000000..9ff5c23 --- /dev/null +++ b/.vim/bundle/black/autoload/black.vim @@ -0,0 +1,216 @@ +python3 << EndPython3 +import collections +import os +import sys +import vim +from distutils.util import strtobool + + +class Flag(collections.namedtuple("FlagBase", "name, cast")): + @property + def var_name(self): + return self.name.replace("-", "_") + + @property + def vim_rc_name(self): + name = self.var_name + if name == "line_length": + name = name.replace("_", "") + return "g:black_" + name + + +FLAGS = [ + Flag(name="line_length", cast=int), + Flag(name="fast", cast=strtobool), + Flag(name="skip_string_normalization", cast=strtobool), + Flag(name="quiet", cast=strtobool), +] + + +def _get_python_binary(exec_prefix): + try: + default = vim.eval("g:pymode_python").strip() + except vim.error: + default = "" + if default and os.path.exists(default): + return default + if sys.platform[:3] == "win": + return exec_prefix / 'python.exe' + return exec_prefix / 'bin' / 'python3' + +def _get_pip(venv_path): + if sys.platform[:3] == "win": + return venv_path / 'Scripts' / 'pip.exe' + return venv_path / 'bin' / 'pip' + +def _get_virtualenv_site_packages(venv_path, pyver): + if sys.platform[:3] == "win": + return venv_path / 'Lib' / 'site-packages' + return venv_path / 'lib' / f'python{pyver[0]}.{pyver[1]}' / 'site-packages' + +def _initialize_black_env(upgrade=False): + pyver = sys.version_info[:3] + if pyver < (3, 6, 2): + print("Sorry, Black requires Python 3.6.2+ to run.") + return False + + from pathlib import Path + import subprocess + import venv + virtualenv_path = Path(vim.eval("g:black_virtualenv")).expanduser() + virtualenv_site_packages = str(_get_virtualenv_site_packages(virtualenv_path, pyver)) + first_install = False + if not virtualenv_path.is_dir(): + print('Please wait, one time setup for Black.') + _executable = sys.executable + _base_executable = getattr(sys, "_base_executable", _executable) + try: + executable = str(_get_python_binary(Path(sys.exec_prefix))) + sys.executable = executable + sys._base_executable = executable + print(f'Creating a virtualenv in {virtualenv_path}...') + print('(this path can be customized in .vimrc by setting g:black_virtualenv)') + venv.create(virtualenv_path, with_pip=True) + except Exception: + print('Encountered exception while creating virtualenv (see traceback below).') + print(f'Removing {virtualenv_path}...') + import shutil + shutil.rmtree(virtualenv_path) + raise + finally: + sys.executable = _executable + sys._base_executable = _base_executable + first_install = True + if first_install: + print('Installing Black with pip...') + if upgrade: + print('Upgrading Black with pip...') + if first_install or upgrade: + subprocess.run([str(_get_pip(virtualenv_path)), 'install', '-U', 'black'], stdout=subprocess.PIPE) + print('DONE! You are all set, thanks for waiting ✨ 🍰 ✨') + if first_install: + print('Pro-tip: to upgrade Black in the future, use the :BlackUpgrade command and restart Vim.\n') + if virtualenv_site_packages not in sys.path: + sys.path.insert(0, virtualenv_site_packages) + return True + +if _initialize_black_env(): + import black + import time + +def get_target_version(tv): + if isinstance(tv, black.TargetVersion): + return tv + ret = None + try: + ret = black.TargetVersion[tv.upper()] + except KeyError: + print(f"WARNING: Target version {tv!r} not recognized by Black, using default target") + return ret + +def Black(**kwargs): + """ + kwargs allows you to override ``target_versions`` argument of + ``black.FileMode``. + + ``target_version`` needs to be cleaned because ``black.FileMode`` + expects the ``target_versions`` argument to be a set of TargetVersion enums. + + Allow kwargs["target_version"] to be a string to allow + to type it more quickly. + + Using also target_version instead of target_versions to remain + consistent to Black's documentation of the structure of pyproject.toml. + """ + start = time.time() + configs = get_configs() + + black_kwargs = {} + if "target_version" in kwargs: + target_version = kwargs["target_version"] + + if not isinstance(target_version, (list, set)): + target_version = [target_version] + target_version = set(filter(lambda x: x, map(lambda tv: get_target_version(tv), target_version))) + black_kwargs["target_versions"] = target_version + + mode = black.FileMode( + line_length=configs["line_length"], + string_normalization=not configs["skip_string_normalization"], + is_pyi=vim.current.buffer.name.endswith('.pyi'), + **black_kwargs, + ) + quiet = configs["quiet"] + + buffer_str = '\n'.join(vim.current.buffer) + '\n' + try: + new_buffer_str = black.format_file_contents( + buffer_str, + fast=configs["fast"], + mode=mode, + ) + except black.NothingChanged: + if not quiet: + print(f'Already well formatted, good job. (took {time.time() - start:.4f}s)') + except Exception as exc: + print(exc) + else: + current_buffer = vim.current.window.buffer + cursors = [] + for i, tabpage in enumerate(vim.tabpages): + if tabpage.valid: + for j, window in enumerate(tabpage.windows): + if window.valid and window.buffer == current_buffer: + cursors.append((i, j, window.cursor)) + vim.current.buffer[:] = new_buffer_str.split('\n')[:-1] + for i, j, cursor in cursors: + window = vim.tabpages[i].windows[j] + try: + window.cursor = cursor + except vim.error: + window.cursor = (len(window.buffer), 0) + if not quiet: + print(f'Reformatted in {time.time() - start:.4f}s.') + +def get_configs(): + filename = vim.eval("@%") + path_pyproject_toml = black.find_pyproject_toml((filename,)) + if path_pyproject_toml: + toml_config = black.parse_pyproject_toml(path_pyproject_toml) + else: + toml_config = {} + + return { + flag.var_name: toml_config.get(flag.name, flag.cast(vim.eval(flag.vim_rc_name))) + for flag in FLAGS + } + + +def BlackUpgrade(): + _initialize_black_env(upgrade=True) + +def BlackVersion(): + print(f'Black, version {black.__version__} on Python {sys.version}.') + +EndPython3 + +function black#Black(...) + let kwargs = {} + for arg in a:000 + let arg_list = split(arg, '=') + let kwargs[arg_list[0]] = arg_list[1] + endfor +python3 << EOF +import vim +kwargs = vim.eval("kwargs") +EOF + :py3 Black(**kwargs) +endfunction + +function black#BlackUpgrade() + :py3 BlackUpgrade() +endfunction + +function black#BlackVersion() + :py3 BlackVersion() +endfunction diff --git a/.vim/bundle/black/docs/Makefile b/.vim/bundle/black/docs/Makefile new file mode 100644 index 0000000..cb0463c --- /dev/null +++ b/.vim/bundle/black/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SPHINXPROJ = black +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/.vim/bundle/black/docs/_static/custom.css b/.vim/bundle/black/docs/_static/custom.css new file mode 100644 index 0000000..eacd69c --- /dev/null +++ b/.vim/bundle/black/docs/_static/custom.css @@ -0,0 +1,44 @@ +/* Make the sidebar scrollable. Fixes https://github.com/psf/black/issues/990 */ +div.sphinxsidebar { + max-height: calc(100% - 18px); + overflow-y: auto; +} + +/* Hide scrollbar for Chrome, Safari and Opera */ +div.sphinxsidebar::-webkit-scrollbar { + display: none; +} + +/* Hide scrollbar for IE 6, 7 and 8 */ +@media \0screen\, screen\9 { + div.sphinxsidebar { + -ms-overflow-style: none; + } +} + +/* Hide scrollbar for IE 9 and 10 */ +/* backslash-9 removes ie11+ & old Safari 4 */ +@media screen and (min-width: 0\0) { + div.sphinxsidebar { + -ms-overflow-style: none\9; + } +} + +/* Hide scrollbar for IE 11 and up */ +_:-ms-fullscreen, +:root div.sphinxsidebar { + -ms-overflow-style: none; +} + +/* Hide scrollbar for Edge */ +@supports (-ms-ime-align: auto) { + div.sphinxsidebar { + -ms-overflow-style: none; + } +} + +/* Nicer style for local document toc */ +.contents.topic { + background: none; + border: none; +} diff --git a/.vim/bundle/black/docs/_static/license.svg b/.vim/bundle/black/docs/_static/license.svg new file mode 100644 index 0000000..25aa18b --- /dev/null +++ b/.vim/bundle/black/docs/_static/license.svg @@ -0,0 +1 @@ +licenselicenseMITMIT diff --git a/.vim/bundle/black/docs/_static/logo2-readme.png b/.vim/bundle/black/docs/_static/logo2-readme.png new file mode 100644 index 0000000..7704ec0 Binary files /dev/null and b/.vim/bundle/black/docs/_static/logo2-readme.png differ diff --git a/.vim/bundle/black/docs/_static/logo2.png b/.vim/bundle/black/docs/_static/logo2.png new file mode 100644 index 0000000..7c06e41 Binary files /dev/null and b/.vim/bundle/black/docs/_static/logo2.png differ diff --git a/.vim/bundle/black/docs/_static/pypi_template.svg b/.vim/bundle/black/docs/_static/pypi_template.svg new file mode 100644 index 0000000..0a0d2e9 --- /dev/null +++ b/.vim/bundle/black/docs/_static/pypi_template.svg @@ -0,0 +1 @@ +pypipypi$version$version diff --git a/.vim/bundle/black/docs/authors.md b/.vim/bundle/black/docs/authors.md new file mode 100644 index 0000000..21b0e1a --- /dev/null +++ b/.vim/bundle/black/docs/authors.md @@ -0,0 +1,3 @@ +```{include} ../AUTHORS.md + +``` diff --git a/.vim/bundle/black/docs/change_log.md b/.vim/bundle/black/docs/change_log.md new file mode 100644 index 0000000..e5f67e7 --- /dev/null +++ b/.vim/bundle/black/docs/change_log.md @@ -0,0 +1,3 @@ +```{include} ../CHANGES.md + +``` diff --git a/.vim/bundle/black/docs/compatible_configs/flake8/.flake8 b/.vim/bundle/black/docs/compatible_configs/flake8/.flake8 new file mode 100644 index 0000000..8dd399a --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/flake8/.flake8 @@ -0,0 +1,3 @@ +[flake8] +max-line-length = 88 +extend-ignore = E203 diff --git a/.vim/bundle/black/docs/compatible_configs/flake8/setup.cfg b/.vim/bundle/black/docs/compatible_configs/flake8/setup.cfg new file mode 100644 index 0000000..8dd399a --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/flake8/setup.cfg @@ -0,0 +1,3 @@ +[flake8] +max-line-length = 88 +extend-ignore = E203 diff --git a/.vim/bundle/black/docs/compatible_configs/flake8/tox.ini b/.vim/bundle/black/docs/compatible_configs/flake8/tox.ini new file mode 100644 index 0000000..8dd399a --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/flake8/tox.ini @@ -0,0 +1,3 @@ +[flake8] +max-line-length = 88 +extend-ignore = E203 diff --git a/.vim/bundle/black/docs/compatible_configs/isort/.editorconfig b/.vim/bundle/black/docs/compatible_configs/isort/.editorconfig new file mode 100644 index 0000000..edc849a --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/isort/.editorconfig @@ -0,0 +1,2 @@ +[*.py] +profile = black diff --git a/.vim/bundle/black/docs/compatible_configs/isort/.isort.cfg b/.vim/bundle/black/docs/compatible_configs/isort/.isort.cfg new file mode 100644 index 0000000..f238bf7 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/isort/.isort.cfg @@ -0,0 +1,2 @@ +[settings] +profile = black diff --git a/.vim/bundle/black/docs/compatible_configs/isort/pyproject.toml b/.vim/bundle/black/docs/compatible_configs/isort/pyproject.toml new file mode 100644 index 0000000..2dc02c8 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/isort/pyproject.toml @@ -0,0 +1,2 @@ +[tool.isort] +profile = 'black' diff --git a/.vim/bundle/black/docs/compatible_configs/isort/setup.cfg b/.vim/bundle/black/docs/compatible_configs/isort/setup.cfg new file mode 100644 index 0000000..c76db01 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/isort/setup.cfg @@ -0,0 +1,2 @@ +[isort] +profile = black diff --git a/.vim/bundle/black/docs/compatible_configs/pylint/pylintrc b/.vim/bundle/black/docs/compatible_configs/pylint/pylintrc new file mode 100644 index 0000000..7abddd2 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/pylint/pylintrc @@ -0,0 +1,5 @@ +[MESSAGES CONTROL] +disable = C0330, C0326 + +[format] +max-line-length = 88 diff --git a/.vim/bundle/black/docs/compatible_configs/pylint/pyproject.toml b/.vim/bundle/black/docs/compatible_configs/pylint/pyproject.toml new file mode 100644 index 0000000..49ad7a2 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/pylint/pyproject.toml @@ -0,0 +1,5 @@ +[tool.pylint.messages_control] +disable = "C0330, C0326" + +[tool.pylint.format] +max-line-length = "88" diff --git a/.vim/bundle/black/docs/compatible_configs/pylint/setup.cfg b/.vim/bundle/black/docs/compatible_configs/pylint/setup.cfg new file mode 100644 index 0000000..3ada245 --- /dev/null +++ b/.vim/bundle/black/docs/compatible_configs/pylint/setup.cfg @@ -0,0 +1,5 @@ +[pylint] +max-line-length = 88 + +[pylint.messages_control] +disable = C0330, C0326 diff --git a/.vim/bundle/black/docs/conf.py b/.vim/bundle/black/docs/conf.py new file mode 100644 index 0000000..55d0fa9 --- /dev/null +++ b/.vim/bundle/black/docs/conf.py @@ -0,0 +1,233 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/stable/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# + +import os +import string +from pathlib import Path + +from pkg_resources import get_distribution + +CURRENT_DIR = Path(__file__).parent + + +def make_pypi_svg(version: str) -> None: + template: Path = CURRENT_DIR / "_static" / "pypi_template.svg" + target: Path = CURRENT_DIR / "_static" / "pypi.svg" + with open(str(template), "r", encoding="utf8") as f: + svg: str = string.Template(f.read()).substitute(version=version) + with open(str(target), "w", encoding="utf8") as f: + f.write(svg) + + +# Necessary so Click doesn't hit an encode error when called by +# sphinxcontrib-programoutput on Windows. +os.putenv("pythonioencoding", "utf-8") + +# -- Project information ----------------------------------------------------- + +project = "Black" +copyright = "2018-Present, Łukasz Langa and contributors to Black" +author = "Łukasz Langa and contributors to Black" + +# Autopopulate version +# The version, including alpha/beta/rc tags, but not commit hash and datestamps +release = get_distribution("black").version.split("+")[0] +# The short X.Y version. +version = release +for sp in "abcfr": + version = version.split(sp)[0] + +make_pypi_svg(release) + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +needs_sphinx = "3.0" + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx.ext.autodoc", + "sphinx.ext.intersphinx", + "sphinx.ext.napoleon", + "myst_parser", + "sphinxcontrib.programoutput", + "sphinx_copybutton", +] + +# If you need extensions of a certain version or higher, list them here. +needs_extensions = {"myst_parser": "0.13.7"} + +# Add any paths that contain templates here, relative to this directory. +templates_path = ["_templates"] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +source_suffix = [".rst", ".md"] + +# The master toctree document. +master_doc = "index" + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path . + +exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = "sphinx" + +# We need headers to be linkable to so ask MyST-Parser to autogenerate anchor IDs for +# headers up to and including level 3. +myst_heading_anchors = 3 + +# Prettier support formatting some MyST syntax but not all, so let's disable the +# unsupported yet still enabled by default ones. +myst_disable_syntax = [ + "myst_block_break", + "myst_line_comment", + "math_block", +] + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = "alabaster" + +html_sidebars = { + "**": [ + "about.html", + "navigation.html", + "relations.html", + "searchbox.html", + ] +} + +html_theme_options = { + "show_related": False, + "description": "“Any color you like.”", + "github_button": True, + "github_user": "psf", + "github_repo": "black", + "github_type": "star", + "show_powered_by": True, + "fixed_sidebar": True, + "logo": "logo2.png", +} + + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ["_static"] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = "blackdoc" + + +# -- Options for LaTeX output ------------------------------------------------ + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + ( + master_doc, + "black.tex", + "Documentation for Black", + "Łukasz Langa and contributors to Black", + "manual", + ) +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [(master_doc, "black", "Documentation for Black", [author], 1)] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + ( + master_doc, + "Black", + "Documentation for Black", + author, + "Black", + "The uncompromising Python code formatter", + "Miscellaneous", + ) +] + + +# -- Options for Epub output ------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project +epub_author = author +epub_publisher = author +epub_copyright = copyright + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ["search.html"] + + +# -- Extension configuration ------------------------------------------------- + +autodoc_member_order = "bysource" + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {"https://docs.python.org/3/": None} diff --git a/.vim/bundle/black/docs/contributing/gauging_changes.md b/.vim/bundle/black/docs/contributing/gauging_changes.md new file mode 100644 index 0000000..b41c7a3 --- /dev/null +++ b/.vim/bundle/black/docs/contributing/gauging_changes.md @@ -0,0 +1,42 @@ +# Gauging changes + +A lot of the time, your change will affect formatting and/or performance. Quantifying +these changes is hard, so we have tooling to help make it easier. + +It's recommended you evaluate the quantifiable changes your _Black_ formatting +modification causes before submitting a PR. Think about if the change seems disruptive +enough to cause frustration to projects that are already "black formatted". + +## black-primer + +`black-primer` is a tool built for CI (and humans) to have _Black_ `--check` a number of +Git accessible projects in parallel. (configured in `primer.json`) _(A PR will be +accepted to add Mercurial support.)_ + +### Run flow + +- Ensure we have a `black` + `git` in PATH +- Load projects from `primer.json` +- Run projects in parallel with `--worker` workers (defaults to CPU count / 2) + - Checkout projects + - Run black and record result + - Clean up repository checkout _(can optionally be disabled via `--keep`)_ +- Display results summary to screen +- Default to cleaning up `--work-dir` (which defaults to tempfile schemantics) +- Return + - 0 for successful run + - \< 0 for environment / internal error + - \> 0 for each project with an error + +### Speed up runs 🏎 + +If you're running locally yourself to test black on lots of code try: + +- Using `-k` / `--keep` + `-w` / `--work-dir` so you don't have to re-checkout the repo + each run + +### CLI arguments + +```{program-output} black-primer --help + +``` diff --git a/.vim/bundle/black/docs/contributing/index.rst b/.vim/bundle/black/docs/contributing/index.rst new file mode 100644 index 0000000..480dbd6 --- /dev/null +++ b/.vim/bundle/black/docs/contributing/index.rst @@ -0,0 +1,43 @@ +Contributing +============ + +.. toctree:: + :hidden: + + the_basics + gauging_changes + issue_triage + release_process + reference/reference_summary + +Welcome! Happy to see you willing to make the project better. Have you read the entire +`user documentation `_ yet? + +.. rubric:: Bird's eye view + +In terms of inspiration, *Black* is about as configurable as *gofmt* (which is to say, +not very). This is deliberate. *Black* aims to provide a consistent style and take away +opportunities for arguing about style. + +Bug reports and fixes are always welcome! Please follow the +`issue template on GitHub `_ for best results. + +Before you suggest a new feature or configuration knob, ask yourself why you want it. If +it enables better integration with some workflow, fixes an inconsistency, speeds things +up, and so on - go for it! On the other hand, if your answer is "because I don't like a +particular formatting" then you're not ready to embrace *Black* yet. Such changes are +unlikely to get accepted. You can still try but prepare to be disappointed. + +.. rubric:: Contents + +This section covers the following topics: + +- :doc:`the_basics` +- :doc:`gauging_changes` +- :doc:`release_process` +- :doc:`reference/reference_summary` + +For an overview on contributing to the *Black*, please checkout :doc:`the_basics`. + +If you need a reference of the functions, classes, etc. available to you while +developing *Black*, there's the :doc:`reference/reference_summary` docs. diff --git a/.vim/bundle/black/docs/contributing/issue_triage.md b/.vim/bundle/black/docs/contributing/issue_triage.md new file mode 100644 index 0000000..9b987fb --- /dev/null +++ b/.vim/bundle/black/docs/contributing/issue_triage.md @@ -0,0 +1,169 @@ +# Issue triage + +Currently, _Black_ uses the issue tracker for bugs, feature requests, proposed design +modifications, and general user support. Each of these issues have to be triaged so they +can be eventually be resolved somehow. This document outlines the triaging process and +also the current guidelines and recommendations. + +```{tip} +If you're looking for a way to contribute without submitting patches, this might be +the area for you. Since _Black_ is a popular project, its issue tracker is quite busy +and always needs more attention than is available. While triage isn't the most +glamorous or technically challenging form of contribution, it's still important. +For example, we would love to know whether that old bug report is still reproducible! + +You can get easily started by reading over this document and then responding to issues. + +If you contribute enough and have stayed for a long enough time, you may even be +given Triage permissions! +``` + +## The basics + +_Black_ gets a whole bunch of different issues, they range from bug reports to user +support issues. To triage is to identify, organize, and kickstart the issue's journey +through its lifecycle to resolution. + +More specifically, to triage an issue means to: + +- identify what type and categories the issue falls under +- confirm bugs +- ask questions / for further information if necessary +- link related issues +- provide the first initial feedback / support + +Note that triage is typically the first response to an issue, so don't fret if the issue +doesn't make much progress after initial triage. The main goal of triaging to prepare +the issue for future more specific development or discussion, so _eventually_ it will be +resolved. + +The lifecycle of a bug report or user support issue typically goes something like this: + +1. _the issue is waiting for triage_ +2. **identified** - has been marked with a type label and other relevant labels, more + details or a functional reproduction may be still needed (and therefore should be + marked with `S: needs repro` or `S: awaiting reponse`) +3. **confirmed** - the issue can reproduced and necessary details have been provided +4. **discussion** - initial triage has been done and now the general details on how the + issue should be best resolved are being hashed out +5. **awaiting fix** - no further discussion on the issue is necessary and a resolving PR + is the next step +6. **closed** - the issue has been resolved, reasons include: + - the issue couldn't be reproduced + - the issue has been fixed + - duplicate of another pre-existing issue or is invalid + +For enhancement, documentation, and design issues, the lifecycle looks very similar but +the details are different: + +1. _the issue is waiting for triage_ +2. **identified** - has been marked with a type label and other relevant labels +3. **discussion** - the merits of the suggested changes are currently being discussed, a + PR would be acceptable but would be at sigificant risk of being rejected +4. **accepted & awaiting PR** - it's been determined the suggested changes are OK and a + PR would be welcomed (`S: accepted`) +5. **closed**: - the issue has been resolved, reasons include: + - the suggested changes were implemented + - it was rejected (due to technical concerns, ethos conflicts, etc.) + - duplicate of a pre-existing issue or is invalid + +**Note**: documentation issues don't use the `S: accepted` label currently since they're +less likely to be rejected. + +## Labelling + +We use labels to organize, track progress, and help effectively divvy up work. + +Our labels are divided up into several groups identified by their prefix: + +- **T - Type**: the general flavor of issue / PR +- **C - Category**: areas of concerns, ranges from bug types to project maintenance +- **F - Formatting Area**: like C but for formatting specifically +- **S - Status**: what stage of resolution is this issue currently in? +- **R - Resolution**: how / why was the issue / PR resolved? + +We also have a few standalone labels: + +- **`good first issue`**: issues that are beginner-friendly (and will show up in GitHub + banners for first-time visitors to the repository) +- **`help wanted`**: complex issues that need and are looking for a fair bit of work as + to progress (will also show up in various GitHub pages) +- **`skip news`**: for PRs that are trivial and don't need a CHANGELOG entry (and skips + the CHANGELOG entry check) + +```{note} +We do use labels for PRs, in particular the `skip news` label, but we aren't that +rigorous about it. Just follow your judgement on what labels make sense for the +specific PR (if any even make sense). +``` + +## Projects + +For more general and broad goals we use projects to track work. Some may be longterm +projects with no true end (e.g. the "Amazing documentation" project) while others may be +more focused and have a definite end (like the "Getting to beta" project). + +```{note} +To modify GitHub Projects you need the [Write repository permission level or higher](https://docs.github.com/en/organizations/managing-access-to-your-organizations-repositories/repository-permission-levels-for-an-organization#repository-access-for-each-permission-level). +``` + +## Closing issues + +Closing an issue signifies the issue has reached the end of its life, so closing issues +should be taken with care. The following is the general recommendation for each type of +issue. Note that these are only guidelines and if your judgement says something else +it's totally cool to go with it instead. + +For most issues, closing the issue manually or automatically after a resolving PR is +ideal. For bug reports specifically, if the bug has already been fixed, try to check in +with the issue opener that their specific case has been resolved before closing. Note +that we close issues as soon as they're fixed in the `main` branch. This doesn't +necessarily mean they've been released yet. + +Design and enhancement issues should be also closed when it's clear the proposed change +won't be implemented, whether that has been determined after a lot of discussion or just +simply goes against _Black_'s ethos. If such an issue turns heated, closing and locking +is acceptable if it's severe enough (although checking in with the core team is probably +a good idea). + +User support issues are best closed by the author or when it's clear the issue has been +resolved in some sort of manner. + +Duplicates and invalid issues should always be closed since they serve no purpose and +add noise to an already busy issue tracker. Although be careful to make sure it's truly +a duplicate and not just very similar before labelling and closing an issue as +duplicate. + +## Common reports + +Some issues are frequently opened, like issues about _Black_ formatted code causing E203 +messages. Even though these issues are probably heavily duplicated, they still require +triage sucking up valuable time from other things (although they usually skip most of +their lifecycle since they're closed on triage). + +Here's some of the most common issues and also pre-made responses you can use: + +### "The trailing comma isn't being removed by Black!" + +```text +Black used to remove the trailing comma if the expression fits in a single line, but this was changed by #826 and #1288. Now a trailing comma tells Black to always explode the expression. This change was made mostly for the cases where you _know_ a collection or whatever will grow in the future. Having it always exploded as one element per line reduces diff noise when adding elements. Before the "magic trailing comma" feature, you couldn't anticipate a collection's growth reliably since collections that fitted in one line were ruthlessly collapsed regardless of your intentions. One of Black's goals is reducing diff noise, so this was a good pragmatic change. + +So no, this is not a bug, but an intended feature. Anyway, [here's the documentation](https://github.com/psf/black/blob/master/docs/the_black_code_style.md#the-magic-trailing-comma) on the "magic trailing comma", including the ability to skip this functionality with the `--skip-magic-trailing-comma` option. Hopefully that helps solve the possible confusion. +``` + +### "Black formatted code is violating Flake8's E203!" + +```text +Hi, + +This is expected behaviour, please see the documentation regarding this case (emphasis +mine): + +> PEP 8 recommends to treat : in slices as a binary operator with the lowest priority, and to leave an equal amount of space on either side, **except if a parameter is omitted (e.g. ham[1 + 1 :])**. It recommends no spaces around : operators for “simple expressions” (ham[lower:upper]), and **extra space for “complex expressions” (ham[lower : upper + offset])**. **Black treats anything more than variable names as “complex” (ham[lower : upper + 1]).** It also states that for extended slices, both : operators have to have the same amount of spacing, except if a parameter is omitted (ham[1 + 1 ::]). Black enforces these rules consistently. + +> This behaviour may raise E203 whitespace before ':' warnings in style guide enforcement tools like Flake8. **Since E203 is not PEP 8 compliant, you should tell Flake8 to ignore these warnings**. + +https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#slices + +Have a good day! +``` diff --git a/.vim/bundle/black/docs/contributing/reference/reference_classes.rst b/.vim/bundle/black/docs/contributing/reference/reference_classes.rst new file mode 100644 index 0000000..fa76596 --- /dev/null +++ b/.vim/bundle/black/docs/contributing/reference/reference_classes.rst @@ -0,0 +1,76 @@ +*Black* classes +=============== + +*Contents are subject to change.* + +.. currentmodule:: black + +:class:`BracketTracker` +----------------------- + +.. autoclass:: black.brackets.BracketTracker + :members: + +:class:`EmptyLineTracker` +------------------------- + +.. autoclass:: black.EmptyLineTracker + :members: + +:class:`Line` +------------- + +.. autoclass:: black.Line + :members: + :special-members: __str__, __bool__ + +:class:`LineGenerator` +---------------------- + +.. autoclass:: black.LineGenerator + :show-inheritance: + :members: + +:class:`ProtoComment` +--------------------- + +.. autoclass:: black.comments.ProtoComment + :members: + +:class:`Report` +--------------- + +.. autoclass:: black.Report + :members: + :special-members: __str__ + +:class:`Visitor` +---------------- + +.. autoclass:: black.nodes.Visitor + :show-inheritance: + :members: + +Enums +===== + +:class:`Changed` +---------------- + +.. autoclass:: black.Changed + :show-inheritance: + :members: + +:class:`Mode` +----------------- + +.. autoclass:: black.Mode + :show-inheritance: + :members: + +:class:`WriteBack` +------------------ + +.. autoclass:: black.WriteBack + :show-inheritance: + :members: diff --git a/.vim/bundle/black/docs/contributing/reference/reference_exceptions.rst b/.vim/bundle/black/docs/contributing/reference/reference_exceptions.rst new file mode 100644 index 0000000..aafe61e --- /dev/null +++ b/.vim/bundle/black/docs/contributing/reference/reference_exceptions.rst @@ -0,0 +1,12 @@ +*Black* exceptions +================== + +*Contents are subject to change.* + +.. currentmodule:: black + +.. autoexception:: black.linegen.CannotSplit + +.. autoexception:: black.NothingChanged + +.. autoexception:: black.InvalidInput diff --git a/.vim/bundle/black/docs/contributing/reference/reference_functions.rst b/.vim/bundle/black/docs/contributing/reference/reference_functions.rst new file mode 100644 index 0000000..4353d1b --- /dev/null +++ b/.vim/bundle/black/docs/contributing/reference/reference_functions.rst @@ -0,0 +1,178 @@ +*Black* functions +================= + +*Contents are subject to change.* + +.. currentmodule:: black + +Assertions and checks +--------------------- + +.. autofunction:: black.assert_equivalent + +.. autofunction:: black.assert_stable + +.. autofunction:: black.lines.can_be_split + +.. autofunction:: black.lines.can_omit_invisible_parens + +.. autofunction:: black.nodes.is_empty_tuple + +.. autofunction:: black.nodes.is_import + +.. autofunction:: black.lines.is_line_short_enough + +.. autofunction:: black.nodes.is_multiline_string + +.. autofunction:: black.nodes.is_one_tuple + +.. autofunction:: black.brackets.is_split_after_delimiter + +.. autofunction:: black.brackets.is_split_before_delimiter + +.. autofunction:: black.nodes.is_stub_body + +.. autofunction:: black.nodes.is_stub_suite + +.. autofunction:: black.nodes.is_vararg + +.. autofunction:: black.nodes.is_yield + + +Formatting +---------- + +.. autofunction:: black.format_file_contents + +.. autofunction:: black.format_file_in_place + +.. autofunction:: black.format_stdin_to_stdout + +.. autofunction:: black.format_str + +.. autofunction:: black.reformat_one + +.. autofunction:: black.schedule_formatting + +File operations +--------------- + +.. autofunction:: black.dump_to_file + +.. autofunction:: black.find_project_root + +.. autofunction:: black.gen_python_files + +.. autofunction:: black.read_pyproject_toml + +Parsing +------- + +.. autofunction:: black.decode_bytes + +.. autofunction:: black.parsing.lib2to3_parse + +.. autofunction:: black.parsing.lib2to3_unparse + +Split functions +--------------- + +.. autofunction:: black.linegen.bracket_split_build_line + +.. autofunction:: black.linegen.bracket_split_succeeded_or_raise + +.. autofunction:: black.linegen.delimiter_split + +.. autofunction:: black.linegen.left_hand_split + +.. autofunction:: black.linegen.right_hand_split + +.. autofunction:: black.linegen.standalone_comment_split + +.. autofunction:: black.linegen.transform_line + +Caching +------- + +.. autofunction:: black.cache.filter_cached + +.. autofunction:: black.cache.get_cache_file + +.. autofunction:: black.cache.get_cache_info + +.. autofunction:: black.cache.read_cache + +.. autofunction:: black.cache.write_cache + +Utilities +--------- + +.. py:function:: black.debug.DebugVisitor.show(code: str) -> None + + Pretty-print the lib2to3 AST of a given string of `code`. + +.. autofunction:: black.concurrency.cancel + +.. autofunction:: black.nodes.child_towards + +.. autofunction:: black.nodes.container_of + +.. autofunction:: black.comments.convert_one_fmt_off_pair + +.. autofunction:: black.diff + +.. autofunction:: black.linegen.dont_increase_indentation + +.. autofunction:: black.numerics.format_float_or_int_string + +.. autofunction:: black.nodes.ensure_visible + +.. autofunction:: black.lines.enumerate_reversed + +.. autofunction:: black.comments.generate_comments + +.. autofunction:: black.comments.generate_ignored_nodes + +.. autofunction:: black.comments.is_fmt_on + +.. autofunction:: black.comments.contains_fmt_on_at_column + +.. autofunction:: black.nodes.first_leaf_column + +.. autofunction:: black.linegen.generate_trailers_to_omit + +.. autofunction:: black.get_future_imports + +.. autofunction:: black.comments.list_comments + +.. autofunction:: black.comments.make_comment + +.. autofunction:: black.linegen.maybe_make_parens_invisible_in_atom + +.. autofunction:: black.brackets.max_delimiter_priority_in_atom + +.. autofunction:: black.normalize_fmt_off + +.. autofunction:: black.numerics.normalize_numeric_literal + +.. autofunction:: black.linegen.normalize_prefix + +.. autofunction:: black.strings.normalize_string_prefix + +.. autofunction:: black.strings.normalize_string_quotes + +.. autofunction:: black.linegen.normalize_invisible_parens + +.. autofunction:: black.patch_click + +.. autofunction:: black.nodes.preceding_leaf + +.. autofunction:: black.re_compile_maybe_verbose + +.. autofunction:: black.linegen.should_split_line + +.. autofunction:: black.shutdown + +.. autofunction:: black.strings.sub_twice + +.. autofunction:: black.nodes.whitespace diff --git a/.vim/bundle/black/docs/contributing/reference/reference_summary.rst b/.vim/bundle/black/docs/contributing/reference/reference_summary.rst new file mode 100644 index 0000000..f6ff468 --- /dev/null +++ b/.vim/bundle/black/docs/contributing/reference/reference_summary.rst @@ -0,0 +1,16 @@ +Developer reference +=================== + +.. note:: + + The documentation here is quite outdated and has been neglected. Many objects worthy + of inclusion aren't documented. Contributions are appreciated! + +*Contents are subject to change.* + +.. toctree:: + :maxdepth: 2 + + reference_classes + reference_functions + reference_exceptions diff --git a/.vim/bundle/black/docs/contributing/release_process.md b/.vim/bundle/black/docs/contributing/release_process.md new file mode 100644 index 0000000..718ea3d --- /dev/null +++ b/.vim/bundle/black/docs/contributing/release_process.md @@ -0,0 +1,89 @@ +# Release process + +_Black_ has had a lot of work automating its release process. This document sets out to +explain what everything does and how to release _Black_ using said automation. + +## Cutting a Release + +To cut a release, you must be a _Black_ maintainer with `GitHub Release` creation +access. Using this access, the release process is: + +1. Cut a new PR editing `CHANGES.md` to version the latest changes + 1. Example PR: https://github.com/psf/black/pull/2192 + 2. Example title: `Update CHANGES.md for XX.X release` +2. Once the release PR is merged ensure all CI passes + 1. If not, ensure there is an Issue open for the cause of failing CI (generally we'd + want this fixed before cutting a release) +3. Open `CHANGES.md` and copy the _raw markdown_ of the latest changes to use in the + description of the GitHub Release. +4. Go and [cut a release](https://github.com/psf/black/releases) using the GitHub UI so + that all workflows noted below are triggered. + 1. The release version and tag should be the [CalVer](https://calver.org) version + _Black_ used for the current release e.g. `21.6` / `21.5b1` + 2. _Black_ uses [setuptools scm](https://pypi.org/project/setuptools-scm/) to pull + the current version for the package builds and release. +5. Once the release is cut, you're basically done. It's a good practice to go and watch + to make sure all the [GitHub Actions](https://github.com/psf/black/actions) pass, + although you should receive an email to your registered GitHub email address should + one fail. + 1. You should see all the release workflows and lint/unittests workflows running on + the new tag in the Actions UI + +If anything fails, please go read the respective action's log output and configuration +file to reverse engineer your way to a fix/soluton. + +## Release workflows + +All _Blacks_'s automation workflows use GitHub Actions. All workflows are therefore +configured using `.yml` files in the `.github/workflows` directory of the _Black_ +repository. + +Below are descriptions of our release workflows. + +### Docker + +This workflow uses the QEMU powered `buildx` feature of docker to upload a `arm64` and +`amd64`/`x86_64` build of the official _Black_ docker image™. + +- Currently this workflow uses an API Token associated with @cooperlees account + +### pypi_upload + +This workflow builds a Python +[sdist](https://docs.python.org/3/distutils/sourcedist.html) and +[wheel](https://pythonwheels.com) using the latest +[setuptools](https://pypi.org/project/setuptools/) and +[wheel](https://pypi.org/project/wheel/) modules. + +It will then use [twine](https://pypi.org/project/twine/) to upload both release formats +to PyPI for general downloading of the _Black_ Python package. This is where +[pip](https://pypi.org/project/pip/) looks by default. + +- Currently this workflow uses an API token associated with @ambv's PyPI account + +### Upload self-contained binaries + +This workflow builds self-contained binaries for multiple platforms. This allows people +to download the executable for their platform and run _Black_ without a +[Python Runtime](https://wiki.python.org/moin/PythonImplementations) installed. + +The created binaries are attached/stored on the associated +[GitHub Release](https://github.com/psf/black/releases) for download over _IPv4 only_ +(GitHub still does not have IPv6 access 😢). + +## Moving the `stable` tag + +_Black_ provides a stable tag for people who want to move along as _Black_ developers +deem the newest version reliable. Here the _Black_ developers will move once the release +has been problem free for at least ~24 hours from release. Given the large _Black_ +userbase we hear about bad bugs quickly. We do strive to continually improve our CI too. + +### Tag moving process + +#### stable + +From a rebased `main` checkout: + +1. `git tag -f stable VERSION_TAG` + 1. e.g. `git tag -f stable 21.5b1` +1. `git push --tags -f` diff --git a/.vim/bundle/black/docs/contributing/the_basics.md b/.vim/bundle/black/docs/contributing/the_basics.md new file mode 100644 index 0000000..d61f3ec --- /dev/null +++ b/.vim/bundle/black/docs/contributing/the_basics.md @@ -0,0 +1,101 @@ +# The basics + +An overview on contributing to the _Black_ project. + +## Technicalities + +Development on the latest version of Python is preferred. As of this writing it's 3.9. +You can use any operating system. + +Install all development dependencies using: + +```console +$ pipenv install --dev +$ pipenv shell +$ pre-commit install +``` + +If you haven't used `pipenv` before but are comfortable with virtualenvs, just run +`pip install pipenv` in the virtualenv you're already using and invoke the command above +from the cloned _Black_ repo. It will do the correct thing. + +Non pipenv install works too: + +```console +$ pip install -r test_requirements.txt +$ pip install -e .[d] +``` + +Before submitting pull requests, run lints and tests with the following commands from +the root of the black repo: + +```console +# Linting +$ pre-commit run -a + +# Unit tests +$ tox -e py + +# Optional Fuzz testing +$ tox -e fuzz + +# Optional CI run to test your changes on many popular python projects +$ black-primer [-k -w /tmp/black_test_repos] +``` + +### News / Changelog Requirement + +`Black` has CI that will check for an entry corresponding to your PR in `CHANGES.md`. If +you feel this PR does not require a changelog entry please state that in a comment and a +maintainer can add a `skip news` label to make the CI pass. Otherwise, please ensure you +have a line in the following format: + +```md +- `Black` is now more awesome (#X) +``` + +Note that X should be your PR number, not issue number! To workout X, please use +[Next PR Number](https://ichard26.github.io/next-pr-number/?owner=psf&name=black). This +is not perfect but saves a lot of release overhead as now the releaser does not need to +go back and workout what to add to the `CHANGES.md` for each release. + +### Style Changes + +If a change would affect the advertised code style, please modify the documentation (The +_Black_ code style) to reflect that change. Patches that fix unintended bugs in +formatting don't need to be mentioned separately though. + +### Docs Testing + +If you make changes to docs, you can test they still build locally too. + +```console +$ pip install -r docs/requirements.txt +$ pip install [-e] .[d] +$ sphinx-build -a -b html -W docs/ docs/_build/ +``` + +## black-primer + +`black-primer` is used by CI to pull down well-known _Black_ formatted projects and see +if we get source code changes. It will error on formatting changes or errors. Please run +before pushing your PR to see if you get the actions you would expect from _Black_ with +your PR. You may need to change +[primer.json](https://github.com/psf/black/blob/main/src/black_primer/primer.json) +configuration for it to pass. + +For more `black-primer` information visit the +[documentation](./gauging_changes.md#black-primer). + +## Hygiene + +If you're fixing a bug, add a test. Run it first to confirm it fails, then fix the bug, +run it again to confirm it's really fixed. + +If adding a new feature, add a test. In fact, always add a test. But wait, before adding +any large feature, first open an issue for us to discuss the idea first. + +## Finally + +Thanks again for your interest in improving the project! You're taking action when most +people decide to sit and watch. diff --git a/.vim/bundle/black/docs/faq.md b/.vim/bundle/black/docs/faq.md new file mode 100644 index 0000000..c361add --- /dev/null +++ b/.vim/bundle/black/docs/faq.md @@ -0,0 +1,84 @@ +# Frequently Asked Questions + +The most common questions and issues users face are aggregated to this FAQ. + +```{contents} +:local: +:backlinks: none +``` + +## Does Black have an API? + +Not yet. _Black_ is fundamentally a command line tool. Many +[integrations](integrations/index.rst) are provided, but a Python interface is not one +of them. A simple API is being [planned](https://github.com/psf/black/issues/779) +though. + +## Is Black safe to use? + +Yes, for the most part. _Black_ is strictly about formatting, nothing else. But because +_Black_ is still in [beta](index.rst), some edges are still a bit rough. To combat +issues, the equivalence of code after formatting is +[checked](the_black_code_style/current_style.md#ast-before-and-after-formatting) with +limited special cases where the code is allowed to differ. If issues are found, an error +is raised and the file is left untouched. Magical comments that influence linters and +other tools, such as `# noqa`, may be moved by _Black_. See below for more details. + +## How stable is Black's style? + +Quite stable. _Black_ aims to enforce one style and one style only, with some room for +pragmatism. However, _Black_ is still in beta so style changes are both planned and +still proposed on the issue tracker. See +[The Black Code Style](the_black_code_style/index.rst) for more details. + +## Why is my file not formatted? + +Most likely because it is ignored in `.gitignore` or excluded with configuration. See +[file collection and discovery](usage_and_configuration/file_collection_and_discovery.md) +for details. + +## Why is my Jupyter Notebook cell not formatted? + +_Black_ is timid about formatting Jupyter Notebooks. Cells containing any of the +following will not be formatted: + +- automagics (e.g. `pip install black`) +- multiline magics, e.g.: + + ```python + %timeit f(1, \ + 2, \ + 3) + ``` + +- code which `IPython`'s `TransformerManager` would transform magics into, e.g.: + + ```python + get_ipython().system('ls') + ``` + +- invalid syntax, as it can't be safely distinguished from automagics in the absence of + a running `IPython` kernel. + +## Why are Flake8's E203 and W503 violated? + +Because they go against PEP 8. E203 falsely triggers on list +[slices](the_black_code_style/current_style.md#slices), and adhering to W503 hinders +readability because operators are misaligned. Disable W503 and enable the +disabled-by-default counterpart W504. E203 should be disabled while changes are still +[discussed](https://github.com/PyCQA/pycodestyle/issues/373). + +## Does Black support Python 2? + +For formatting, yes! [Install](getting_started.md#installation) with the `python2` extra +to format Python 2 files too! There are no current plans to drop support, but most +likely it is bound to happen. Sometime. Eventually. In terms of running _Black_ though, +Python 3.6 or newer is required. + +## Why does my linter or typechecker complain after I format my code? + +Some linters and other tools use magical comments (e.g., `# noqa`, `# type: ignore`) to +influence their behavior. While Black does its best to recognize such comments and leave +them in the right place, this detection is not and cannot be perfect. Therefore, you'll +sometimes have to manually move these comments to the right place after you format your +codebase with _Black_. diff --git a/.vim/bundle/black/docs/getting_started.md b/.vim/bundle/black/docs/getting_started.md new file mode 100644 index 0000000..c79dc60 --- /dev/null +++ b/.vim/bundle/black/docs/getting_started.md @@ -0,0 +1,50 @@ +# Getting Started + +New to _Black_? Don't worry, you've found the perfect place to get started! + +## Do you like the _Black_ code style? + +Before using _Black_ on some of your code, it might be a good idea to first understand +how _Black_ will format your code. _Black_ isn't for everyone and you may find something +that is a dealbreaker for you personally, which is okay! The current _Black_ code style +[is described here](./the_black_code_style/current_style.md). + +## Try it out online + +Also, you can try out _Black_ online for minimal fuss on the +[Black Playground](https://black.vercel.app) generously created by José Padilla. + +## Installation + +_Black_ can be installed by running `pip install black`. It requires Python 3.6.2+ to +run, but can format Python 2 code too. Python 2 support needs the `typed_ast` +dependency, which be installed with `pip install black[python2]`. If you want to format +Jupyter Notebooks, install with `pip install black[jupyter]`. + +If you can't wait for the latest _hotness_ and want to install from GitHub, use: + +`pip install git+git://github.com/psf/black` + +## Basic usage + +To get started right away with sensible defaults: + +```sh +black {source_file_or_directory}... +``` + +You can run _Black_ as a package if running it as a script doesn't work: + +```sh +python -m black {source_file_or_directory}... +``` + +## Next steps + +Took a look at [the _Black_ code style](./the_black_code_style/current_style.md) and +tried out _Black_? Fantastic, you're ready for more. Why not explore some more on using +_Black_ by reading +[Usage and Configuration: The basics](./usage_and_configuration/the_basics.md). +Alternatively, you can check out the +[Introducing _Black_ to your project](./guides/introducing_black_to_your_project.md) +guide. diff --git a/.vim/bundle/black/docs/guides/index.rst b/.vim/bundle/black/docs/guides/index.rst new file mode 100644 index 0000000..717c5c4 --- /dev/null +++ b/.vim/bundle/black/docs/guides/index.rst @@ -0,0 +1,14 @@ +Guides +====== + +.. toctree:: + :hidden: + + introducing_black_to_your_project + using_black_with_other_tools + +Wondering how to do something specific? You've found the right place! Listed below +are topic specific guides available: + +- :doc:`introducing_black_to_your_project` +- :doc:`using_black_with_other_tools` diff --git a/.vim/bundle/black/docs/guides/introducing_black_to_your_project.md b/.vim/bundle/black/docs/guides/introducing_black_to_your_project.md new file mode 100644 index 0000000..71ccf7c --- /dev/null +++ b/.vim/bundle/black/docs/guides/introducing_black_to_your_project.md @@ -0,0 +1,50 @@ +# Introducing _Black_ to your project + +```{note} +This guide is incomplete. Contributions are welcomed and would be deeply +appreciated! +``` + +## Avoiding ruining git blame + +A long-standing argument against moving to automated code formatters like _Black_ is +that the migration will clutter up the output of `git blame`. This was a valid argument, +but since Git version 2.23, Git natively supports +[ignoring revisions in blame](https://git-scm.com/docs/git-blame#Documentation/git-blame.txt---ignore-revltrevgt) +with the `--ignore-rev` option. You can also pass a file listing the revisions to ignore +using the `--ignore-revs-file` option. The changes made by the revision will be ignored +when assigning blame. Lines modified by an ignored revision will be blamed on the +previous revision that modified those lines. + +So when migrating your project's code style to _Black_, reformat everything and commit +the changes (preferably in one massive commit). Then put the full 40 characters commit +identifier(s) into a file. + +```text +# Migrate code style to Black +5b4ab991dede475d393e9d69ec388fd6bd949699 +``` + +Afterwards, you can pass that file to `git blame` and see clean and meaningful blame +information. + +```console +$ git blame important.py --ignore-revs-file .git-blame-ignore-revs +7a1ae265 (John Smith 2019-04-15 15:55:13 -0400 1) def very_important_function(text, file): +abdfd8b0 (Alice Doe 2019-09-23 11:39:32 -0400 2) text = text.lstrip() +7a1ae265 (John Smith 2019-04-15 15:55:13 -0400 3) with open(file, "r+") as f: +7a1ae265 (John Smith 2019-04-15 15:55:13 -0400 4) f.write(formatted) +``` + +You can even configure `git` to automatically ignore revisions listed in a file on every +call to `git blame`. + +```console +$ git config blame.ignoreRevsFile .git-blame-ignore-revs +``` + +**The one caveat is that GitHub and GitLab do not yet support ignoring revisions using +their native UI of blame.** So blame information will be cluttered with a reformatting +commit on those platforms. (If you'd like this feature, there's an open issue for +[GitLab](https://gitlab.com/gitlab-org/gitlab/-/issues/31423) and please let GitHub +know!) diff --git a/.vim/bundle/black/docs/guides/using_black_with_other_tools.md b/.vim/bundle/black/docs/guides/using_black_with_other_tools.md new file mode 100644 index 0000000..0942181 --- /dev/null +++ b/.vim/bundle/black/docs/guides/using_black_with_other_tools.md @@ -0,0 +1,278 @@ +# Using _Black_ with other tools + +## Black compatible configurations + +All of Black's changes are harmless (or at least, they should be), but a few do conflict +against other tools. It is not uncommon to be using other tools alongside _Black_ like +linters and type checkers. Some of them need a bit of tweaking to resolve the conflicts. +Listed below are _Black_ compatible configurations in various formats for the common +tools out there. + +**Please note** that _Black_ only supports the TOML file format for its configuration +(e.g. `pyproject.toml`). The provided examples are to only configure their corresponding +tools, using **their** supported file formats. + +Compatible configuration files can be +[found here](https://github.com/psf/black/blob/main/docs/compatible_configs/). + +### isort + +[isort](https://pypi.org/p/isort/) helps to sort and format imports in your Python code. +_Black_ also formats imports, but in a different way from isort's defaults which leads +to conflicting changes. + +#### Profile + +Since version 5.0.0, isort supports +[profiles](https://pycqa.github.io/isort/docs/configuration/profiles.html) to allow easy +interoperability with common code styles. You can set the black profile in any of the +[config files](https://pycqa.github.io/isort/docs/configuration/config_files.html) +supported by isort. Below, an example for `pyproject.toml`: + +```toml +[tool.isort] +profile = "black" +``` + +#### Custom Configuration + +If you're using an isort version that is older than 5.0.0 or you have some custom +configuration for _Black_, you can tweak your isort configuration to make it compatible +with _Black_. Below, an example for `.isort.cfg`: + +``` +multi_line_output = 3 +include_trailing_comma = True +force_grid_wrap = 0 +use_parentheses = True +ensure_newline_before_comments = True +line_length = 88 +``` + +#### Why those options above? + +_Black_ wraps imports that surpass `line-length` by moving identifiers into their own +indented line. If that still doesn't fit the bill, it will put all of them in separate +lines and put a trailing comma. A more detailed explanation of this behaviour can be +[found here](../the_black_code_style/current_style.md#how-black-wraps-lines). + +isort's default mode of wrapping imports that extend past the `line_length` limit is +"Grid". + +```py3 +from third_party import (lib1, lib2, lib3, + lib4, lib5, ...) +``` + +This style is incompatible with _Black_, but isort can be configured to use a different +wrapping mode called "Vertical Hanging Indent" which looks like this: + +```py3 +from third_party import ( + lib1, + lib2, + lib3, + lib4, +) +``` + +This style is _Black_ compatible and can be achieved by `multi-line-output = 3`. Also, +as mentioned above, when wrapping long imports _Black_ puts a trailing comma and uses +parentheses. isort should follow the same behaviour and passing the options +`include_trailing_comma = True` and `use_parentheses = True` configures that. + +The option `force_grid_wrap = 0` is just to tell isort to only wrap imports that surpass +the `line_length` limit. + +Finally, isort should be told to wrap imports when they surpass _Black_'s default limit +of 88 characters via `line_length = 88` as well as +`ensure_newline_before_comments = True` to ensure spacing import sections with comments +works the same as with _Black_. + +**Please note** `ensure_newline_before_comments = True` only works since isort >= 5 but +does not break older versions so you can keep it if you are running previous versions. + +#### Formats + +
+.isort.cfg + +```cfg +[settings] +profile = black +``` + +
+ +
+setup.cfg + +```cfg +[isort] +profile = black +``` + +
+ +
+pyproject.toml + +```toml +[tool.isort] +profile = 'black' +``` + +
+ +
+.editorconfig + +```ini +[*.py] +profile = black +``` + +
+ +### Flake8 + +[Flake8](https://pypi.org/p/flake8/) is a code linter. It warns you of syntax errors, +possible bugs, stylistic errors, etc. For the most part, Flake8 follows +[PEP 8](https://www.python.org/dev/peps/pep-0008/) when warning about stylistic errors. +There are a few deviations that cause incompatibilities with _Black_. + +#### Configuration + +``` +max-line-length = 88 +extend-ignore = E203 +``` + +#### Why those options above? + +In some cases, as determined by PEP 8, _Black_ will enforce an equal amount of +whitespace around slice operators. Due to this, Flake8 will raise +`E203 whitespace before ':'` warnings. Since this warning is not PEP 8 compliant, Flake8 +should be configured to ignore it via `extend-ignore = E203`. + +When breaking a line, _Black_ will break it before a binary operator. This is compliant +with PEP 8 as of +[April 2016](https://github.com/python/peps/commit/c59c4376ad233a62ca4b3a6060c81368bd21e85b#diff-64ec08cc46db7540f18f2af46037f599). +There's a disabled-by-default warning in Flake8 which goes against this PEP 8 +recommendation called `W503 line break before binary operator`. It should not be enabled +in your configuration. + +Also, as like with isort, flake8 should be configured to allow lines up to the length +limit of `88`, _Black_'s default. This explains `max-line-length = 88`. + +#### Formats + +
+.flake8 + +```ini +[flake8] +max-line-length = 88 +extend-ignore = E203 +``` + +
+ +
+setup.cfg + +```cfg +[flake8] +max-line-length = 88 +extend-ignore = E203 +``` + +
+ +
+tox.ini + +```ini +[flake8] +max-line-length = 88 +extend-ignore = E203 +``` + +
+ +### Pylint + +[Pylint](https://pypi.org/p/pylint/) is also a code linter like Flake8. It has the same +checks as flake8 and more. In particular, it has more formatting checks regarding style +conventions like variable naming. With so many checks, Pylint is bound to have some +mixed feelings about _Black_'s formatting style. + +#### Configuration + +``` +disable = C0330, C0326 +max-line-length = 88 +``` + +#### Why those options above? + +When _Black_ is folding very long expressions, the closing brackets will +[be dedented](../the_black_code_style/current_style.md#how-black-wraps-lines). + +```py3 +ImportantClass.important_method( + exc, limit, lookup_lines, capture_locals, callback +) +``` + +Although this style is PEP 8 compliant, Pylint will raise +`C0330: Wrong hanging indentation before block (add 4 spaces)` warnings. Since _Black_ +isn't configurable on this style, Pylint should be told to ignore these warnings via +`disable = C0330`. + +Also, since _Black_ deals with whitespace around operators and brackets, Pylint's +warning `C0326: Bad whitespace` should be disabled using `disable = C0326`. + +And as usual, Pylint should be configured to only complain about lines that surpass `88` +characters via `max-line-length = 88`. + +#### Formats + +
+pylintrc + +```ini +[MESSAGES CONTROL] +disable = C0330, C0326 + +[format] +max-line-length = 88 +``` + +
+ +
+setup.cfg + +```cfg +[pylint] +max-line-length = 88 + +[pylint.messages_control] +disable = C0330, C0326 +``` + +
+ +
+pyproject.toml + +```toml +[tool.pylint.messages_control] +disable = "C0330, C0326" + +[tool.pylint.format] +max-line-length = "88" +``` + +
diff --git a/.vim/bundle/black/docs/index.rst b/.vim/bundle/black/docs/index.rst new file mode 100644 index 0000000..1515697 --- /dev/null +++ b/.vim/bundle/black/docs/index.rst @@ -0,0 +1,128 @@ +.. black documentation master file, created by + sphinx-quickstart on Fri Mar 23 10:53:30 2018. + +The uncompromising code formatter +================================= + +By using *Black*, you agree to cede control over minutiae of +hand-formatting. In return, *Black* gives you speed, determinism, and +freedom from `pycodestyle` nagging about formatting. You will save time +and mental energy for more important matters. + +*Black* makes code review faster by producing the smallest diffs +possible. Blackened code looks the same regardless of the project +you're reading. Formatting becomes transparent after a while and you +can focus on the content instead. + +Try it out now using the `Black Playground `_. + +.. admonition:: Note - this is a beta product + + *Black* is already `successfully used `_ by + many projects, small and big. *Black* has a comprehensive test suite, with efficient + parallel tests, our own auto formatting and parallel Continuous Integration runner. + However, *Black* is still beta. Things will probably be wonky for a while. This is + made explicit by the "Beta" trove classifier, as well as by the "b" in the version + number. What this means for you is that **until the formatter becomes stable, you + should expect some formatting to change in the future**. That being said, no drastic + stylistic changes are planned, mostly responses to bug reports. + + Also, as a safety measure which slows down processing, *Black* will check that the + reformatted code still produces a valid AST that is effectively equivalent to the + original (see the + `Pragmatism <./the_black_code_style/current_style.html#pragmatism>`_ + section for details). If you're feeling confident, use ``--fast``. + +.. note:: + :doc:`Black is licensed under the MIT license `. + +Testimonials +------------ + +**Mike Bayer**, author of `SQLAlchemy `_: + + *I can't think of any single tool in my entire programming career that has given me a + bigger productivity increase by its introduction. I can now do refactorings in about + 1% of the keystrokes that it would have taken me previously when we had no way for + code to format itself.* + +**Dusty Phillips**, `writer `_: + + *Black is opinionated so you don't have to be.* + +**Hynek Schlawack**, creator of `attrs `_, core +developer of Twisted and CPython: + + *An auto-formatter that doesn't suck is all I want for Xmas!* + +**Carl Meyer**, `Django `_ core developer: + + *At least the name is good.* + +**Kenneth Reitz**, creator of `requests `_ +and `pipenv `_: + + *This vastly improves the formatting of our code. Thanks a ton!* + + +Show your style +--------------- + +Use the badge in your project's README.md: + +.. code-block:: md + + [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) + + +Using the badge in README.rst: + +.. code-block:: rst + + .. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + +Looks like this: + +.. image:: https://img.shields.io/badge/code%20style-black-000000.svg + :target: https://github.com/psf/black + +Contents +-------- + +.. toctree:: + :maxdepth: 3 + :includehidden: + + the_black_code_style/index + +.. toctree:: + :maxdepth: 3 + :includehidden: + + getting_started + usage_and_configuration/index + integrations/index + guides/index + faq + +.. toctree:: + :maxdepth: 3 + :includehidden: + + contributing/index + change_log + authors + +.. toctree:: + :hidden: + + GitHub ↪ + PyPI ↪ + Chat ↪ + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`search` diff --git a/.vim/bundle/black/docs/integrations/editors.md b/.vim/bundle/black/docs/integrations/editors.md new file mode 100644 index 0000000..d3be7c0 --- /dev/null +++ b/.vim/bundle/black/docs/integrations/editors.md @@ -0,0 +1,324 @@ +# Editor integration + +## Emacs + +Options include the following: + +- [wbolster/emacs-python-black](https://github.com/wbolster/emacs-python-black) +- [proofit404/blacken](https://github.com/pythonic-emacs/blacken) +- [Elpy](https://github.com/jorgenschaefer/elpy). + +## PyCharm/IntelliJ IDEA + +1. Install `black`. + + ```console + $ pip install black + ``` + +1. Locate your `black` installation folder. + + On macOS / Linux / BSD: + + ```console + $ which black + /usr/local/bin/black # possible location + ``` + + On Windows: + + ```console + $ where black + %LocalAppData%\Programs\Python\Python36-32\Scripts\black.exe # possible location + ``` + + Note that if you are using a virtual environment detected by PyCharm, this is an + unneeded step. In this case the path to `black` is `$PyInterpreterDirectory$/black`. + +1. Open External tools in PyCharm/IntelliJ IDEA + + On macOS: + + `PyCharm -> Preferences -> Tools -> External Tools` + + On Windows / Linux / BSD: + + `File -> Settings -> Tools -> External Tools` + +1. Click the + icon to add a new external tool with the following values: + + - Name: Black + - Description: Black is the uncompromising Python code formatter. + - Program: \ + - Arguments: `"$FilePath$"` + +1. Format the currently opened file by selecting `Tools -> External Tools -> black`. + + - Alternatively, you can set a keyboard shortcut by navigating to + `Preferences or Settings -> Keymap -> External Tools -> External Tools - Black`. + +1. Optionally, run _Black_ on every file save: + + 1. Make sure you have the + [File Watchers](https://plugins.jetbrains.com/plugin/7177-file-watchers) plugin + installed. + 1. Go to `Preferences or Settings -> Tools -> File Watchers` and click `+` to add a + new watcher: + - Name: Black + - File type: Python + - Scope: Project Files + - Program: \ + - Arguments: `$FilePath$` + - Output paths to refresh: `$FilePath$` + - Working directory: `$ProjectFileDir$` + + - In Advanced Options + - Uncheck "Auto-save edited files to trigger the watcher" + - Uncheck "Trigger the watcher on external changes" + +## Wing IDE + +Wing supports black via the OS Commands tool, as explained in the Wing documentation on +[pep8 formatting](https://wingware.com/doc/edit/pep8). The detailed procedure is: + +1. Install `black`. + + ```console + $ pip install black + ``` + +1. Make sure it runs from the command line, e.g. + + ```console + $ black --help + ``` + +1. In Wing IDE, activate the **OS Commands** panel and define the command **black** to + execute black on the currently selected file: + + - Use the Tools -> OS Commands menu selection + - click on **+** in **OS Commands** -> New: Command line.. + - Title: black + - Command Line: black %s + - I/O Encoding: Use Default + - Key Binding: F1 + - [x] Raise OS Commands when executed + - [x] Auto-save files before execution + - [x] Line mode + +1. Select a file in the editor and press **F1** , or whatever key binding you selected + in step 3, to reformat the file. + +## Vim + +### Official plugin + +Commands and shortcuts: + +- `:Black` to format the entire file (ranges not supported); + - you can optionally pass `target_version=` with the same values as in the + command line. +- `:BlackUpgrade` to upgrade _Black_ inside the virtualenv; +- `:BlackVersion` to get the current version of _Black_ inside the virtualenv. + +Configuration: + +- `g:black_fast` (defaults to `0`) +- `g:black_linelength` (defaults to `88`) +- `g:black_skip_string_normalization` (defaults to `0`) +- `g:black_virtualenv` (defaults to `~/.vim/black` or `~/.local/share/nvim/black`) +- `g:black_quiet` (defaults to `0`) + +To install with [vim-plug](https://github.com/junegunn/vim-plug): + +``` +Plug 'psf/black', { 'branch': 'stable' } +``` + +or with [Vundle](https://github.com/VundleVim/Vundle.vim): + +``` +Plugin 'psf/black' +``` + +and execute the following in a terminal: + +```console +$ cd ~/.vim/bundle/black +$ git checkout origin/stable -b stable +``` + +or you can copy the plugin files from +[plugin/black.vim](https://github.com/psf/black/blob/stable/plugin/black.vim) and +[autoload/black.vim](https://github.com/psf/black/blob/stable/autoload/black.vim). + +``` +mkdir -p ~/.vim/pack/python/start/black/plugin +mkdir -p ~/.vim/pack/python/start/black/autoload +curl https://raw.githubusercontent.com/psf/black/stable/plugin/black.vim -o ~/.vim/pack/python/start/black/plugin/black.vim +curl https://raw.githubusercontent.com/psf/black/stable/autoload/black.vim -o ~/.vim/pack/python/start/black/autoload/black.vim +``` + +Let me know if this requires any changes to work with Vim 8's builtin `packadd`, or +Pathogen, and so on. + +This plugin **requires Vim 7.0+ built with Python 3.6+ support**. It needs Python 3.6 to +be able to run _Black_ inside the Vim process which is much faster than calling an +external command. + +On first run, the plugin creates its own virtualenv using the right Python version and +automatically installs _Black_. You can upgrade it later by calling `:BlackUpgrade` and +restarting Vim. + +If you need to do anything special to make your virtualenv work and install _Black_ (for +example you want to run a version from main), create a virtualenv manually and point +`g:black_virtualenv` to it. The plugin will use it. + +To run _Black_ on save, add the following line to `.vimrc` or `init.vim`: + +``` +autocmd BufWritePre *.py execute ':Black' +``` + +To run _Black_ on a key press (e.g. F9 below), add this: + +``` +nnoremap :Black +``` + +**How to get Vim with Python 3.6?** On Ubuntu 17.10 Vim comes with Python 3.6 by +default. On macOS with Homebrew run: `brew install vim`. When building Vim from source, +use: `./configure --enable-python3interp=yes`. There's many guides online how to do +this. + +**I get an import error when using _Black_ from a virtual environment**: If you get an +error message like this: + +```text +Traceback (most recent call last): + File "", line 63, in + File "/home/gui/.vim/black/lib/python3.7/site-packages/black.py", line 45, in + from typed_ast import ast3, ast27 + File "/home/gui/.vim/black/lib/python3.7/site-packages/typed_ast/ast3.py", line 40, in + from typed_ast import _ast3 +ImportError: /home/gui/.vim/black/lib/python3.7/site-packages/typed_ast/_ast3.cpython-37m-x86_64-linux-gnu.so: undefined symbool: PyExc_KeyboardInterrupt +``` + +Then you need to install `typed_ast` and `regex` directly from the source code. The +error happens because `pip` will download [Python wheels](https://pythonwheels.com/) if +they are available. Python wheels are a new standard of distributing Python packages and +packages that have Cython and extensions written in C are already compiled, so the +installation is much more faster. The problem here is that somehow the Python +environment inside Vim does not match with those already compiled C extensions and these +kind of errors are the result. Luckily there is an easy fix: installing the packages +from the source code. + +The two packages that cause the problem are: + +- [regex](https://pypi.org/project/regex/) +- [typed-ast](https://pypi.org/project/typed-ast/) + +Now remove those two packages: + +```console +$ pip uninstall regex typed-ast -y +``` + +And now you can install them with: + +```console +$ pip install --no-binary :all: regex typed-ast +``` + +The C extensions will be compiled and now Vim's Python environment will match. Note that +you need to have the GCC compiler and the Python development files installed (on +Ubuntu/Debian do `sudo apt-get install build-essential python3-dev`). + +If you later want to update _Black_, you should do it like this: + +```console +$ pip install -U black --no-binary regex,typed-ast +``` + +### With ALE + +1. Install [`ale`](https://github.com/dense-analysis/ale) + +1. Install `black` + +1. Add this to your vimrc: + + ```vim + let g:ale_fixers = {} + let g:ale_fixers.python = ['black'] + ``` + +## Gedit + +gedit is the default text editor of the GNOME, Unix like Operating Systems. Open gedit +as + +```console +$ gedit +``` + +1. `Go to edit > preferences > plugins` +1. Search for `external tools` and activate it. +1. In `Tools menu -> Manage external tools` +1. Add a new tool using `+` button. +1. Copy the below content to the code window. + +```console +#!/bin/bash +Name=$GEDIT_CURRENT_DOCUMENT_NAME +black $Name +``` + +- Set a keyboard shortcut if you like, Ex. `ctrl-B` +- Save: `Nothing` +- Input: `Nothing` +- Output: `Display in bottom pane` if you like. +- Change the name of the tool if you like. + +Use your keyboard shortcut or `Tools -> External Tools` to use your new tool. When you +close and reopen your File, _Black_ will be done with its job. + +## Visual Studio Code + +Use the +[Python extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) +([instructions](https://code.visualstudio.com/docs/python/editing#_formatting)). + +## SublimeText 3 + +Use [sublack plugin](https://github.com/jgirardet/sublack). + +## Python LSP Server + +If your editor supports the [Language Server Protocol](https://langserver.org/) (Atom, +Sublime Text, Visual Studio Code and many more), you can use the +[Python LSP Server](https://github.com/python-lsp/python-lsp-server) with the +[python-lsp-black](https://github.com/python-lsp/python-lsp-black) plugin. + +## Atom/Nuclide + +Use [python-black](https://atom.io/packages/python-black) or +[formatters-python](https://atom.io/packages/formatters-python). + +## Gradle (the build tool) + +Use the [Spotless](https://github.com/diffplug/spotless/tree/main/plugin-gradle) plugin. + +## Kakoune + +Add the following hook to your kakrc, then run _Black_ with `:format`. + +``` +hook global WinSetOption filetype=python %{ + set-option window formatcmd 'black -q -' +} +``` + +## Thonny + +Use [Thonny-black-code-format](https://github.com/Franccisco/thonny-black-code-format). diff --git a/.vim/bundle/black/docs/integrations/github_actions.md b/.vim/bundle/black/docs/integrations/github_actions.md new file mode 100644 index 0000000..e866a3c --- /dev/null +++ b/.vim/bundle/black/docs/integrations/github_actions.md @@ -0,0 +1,50 @@ +# GitHub Actions integration + +You can use _Black_ within a GitHub Actions workflow without setting your own Python +environment. Great for enforcing that your code matches the _Black_ code style. + +## Compatibility + +This action is known to support all GitHub-hosted runner OSes. In addition, only +published versions of _Black_ are supported (i.e. whatever is available on PyPI). + +Finally, this action installs _Black_ with both the `colorama` and `python2` extras so +the `--color` flag and formatting Python 2 code are supported. + +## Usage + +Create a file named `.github/workflows/black.yml` inside your repository with: + +```yaml +name: Lint + +on: [push, pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: psf/black@stable +``` + +We recommend the use of the `@stable` tag, but per version tags also exist if you prefer +that. Note that the action's version you select is independent of the version of _Black_ +the action will use. + +The version of _Black_ the action will use can be configured via `version`. The action +defaults to the latest release available on PyPI. Only versions available from PyPI are +supported, so no commit SHAs or branch names. + +You can also configure the arguments passed to _Black_ via `options` (defaults to +`'--check --diff'`) and `src` (default is `'.'`) + +Here's an example configuration: + +```yaml +- uses: psf/black@stable + with: + options: "--check --verbose" + src: "./src" + version: "21.5b1" +``` diff --git a/.vim/bundle/black/docs/integrations/index.rst b/.vim/bundle/black/docs/integrations/index.rst new file mode 100644 index 0000000..ed62ebc --- /dev/null +++ b/.vim/bundle/black/docs/integrations/index.rst @@ -0,0 +1,28 @@ +Integrations +============ + +.. toctree:: + :hidden: + + editors + github_actions + source_version_control + +*Black* can be integrated into many environments, providing a better and smoother experience. Documentation for integrating *Black* with a tool can be found for the +following areas: + +- :doc:`Editor / IDE <./editors>` +- :doc:`GitHub Actions <./github_actions>` +- :doc:`Source version control <./source_version_control>` + +Editors and tools not listed will require external contributions. + +Patches welcome! ✨ 🍰 ✨ + +Any tool can pipe code through *Black* using its stdio mode (just +`use \`-\` as the file name `_). +The formatted code will be returned on stdout (unless ``--check`` was passed). *Black* +will still emit messages on stderr but that shouldn't affect your use case. + +This can be used for example with PyCharm's or IntelliJ's +`File Watchers `_. diff --git a/.vim/bundle/black/docs/integrations/source_version_control.md b/.vim/bundle/black/docs/integrations/source_version_control.md new file mode 100644 index 0000000..6a1aa36 --- /dev/null +++ b/.vim/bundle/black/docs/integrations/source_version_control.md @@ -0,0 +1,31 @@ +# Version control integration + +Use [pre-commit](https://pre-commit.com/). Once you +[have it installed](https://pre-commit.com/#install), add this to the +`.pre-commit-config.yaml` in your repository: + +```yaml +repos: + - repo: https://github.com/psf/black + rev: 21.9b0 + hooks: + - id: black + # It is recommended to specify the latest version of Python + # supported by your project here, or alternatively use + # pre-commit's default_language_version, see + # https://pre-commit.com/#top_level-default_language_version + language_version: python3.9 +``` + +Feel free to switch out the `rev` value to something else, like another +[tag/version][black-tags] or even a specific commit. Although we discourage the use of +branches or other mutable refs since the hook [won't auto update as you may +expect][pre-commit-mutable-rev]. + +If you want support for Jupyter Notebooks as well, then replace `id: black` with +`id: black-jupyter` (though note that it's only available from version `21.8b0` +onwards). + +[black-tags]: https://github.com/psf/black/tags +[pre-commit-mutable-rev]: + https://pre-commit.com/#using-the-latest-version-for-a-repository diff --git a/.vim/bundle/black/docs/license.rst b/.vim/bundle/black/docs/license.rst new file mode 100644 index 0000000..2dc20a2 --- /dev/null +++ b/.vim/bundle/black/docs/license.rst @@ -0,0 +1,6 @@ +:orphan: + +License +======= + +.. include:: ../LICENSE diff --git a/.vim/bundle/black/docs/make.bat b/.vim/bundle/black/docs/make.bat new file mode 100644 index 0000000..eecd650 --- /dev/null +++ b/.vim/bundle/black/docs/make.bat @@ -0,0 +1,36 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build +set SPHINXPROJ=black + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/.vim/bundle/black/docs/requirements.txt b/.vim/bundle/black/docs/requirements.txt new file mode 100644 index 0000000..4c5b700 --- /dev/null +++ b/.vim/bundle/black/docs/requirements.txt @@ -0,0 +1,6 @@ +# Used by ReadTheDocs; pinned requirements for stability. + +myst-parser==0.15.1 +Sphinx==4.1.2 +sphinxcontrib-programoutput==0.17 +sphinx_copybutton==0.4.0 diff --git a/.vim/bundle/black/docs/the_black_code_style/current_style.md b/.vim/bundle/black/docs/the_black_code_style/current_style.md new file mode 100644 index 0000000..b9ab350 --- /dev/null +++ b/.vim/bundle/black/docs/the_black_code_style/current_style.md @@ -0,0 +1,468 @@ +# The _Black_ code style + +## Code style + +_Black_ reformats entire files in place. Style configuration options are deliberately +limited and rarely added. It doesn't take previous formatting into account, except for +the magic trailing comma and preserving newlines. It doesn't reformat blocks that start +with `# fmt: off` and end with `# fmt: on`, or lines that ends with `# fmt: skip`. +`# fmt: on/off` have to be on the same level of indentation. It also recognizes +[YAPF](https://github.com/google/yapf)'s block comments to the same effect, as a +courtesy for straddling code. + +### How _Black_ wraps lines + +_Black_ ignores previous formatting and applies uniform horizontal and vertical +whitespace to your code. The rules for horizontal whitespace can be summarized as: do +whatever makes `pycodestyle` happy. The coding style used by _Black_ can be viewed as a +strict subset of PEP 8. + +As for vertical whitespace, _Black_ tries to render one full expression or simple +statement per line. If this fits the allotted line length, great. + +```py3 +# in: + +j = [1, + 2, + 3 +] + +# out: + +j = [1, 2, 3] +``` + +If not, _Black_ will look at the contents of the first outer matching brackets and put +that in a separate indented line. + +```py3 +# in: + +ImportantClass.important_method(exc, limit, lookup_lines, capture_locals, extra_argument) + +# out: + +ImportantClass.important_method( + exc, limit, lookup_lines, capture_locals, extra_argument +) +``` + +If that still doesn't fit the bill, it will decompose the internal expression further +using the same rule, indenting matching brackets every time. If the contents of the +matching brackets pair are comma-separated (like an argument list, or a dict literal, +and so on) then _Black_ will first try to keep them on the same line with the matching +brackets. If that doesn't work, it will put all of them in separate lines. + +```py3 +# in: + +def very_important_function(template: str, *variables, file: os.PathLike, engine: str, header: bool = True, debug: bool = False): + """Applies `variables` to the `template` and writes to `file`.""" + with open(file, 'w') as f: + ... + +# out: + +def very_important_function( + template: str, + *variables, + file: os.PathLike, + engine: str, + header: bool = True, + debug: bool = False, +): + """Applies `variables` to the `template` and writes to `file`.""" + with open(file, "w") as f: + ... +``` + +(labels/why-no-backslashes)= + +_Black_ prefers parentheses over backslashes, and will remove backslashes if found. + +```py3 +# in: + +if some_short_rule1 \ + and some_short_rule2: + ... + +# out: + +if some_short_rule1 and some_short_rule2: + ... + + +# in: + +if some_long_rule1 \ + and some_long_rule2: + ... + +# out: + +if ( + some_long_rule1 + and some_long_rule2 +): + ... + +``` + +Backslashes and multiline strings are one of the two places in the Python grammar that +break significant indentation. You never need backslashes, they are used to force the +grammar to accept breaks that would otherwise be parse errors. That makes them confusing +to look at and brittle to modify. This is why _Black_ always gets rid of them. + +If you're reaching for backslashes, that's a clear signal that you can do better if you +slightly refactor your code. I hope some of the examples above show you that there are +many ways in which you can do it. + +You might have noticed that closing brackets are always dedented and that a trailing +comma is always added. Such formatting produces smaller diffs; when you add or remove an +element, it's always just one line. Also, having the closing bracket dedented provides a +clear delimiter between two distinct sections of the code that otherwise share the same +indentation level (like the arguments list and the docstring in the example above). + +If a data structure literal (tuple, list, set, dict) or a line of "from" imports cannot +fit in the allotted length, it's always split into one element per line. This minimizes +diffs as well as enables readers of code to find which commit introduced a particular +entry. This also makes _Black_ compatible with +[isort](../guides/using_black_with_other_tools.md#isort) with the ready-made `black` +profile or manual configuration. + +### Line length + +You probably noticed the peculiar default line length. _Black_ defaults to 88 characters +per line, which happens to be 10% over 80. This number was found to produce +significantly shorter files than sticking with 80 (the most popular), or even 79 (used +by the standard library). In general, +[90-ish seems like the wise choice](https://youtu.be/wf-BqAjZb8M?t=260). + +If you're paid by the line of code you write, you can pass `--line-length` with a lower +number. _Black_ will try to respect that. However, sometimes it won't be able to without +breaking other rules. In those rare cases, auto-formatted code will exceed your allotted +limit. + +You can also increase it, but remember that people with sight disabilities find it +harder to work with line lengths exceeding 100 characters. It also adversely affects +side-by-side diff review on typical screen resolutions. Long lines also make it harder +to present code neatly in documentation or talk slides. + +If you're using Flake8, you can bump `max-line-length` to 88 and mostly forget about it. +However, it's better if you use [Bugbear](https://github.com/PyCQA/flake8-bugbear)'s +B950 warning instead of E501, and bump the max line length to 88 (or the `--line-length` +you used for black), which will align more with black's _"try to respect +`--line-length`, but don't become crazy if you can't"_. You'd do it like this: + +```ini +[flake8] +max-line-length = 88 +... +select = C,E,F,W,B,B950 +extend-ignore = E203, E501 +``` + +Explanation of why E203 is disabled can be found further in this documentation. And if +you're curious about the reasoning behind B950, +[Bugbear's documentation](https://github.com/PyCQA/flake8-bugbear#opinionated-warnings) +explains it. The tl;dr is "it's like highway speed limits, we won't bother you if you +overdo it by a few km/h". + +**If you're looking for a minimal, black-compatible flake8 configuration:** + +```ini +[flake8] +max-line-length = 88 +extend-ignore = E203 +``` + +### Empty lines + +_Black_ avoids spurious vertical whitespace. This is in the spirit of PEP 8 which says +that in-function vertical whitespace should only be used sparingly. + +_Black_ will allow single empty lines inside functions, and single and double empty +lines on module level left by the original editors, except when they're within +parenthesized expressions. Since such expressions are always reformatted to fit minimal +space, this whitespace is lost. + +It will also insert proper spacing before and after function definitions. It's one line +before and after inner functions and two lines before and after module-level functions +and classes. _Black_ will not put empty lines between function/class definitions and +standalone comments that immediately precede the given function/class. + +_Black_ will enforce single empty lines between a class-level docstring and the first +following field or method. This conforms to +[PEP 257](https://www.python.org/dev/peps/pep-0257/#multi-line-docstrings). + +_Black_ won't insert empty lines after function docstrings unless that empty line is +required due to an inner function starting immediately after. + +### Comments + +_Black_ does not format comment contents, but it enforces two spaces between code and a +comment on the same line, and a space before the comment text begins. Some types of +comments that require specific spacing rules are respected: doc comments (`#: comment`), +section comments with long runs of hashes, and Spyder cells. Non-breaking spaces after +hashes are also preserved. Comments may sometimes be moved because of formatting +changes, which can break tools that assign special meaning to them. See +[AST before and after formatting](#ast-before-and-after-formatting) for more discussion. + +### Trailing commas + +_Black_ will add trailing commas to expressions that are split by comma where each +element is on its own line. This includes function signatures. + +One exception to adding trailing commas is function signatures containing `*`, `*args`, +or `**kwargs`. In this case a trailing comma is only safe to use on Python 3.6. _Black_ +will detect if your file is already 3.6+ only and use trailing commas in this situation. +If you wonder how it knows, it looks for f-strings and existing use of trailing commas +in function signatures that have stars in them. In other words, if you'd like a trailing +comma in this situation and _Black_ didn't recognize it was safe to do so, put it there +manually and _Black_ will keep it. + +A pre-existing trailing comma informs _Black_ to always explode contents of the current +bracket pair into one item per line. Read more about this in the +[Pragmatism](#pragmatism) section below. + +### Strings + +_Black_ prefers double quotes (`"` and `"""`) over single quotes (`'` and `'''`). It +will replace the latter with the former as long as it does not result in more backslash +escapes than before. + +_Black_ also standardizes string prefixes, making them always lowercase. On top of that, +if your code is already Python 3.6+ only or it's using the `unicode_literals` future +import, _Black_ will remove `u` from the string prefix as it is meaningless in those +scenarios. + +The main reason to standardize on a single form of quotes is aesthetics. Having one kind +of quotes everywhere reduces reader distraction. It will also enable a future version of +_Black_ to merge consecutive string literals that ended up on the same line (see +[#26](https://github.com/psf/black/issues/26) for details). + +Why settle on double quotes? They anticipate apostrophes in English text. They match the +docstring standard described in +[PEP 257](https://www.python.org/dev/peps/pep-0257/#what-is-a-docstring). An empty +string in double quotes (`""`) is impossible to confuse with a one double-quote +regardless of fonts and syntax highlighting used. On top of this, double quotes for +strings are consistent with C which Python interacts a lot with. + +On certain keyboard layouts like US English, typing single quotes is a bit easier than +double quotes. The latter requires use of the Shift key. My recommendation here is to +keep using whatever is faster to type and let _Black_ handle the transformation. + +If you are adopting _Black_ in a large project with pre-existing string conventions +(like the popular +["single quotes for data, double quotes for human-readable strings"](https://stackoverflow.com/a/56190)), +you can pass `--skip-string-normalization` on the command line. This is meant as an +adoption helper, avoid using this for new projects. + +(labels/experimental-string)= + +As an experimental option (can be enabled by `--experimental-string-processing`), +_Black_ splits long strings (using parentheses where appropriate) and merges short ones. +When split, parts of f-strings that don't need formatting are converted to plain +strings. User-made splits are respected when they do not exceed the line length limit. +Line continuation backslashes are converted into parenthesized strings. Unnecessary +parentheses are stripped. Because the functionality is experimental, feedback and issue +reports are highly encouraged! + +_Black_ also processes docstrings. Firstly the indentation of docstrings is corrected +for both quotations and the text within, although relative indentation in the text is +preserved. Superfluous trailing whitespace on each line and unnecessary new lines at the +end of the docstring are removed. All leading tabs are converted to spaces, but tabs +inside text are preserved. Whitespace leading and trailing one-line docstrings is +removed. + +### Numeric literals + +_Black_ standardizes most numeric literals to use lowercase letters for the syntactic +parts and uppercase letters for the digits themselves: `0xAB` instead of `0XAB` and +`1e10` instead of `1E10`. Python 2 long literals are styled as `2L` instead of `2l` to +avoid confusion between `l` and `1`. + +### Line breaks & binary operators + +_Black_ will break a line before a binary operator when splitting a block of code over +multiple lines. This is so that _Black_ is compliant with the recent changes in the +[PEP 8](https://www.python.org/dev/peps/pep-0008/#should-a-line-break-before-or-after-a-binary-operator) +style guide, which emphasizes that this approach improves readability. + +### Slices + +PEP 8 +[recommends](https://www.python.org/dev/peps/pep-0008/#whitespace-in-expressions-and-statements) +to treat `:` in slices as a binary operator with the lowest priority, and to leave an +equal amount of space on either side, except if a parameter is omitted (e.g. +`ham[1 + 1 :]`). It recommends no spaces around `:` operators for "simple expressions" +(`ham[lower:upper]`), and extra space for "complex expressions" +(`ham[lower : upper + offset]`). _Black_ treats anything more than variable names as +"complex" (`ham[lower : upper + 1]`). It also states that for extended slices, both `:` +operators have to have the same amount of spacing, except if a parameter is omitted +(`ham[1 + 1 ::]`). _Black_ enforces these rules consistently. + +This behaviour may raise `E203 whitespace before ':'` warnings in style guide +enforcement tools like Flake8. Since `E203` is not PEP 8 compliant, you should tell +Flake8 to ignore these warnings. + +### Parentheses + +Some parentheses are optional in the Python grammar. Any expression can be wrapped in a +pair of parentheses to form an atom. There are a few interesting cases: + +- `if (...):` +- `while (...):` +- `for (...) in (...):` +- `assert (...), (...)` +- `from X import (...)` +- assignments like: + - `target = (...)` + - `target: type = (...)` + - `some, *un, packing = (...)` + - `augmented += (...)` + +In those cases, parentheses are removed when the entire statement fits in one line, or +if the inner expression doesn't have any delimiters to further split on. If there is +only a single delimiter and the expression starts or ends with a bracket, the +parentheses can also be successfully omitted since the existing bracket pair will +organize the expression neatly anyway. Otherwise, the parentheses are added. + +Please note that _Black_ does not add or remove any additional nested parentheses that +you might want to have for clarity or further code organization. For example those +parentheses are not going to be removed: + +```py3 +return not (this or that) +decision = (maybe.this() and values > 0) or (maybe.that() and values < 0) +``` + +### Call chains + +Some popular APIs, like ORMs, use call chaining. This API style is known as a +[fluent interface](https://en.wikipedia.org/wiki/Fluent_interface). _Black_ formats +those by treating dots that follow a call or an indexing operation like a very low +priority delimiter. It's easier to show the behavior than to explain it. Look at the +example: + +```py3 +def example(session): + result = ( + session.query(models.Customer.id) + .filter( + models.Customer.account_id == account_id, + models.Customer.email == email_address, + ) + .order_by(models.Customer.id.asc()) + .all() + ) +``` + +### Typing stub files + +PEP 484 describes the syntax for type hints in Python. One of the use cases for typing +is providing type annotations for modules which cannot contain them directly (they might +be written in C, or they might be third-party, or their implementation may be overly +dynamic, and so on). + +To solve this, +[stub files with the `.pyi` file extension](https://www.python.org/dev/peps/pep-0484/#stub-files) +can be used to describe typing information for an external module. Those stub files omit +the implementation of classes and functions they describe, instead they only contain the +structure of the file (listing globals, functions, and classes with their members). The +recommended code style for those files is more terse than PEP 8: + +- prefer `...` on the same line as the class/function signature; +- avoid vertical whitespace between consecutive module-level functions, names, or + methods and fields within a single class; +- use a single blank line between top-level class definitions, or none if the classes + are very small. + +_Black_ enforces the above rules. There are additional guidelines for formatting `.pyi` +file that are not enforced yet but might be in a future version of the formatter: + +- all function bodies should be empty (contain `...` instead of the body); +- do not use docstrings; +- prefer `...` over `pass`; +- for arguments with a default, use `...` instead of the actual default; +- avoid using string literals in type annotations, stub files support forward references + natively (like Python 3.7 code with `from __future__ import annotations`); +- use variable annotations instead of type comments, even for stubs that target older + versions of Python; +- for arguments that default to `None`, use `Optional[]` explicitly; +- use `float` instead of `Union[int, float]`. + +## Pragmatism + +Early versions of _Black_ used to be absolutist in some respects. They took after its +initial author. This was fine at the time as it made the implementation simpler and +there were not many users anyway. Not many edge cases were reported. As a mature tool, +_Black_ does make some exceptions to rules it otherwise holds. This section documents +what those exceptions are and why this is the case. + +### The magic trailing comma + +_Black_ in general does not take existing formatting into account. + +However, there are cases where you put a short collection or function call in your code +but you anticipate it will grow in the future. + +For example: + +```py3 +TRANSLATIONS = { + "en_us": "English (US)", + "pl_pl": "polski", +} +``` + +Early versions of _Black_ used to ruthlessly collapse those into one line (it fits!). +Now, you can communicate that you don't want that by putting a trailing comma in the +collection yourself. When you do, _Black_ will know to always explode your collection +into one item per line. + +How do you make it stop? Just delete that trailing comma and _Black_ will collapse your +collection into one line if it fits. + +If you must, you can recover the behaviour of early versions of _Black_ with the option +`--skip-magic-trailing-comma` / `-C`. + +### r"strings" and R"strings" + +_Black_ normalizes string quotes as well as string prefixes, making them lowercase. One +exception to this rule is r-strings. It turns out that the very popular +[MagicPython](https://github.com/MagicStack/MagicPython/) syntax highlighter, used by +default by (among others) GitHub and Visual Studio Code, differentiates between +r-strings and R-strings. The former are syntax highlighted as regular expressions while +the latter are treated as true raw strings with no special semantics. + +### AST before and after formatting + +When run with `--safe`, _Black_ checks that the code before and after is semantically +equivalent. This check is done by comparing the AST of the source with the AST of the +target. There are three limited cases in which the AST does differ: + +1. _Black_ cleans up leading and trailing whitespace of docstrings, re-indenting them if + needed. It's been one of the most popular user-reported features for the formatter to + fix whitespace issues with docstrings. While the result is technically an AST + difference, due to the various possibilities of forming docstrings, all realtime use + of docstrings that we're aware of sanitizes indentation and leading/trailing + whitespace anyway. + +1. _Black_ manages optional parentheses for some statements. In the case of the `del` + statement, presence of wrapping parentheses or lack of thereof changes the resulting + AST but is semantically equivalent in the interpreter. + +1. _Black_ might move comments around, which includes type comments. Those are part of + the AST as of Python 3.8. While the tool implements a number of special cases for + those comments, there is no guarantee they will remain where they were in the source. + Note that this doesn't change runtime behavior of the source code. + +To put things in perspective, the code equivalence check is a feature of _Black_ which +other formatters don't implement at all. It is of crucial importance to us to ensure +code behaves the way it did before it got reformatted. We treat this as a feature and +there are no plans to relax this in the future. The exceptions enumerated above stem +from either user feedback or implementation details of the tool. In each case we made +due diligence to ensure that the AST divergence is of no practical consequence. diff --git a/.vim/bundle/black/docs/the_black_code_style/future_style.md b/.vim/bundle/black/docs/the_black_code_style/future_style.md new file mode 100644 index 0000000..a767609 --- /dev/null +++ b/.vim/bundle/black/docs/the_black_code_style/future_style.md @@ -0,0 +1,42 @@ +# The (future of the) Black code style + +```{warning} +Changes to this document often aren't tied and don't relate to releases of +_Black_. It's recommended that you read the latest version available. +``` + +## Using backslashes for with statements + +[Backslashes are bad and should be never be used](labels/why-no-backslashes) however +there is one exception: `with` statements using multiple context managers. Before Python +3.9 Python's grammar does not allow organizing parentheses around the series of context +managers. + +We don't want formatting like: + +```py3 +with make_context_manager1() as cm1, make_context_manager2() as cm2, make_context_manager3() as cm3, make_context_manager4() as cm4: + ... # nothing to split on - line too long +``` + +So _Black_ will eventually format it like this: + +```py3 +with \ + make_context_manager(1) as cm1, \ + make_context_manager(2) as cm2, \ + make_context_manager(3) as cm3, \ + make_context_manager(4) as cm4 \ +: + ... # backslashes and an ugly stranded colon +``` + +Although when the target version is Python 3.9 or higher, _Black_ will use parentheses +instead since they're allowed in Python 3.9 and higher. + +## Improved string processing + +Currently, _Black_ does not split long strings to fit the line length limit. Currently, +there is [an experimental option](labels/experimental-string) to enable splitting +strings. We plan to enable this option by default once it is fully stable. This is +tracked in [this issue](https://github.com/psf/black/issues/2188). diff --git a/.vim/bundle/black/docs/the_black_code_style/index.rst b/.vim/bundle/black/docs/the_black_code_style/index.rst new file mode 100644 index 0000000..4693437 --- /dev/null +++ b/.vim/bundle/black/docs/the_black_code_style/index.rst @@ -0,0 +1,19 @@ +The Black Code Style +==================== + +.. toctree:: + :hidden: + + Current style + Future style + +*Black* is a PEP 8 compliant opinionated formatter with its own style. + +It should be noted that while keeping the style unchanged throughout releases is a +goal, the *Black* code style isn't set in stone. Sometimes it's modified in response to +user feedback or even changes to the Python language! + +Documentation for both the current and future styles can be found: + +- :doc:`current_style` +- :doc:`future_style` diff --git a/.vim/bundle/black/docs/usage_and_configuration/black_as_a_server.md b/.vim/bundle/black/docs/usage_and_configuration/black_as_a_server.md new file mode 100644 index 0000000..75a4d92 --- /dev/null +++ b/.vim/bundle/black/docs/usage_and_configuration/black_as_a_server.md @@ -0,0 +1,78 @@ +# Black as a server (blackd) + +`blackd` is a small HTTP server that exposes _Black_'s functionality over a simple +protocol. The main benefit of using it is to avoid the cost of starting up a new _Black_ +process every time you want to blacken a file. + +## Usage + +`blackd` is not packaged alongside _Black_ by default because it has additional +dependencies. You will need to execute `pip install black[d]` to install it. + +You can start the server on the default port, binding only to the local interface by +running `blackd`. You will see a single line mentioning the server's version, and the +host and port it's listening on. `blackd` will then print an access log similar to most +web servers on standard output, merged with any exception traces caused by invalid +formatting requests. + +`blackd` provides even less options than _Black_. You can see them by running +`blackd --help`: + +```{program-output} blackd --help + +``` + +There is no official `blackd` client tool (yet!). You can test that blackd is working +using `curl`: + +```sh +blackd --bind-port 9090 & # or let blackd choose a port +curl -s -XPOST "localhost:9090" -d "print('valid')" +``` + +## Protocol + +`blackd` only accepts `POST` requests at the `/` path. The body of the request should +contain the python source code to be formatted, encoded according to the `charset` field +in the `Content-Type` request header. If no `charset` is specified, `blackd` assumes +`UTF-8`. + +There are a few HTTP headers that control how the source code is formatted. These +correspond to command line flags for _Black_. There is one exception to this: +`X-Protocol-Version` which if present, should have the value `1`, otherwise the request +is rejected with `HTTP 501` (Not Implemented). + +The headers controlling how source code is formatted are: + +- `X-Line-Length`: corresponds to the `--line-length` command line flag. +- `X-Skip-String-Normalization`: corresponds to the `--skip-string-normalization` + command line flag. If present and its value is not the empty string, no string + normalization will be performed. +- `X-Skip-Magic-Trailing-Comma`: corresponds to the `--skip-magic-trailing-comma` + command line flag. If present and its value is not the empty string, trailing commas + will not be used as a reason to split lines. +- `X-Fast-Or-Safe`: if set to `fast`, `blackd` will act as _Black_ does when passed the + `--fast` command line flag. +- `X-Python-Variant`: if set to `pyi`, `blackd` will act as _Black_ does when passed the + `--pyi` command line flag. Otherwise, its value must correspond to a Python version or + a set of comma-separated Python versions, optionally prefixed with `py`. For example, + to request code that is compatible with Python 3.5 and 3.6, set the header to + `py3.5,py3.6`. +- `X-Diff`: corresponds to the `--diff` command line flag. If present, a diff of the + formats will be output. + +If any of these headers are set to invalid values, `blackd` returns a `HTTP 400` error +response, mentioning the name of the problematic header in the message body. + +Apart from the above, `blackd` can produce the following response codes: + +- `HTTP 204`: If the input is already well-formatted. The response body is empty. +- `HTTP 200`: If formatting was needed on the input. The response body contains the + blackened Python code, and the `Content-Type` header is set accordingly. +- `HTTP 400`: If the input contains a syntax error. Details of the error are returned in + the response body. +- `HTTP 500`: If there was any other kind of error while trying to format the input. The + response body contains a textual representation of the error. + +The response headers include a `X-Black-Version` header containing the version of +_Black_. diff --git a/.vim/bundle/black/docs/usage_and_configuration/file_collection_and_discovery.md b/.vim/bundle/black/docs/usage_and_configuration/file_collection_and_discovery.md new file mode 100644 index 0000000..1f43618 --- /dev/null +++ b/.vim/bundle/black/docs/usage_and_configuration/file_collection_and_discovery.md @@ -0,0 +1,36 @@ +# File collection and discovery + +You can directly pass _Black_ files, but you can also pass directories and _Black_ will +walk them, collecting files to format. It determines what files to format or skip +automatically using the inclusion and exclusion regexes and as well their modification +time. + +## Ignoring unmodified files + +_Black_ remembers files it has already formatted, unless the `--diff` flag is used or +code is passed via standard input. This information is stored per-user. The exact +location of the file depends on the _Black_ version and the system on which _Black_ is +run. The file is non-portable. The standard location on common operating systems is: + +- Windows: + `C:\\Users\\AppData\Local\black\black\Cache\\cache...pickle` +- macOS: + `/Users//Library/Caches/black//cache...pickle` +- Linux: + `/home//.cache/black//cache...pickle` + +`file-mode` is an int flag that determines whether the file was formatted as 3.6+ only, +as .pyi, and whether string normalization was omitted. + +To override the location of these files on macOS or Linux, set the environment variable +`XDG_CACHE_HOME` to your preferred location. For example, if you want to put the cache +in the directory you're running _Black_ from, set `XDG_CACHE_HOME=.cache`. _Black_ will +then write the above files to `.cache/black//`. + +## .gitignore + +If `--exclude` is not set, _Black_ will automatically ignore files and directories in +`.gitignore` file(s), if present. + +If you want _Black_ to continue using `.gitignore` while also configuring the exclusion +rules, please use `--extend-exclude`. diff --git a/.vim/bundle/black/docs/usage_and_configuration/index.rst b/.vim/bundle/black/docs/usage_and_configuration/index.rst new file mode 100644 index 0000000..84a9c0c --- /dev/null +++ b/.vim/bundle/black/docs/usage_and_configuration/index.rst @@ -0,0 +1,24 @@ +Usage and Configuration +======================= + +.. toctree:: + :hidden: + + the_basics + file_collection_and_discovery + black_as_a_server + +Sometimes, running *Black* with its defaults and passing filepaths to it just won't cut +it. Passing each file using paths will become burdensome, and maybe you would like +*Black* to not touch your files and just output diffs. And yes, you *can* tweak certain +parts of *Black*'s style, but please know that configurability in this area is +purposefully limited. + +Using many of these more advanced features of *Black* will require some configuration. +Configuration that will either live on the command line or in a TOML configuration file. + +This section covers features of *Black* and configuring *Black* in detail: + +- :doc:`The basics <./the_basics>` +- :doc:`File collection and discovery ` +- :doc:`Black as a server (blackd) <./black_as_a_server>` diff --git a/.vim/bundle/black/docs/usage_and_configuration/the_basics.md b/.vim/bundle/black/docs/usage_and_configuration/the_basics.md new file mode 100644 index 0000000..49268b4 --- /dev/null +++ b/.vim/bundle/black/docs/usage_and_configuration/the_basics.md @@ -0,0 +1,292 @@ +# The basics + +Foundational knowledge on using and configuring Black. + +_Black_ is a well-behaved Unix-style command-line tool: + +- it does nothing if no sources are passed to it; +- it will read from standard input and write to standard output if `-` is used as the + filename; +- it only outputs messages to users on standard error; +- exits with code 0 unless an internal error occurred (or `--check` was used). + +## Usage + +To get started right away with sensible defaults: + +```sh +black {source_file_or_directory} +``` + +You can run _Black_ as a package if running it as a script doesn't work: + +```sh +python -m black {source_file_or_directory} +``` + +### Command line options + +_Black_ has quite a few knobs these days, although _Black_ is opinionated so style +configuration options are deliberately limited and rarely added. You can list them by +running `black --help`. + +
+ +Help output + +```{program-output} black --help + +``` + +
+ +### Code input alternatives + +#### Standard Input + +_Black_ supports formatting code via stdin, with the result being printed to stdout. +Just let _Black_ know with `-` as the path. + +```console +$ echo "print ( 'hello, world' )" | black - +print("hello, world") +reformatted - +All done! ✨ 🍰 ✨ +1 file reformatted. +``` + +**Tip:** if you need _Black_ to treat stdin input as a file passed directly via the CLI, +use `--stdin-filename`. Useful to make sure _Black_ will respect the `--force-exclude` +option on some editors that rely on using stdin. + +#### As a string + +You can also pass code as a string using the `-c` / `--code` option. + +```console +$ black --code "print ( 'hello, world' )" +print("hello, world") +``` + +### Writeback and reporting + +By default _Black_ reformats the files given and/or found in place. Sometimes you need +_Black_ to just tell you what it _would_ do without actually rewriting the Python files. + +There's two variations to this mode that are independently enabled by their respective +flags. Both variations can be enabled at once. + +#### Exit code + +Passing `--check` will make _Black_ exit with: + +- code 0 if nothing would change; +- code 1 if some files would be reformatted; or +- code 123 if there was an internal error + +```console +$ black test.py --check +All done! ✨ 🍰 ✨ +1 file would be left unchanged. +$ echo $? +0 + +$ black test.py --check +would reformat test.py +Oh no! 💥 💔 💥 +1 file would be reformatted. +$ echo $? +1 + +$ black test.py --check +error: cannot format test.py: INTERNAL ERROR: Black produced code that is not equivalent to the source. Please report a bug on https://github.com/psf/black/issues. This diff might be helpful: /tmp/blk_kjdr1oog.log +Oh no! 💥 💔 💥 +1 file would fail to reformat. +$ echo $? +123 +``` + +#### Diffs + +Passing `--diff` will make _Black_ print out diffs that indicate what changes _Black_ +would've made. They are printed to stdout so capturing them is simple. + +If you'd like colored diffs, you can enable them with the `--color`. + +```console +$ black test.py --diff +--- test.py 2021-03-08 22:23:40.848954 +0000 ++++ test.py 2021-03-08 22:23:47.126319 +0000 +@@ -1 +1 @@ +-print ( 'hello, world' ) ++print("hello, world") +would reformat test.py +All done! ✨ 🍰 ✨ +1 file would be reformatted. +``` + +### Output verbosity + +_Black_ in general tries to produce the right amount of output, balancing between +usefulness and conciseness. By default, _Black_ emits files modified and error messages, +plus a short summary. + +```console +$ black src/ +error: cannot format src/black_primer/cli.py: Cannot parse: 5:6: mport asyncio +reformatted src/black_primer/lib.py +reformatted src/blackd/__init__.py +reformatted src/black/__init__.py +Oh no! 💥 💔 💥 +3 files reformatted, 2 files left unchanged, 1 file failed to reformat. +``` + +Passing `-v` / `--verbose` will cause _Black_ to also emit messages about files that +were not changed or were ignored due to exclusion patterns. If _Black_ is using a +configuration file, a blue message detailing which one it is using will be emitted. + +```console +$ black src/ -v +Using configuration from /tmp/pyproject.toml. +src/blib2to3 ignored: matches the --extend-exclude regular expression +src/_black_version.py wasn't modified on disk since last run. +src/black/__main__.py wasn't modified on disk since last run. +error: cannot format src/black_primer/cli.py: Cannot parse: 5:6: mport asyncio +reformatted src/black_primer/lib.py +reformatted src/blackd/__init__.py +reformatted src/black/__init__.py +Oh no! 💥 💔 💥 +3 files reformatted, 2 files left unchanged, 1 file failed to reformat +``` + +Passing `-q` / `--quiet` will cause _Black_ to stop emitting all non-critial output. +Error messages will still be emitted (which can silenced by `2>/dev/null`). + +```console +$ black src/ -q +error: cannot format src/black_primer/cli.py: Cannot parse: 5:6: mport asyncio +``` + +### Versions + +You can check the version of _Black_ you have installed using the `--version` flag. + +```console +$ black --version +black, version 21.9b0 +``` + +An option to require a specific version to be running is also provided. + +```console +$ black --required-version 21.9b0 -c "format = 'this'" +format = "this" +$ black --required-version 31.5b2 -c "still = 'beta?!'" +Oh no! 💥 💔 💥 The required version does not match the running version! +``` + +This is useful for example when running _Black_ in multiple environments that haven't +necessarily installed the correct version. This option can be set in a configuration +file for consistent results across environments. + +## Configuration via a file + +_Black_ is able to read project-specific default values for its command line options +from a `pyproject.toml` file. This is especially useful for specifying custom +`--include` and `--exclude`/`--force-exclude`/`--extend-exclude` patterns for your +project. + +**Pro-tip**: If you're asking yourself "Do I need to configure anything?" the answer is +"No". _Black_ is all about sensible defaults. Applying those defaults will have your +code in compliance with many other _Black_ formatted projects. + +### What on Earth is a `pyproject.toml` file? + +[PEP 518](https://www.python.org/dev/peps/pep-0518/) defines `pyproject.toml` as a +configuration file to store build system requirements for Python projects. With the help +of tools like [Poetry](https://python-poetry.org/) or +[Flit](https://flit.readthedocs.io/en/latest/) it can fully replace the need for +`setup.py` and `setup.cfg` files. + +### Where _Black_ looks for the file + +By default _Black_ looks for `pyproject.toml` starting from the common base directory of +all files and directories passed on the command line. If it's not there, it looks in +parent directories. It stops looking when it finds the file, or a `.git` directory, or a +`.hg` directory, or the root of the file system, whichever comes first. + +If you're formatting standard input, _Black_ will look for configuration starting from +the current working directory. + +You can use a "global" configuration, stored in a specific location in your home +directory. This will be used as a fallback configuration, that is, it will be used if +and only if _Black_ doesn't find any configuration as mentioned above. Depending on your +operating system, this configuration file should be stored as: + +- Windows: `~\.black` +- Unix-like (Linux, MacOS, etc.): `$XDG_CONFIG_HOME/black` (`~/.config/black` if the + `XDG_CONFIG_HOME` environment variable is not set) + +Note that these are paths to the TOML file itself (meaning that they shouldn't be named +as `pyproject.toml`), not directories where you store the configuration. Here, `~` +refers to the path to your home directory. On Windows, this will be something like +`C:\\Users\UserName`. + +You can also explicitly specify the path to a particular file that you want with +`--config`. In this situation _Black_ will not look for any other file. + +If you're running with `--verbose`, you will see a blue message if a file was found and +used. + +Please note `blackd` will not use `pyproject.toml` configuration. + +### Configuration format + +As the file extension suggests, `pyproject.toml` is a +[TOML](https://github.com/toml-lang/toml) file. It contains separate sections for +different tools. _Black_ is using the `[tool.black]` section. The option keys are the +same as long names of options on the command line. + +Note that you have to use single-quoted strings in TOML for regular expressions. It's +the equivalent of r-strings in Python. Multiline strings are treated as verbose regular +expressions by Black. Use `[ ]` to denote a significant space character. + +
+Example pyproject.toml + +```toml +[tool.black] +line-length = 88 +target-version = ['py37'] +include = '\.pyi?$' +extend-exclude = ''' +# A regex preceded with ^/ will apply only to files and directories +# in the root of the project. +^/foo.py # exclude a file named foo.py in the root of the project (in addition to the defaults) +''' +``` + +
+ +### Lookup hierarchy + +Command-line options have defaults that you can see in `--help`. A `pyproject.toml` can +override those defaults. Finally, options provided by the user on the command line +override both. + +_Black_ will only ever use one `pyproject.toml` file during an entire run. It doesn't +look for multiple files, and doesn't compose configuration from different levels of the +file hierarchy. + +## Next steps + +You've probably noted that not all of the options you can pass to _Black_ have been +covered. Don't worry, the rest will be covered in a later section. + +A good next step would be configuring auto-discovery so `black .` is all you need +instead of laborously listing every file or directory. You can get started by heading +over to [File collection and discovery](./file_collection_and_discovery.md). + +Another good choice would be setting up an +[integration with your editor](../integrations/editors.md) of choice or with +[pre-commit for source version control](../integrations/source_version_control.md). diff --git a/.vim/bundle/black/fuzz.py b/.vim/bundle/black/fuzz.py new file mode 100644 index 0000000..a9ca8ef --- /dev/null +++ b/.vim/bundle/black/fuzz.py @@ -0,0 +1,85 @@ +"""Property-based tests for Black. + +By Zac Hatfield-Dodds, based on my Hypothesmith tool for source code +generation. You can run this file with `python`, `pytest`, or (soon) +a coverage-guided fuzzer I'm working on. +""" + +import re + +import hypothesmith +from hypothesis import HealthCheck, given, settings, strategies as st + +import black +from blib2to3.pgen2.tokenize import TokenError + + +# This test uses the Hypothesis and Hypothesmith libraries to generate random +# syntatically-valid Python source code and run Black in odd modes. +@settings( + max_examples=1000, # roughly 1k tests/minute, or half that under coverage + derandomize=True, # deterministic mode to avoid CI flakiness + deadline=None, # ignore Hypothesis' health checks; we already know that + suppress_health_check=HealthCheck.all(), # this is slow and filter-heavy. +) +@given( + # Note that while Hypothesmith might generate code unlike that written by + # humans, it's a general test that should pass for any *valid* source code. + # (so e.g. running it against code scraped of the internet might also help) + src_contents=hypothesmith.from_grammar() | hypothesmith.from_node(), + # Using randomly-varied modes helps us to exercise less common code paths. + mode=st.builds( + black.FileMode, + line_length=st.just(88) | st.integers(0, 200), + string_normalization=st.booleans(), + is_pyi=st.booleans(), + ), +) +def test_idempotent_any_syntatically_valid_python( + src_contents: str, mode: black.FileMode +) -> None: + # Before starting, let's confirm that the input string is valid Python: + compile(src_contents, "", "exec") # else the bug is in hypothesmith + + # Then format the code... + try: + dst_contents = black.format_str(src_contents, mode=mode) + except black.InvalidInput: + # This is a bug - if it's valid Python code, as above, Black should be + # able to cope with it. See issues #970, #1012, #1358, and #1557. + # TODO: remove this try-except block when issues are resolved. + return + except TokenError as e: + if ( # Special-case logic for backslashes followed by newlines or end-of-input + e.args[0] == "EOF in multi-line statement" + and re.search(r"\\($|\r?\n)", src_contents) is not None + ): + # This is a bug - if it's valid Python code, as above, Black should be + # able to cope with it. See issue #1012. + # TODO: remove this block when the issue is resolved. + return + raise + + # And check that we got equivalent and stable output. + black.assert_equivalent(src_contents, dst_contents) + black.assert_stable(src_contents, dst_contents, mode=mode) + + # Future test: check that pure-python and mypyc versions of black + # give identical output for identical input? + + +if __name__ == "__main__": + # Run tests, including shrinking and reporting any known failures. + test_idempotent_any_syntatically_valid_python() + + # If Atheris is available, run coverage-guided fuzzing. + # (if you want only bounded fuzzing, just use `pytest fuzz.py`) + try: + import sys + import atheris + except ImportError: + pass + else: + test = test_idempotent_any_syntatically_valid_python + atheris.Setup(sys.argv, test.hypothesis.fuzz_one_input) + atheris.Fuzz() diff --git a/.vim/bundle/black/gallery/Dockerfile b/.vim/bundle/black/gallery/Dockerfile new file mode 100644 index 0000000..7a18b7e --- /dev/null +++ b/.vim/bundle/black/gallery/Dockerfile @@ -0,0 +1,11 @@ +FROM python:3.8.2-slim + +# note: a single RUN to avoid too many image layers being produced +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get install git apt-utils -y \ + && git config --global user.email "black@psf.github.com" \ + && git config --global user.name "Gallery/Black" + +COPY gallery.py / +ENTRYPOINT ["python", "/gallery.py"] diff --git a/.vim/bundle/black/gallery/README.md b/.vim/bundle/black/gallery/README.md new file mode 100644 index 0000000..ea48e81 --- /dev/null +++ b/.vim/bundle/black/gallery/README.md @@ -0,0 +1,45 @@ +# Gallery + +Gallery is a script that automates the process of applying different _Black_ versions to +a selected PyPI package and seeing the results between _Black_ versions. + +## Build + +```console +$ docker build -t black_gallery . +``` + +## Run + +```console +$ docker run -it -v /host/output:/output -v /host/input:/input black_gallery:latest [args] +``` + +``` +usage: gallery.py [-h] (-p PYPI_PACKAGE | -t TOP_PACKAGES) [-b BLACK_REPO] [-v VERSION] [-w WORKERS] [-i INPUT] [-o OUTPUT] + [versions [versions ...]] + +Black Gallery is a script that automates the process of applying different Black versions to a selected PyPI package and +seeing the results between versions. + +positional arguments: + versions + +optional arguments: + -h, --help show this help message and exit + -p PYPI_PACKAGE, --pypi-package PYPI_PACKAGE + PyPI package to download. + -t TOP_PACKAGES, --top-packages TOP_PACKAGES + Top n PyPI packages to download. + -b BLACK_REPO, --black-repo BLACK_REPO + Black's Git repository. + -v VERSION, --version VERSION + Version for given PyPI package. Will be discarded if used with -t option. + -w WORKERS, --workers WORKERS + Maximum number of threads to download with at the same time. Will be discarded if used with -p + option. + -i INPUT, --input INPUT + Input directory to read configuration. + -o OUTPUT, --output OUTPUT + Output directory to download and put result artifacts. +``` diff --git a/.vim/bundle/black/gallery/gallery.py b/.vim/bundle/black/gallery/gallery.py new file mode 100755 index 0000000..3df05c1 --- /dev/null +++ b/.vim/bundle/black/gallery/gallery.py @@ -0,0 +1,307 @@ +import atexit +import json +import subprocess +import tarfile +import tempfile +import traceback +import venv +import zipfile +from argparse import ArgumentParser, Namespace +from concurrent.futures import ThreadPoolExecutor +from functools import lru_cache, partial +from pathlib import Path +from typing import ( # type: ignore # typing can't see Literal + Generator, + List, + Literal, + NamedTuple, + Optional, + Tuple, + Union, + cast, +) +from urllib.request import urlopen, urlretrieve + +PYPI_INSTANCE = "https://pypi.org/pypi" +PYPI_TOP_PACKAGES = ( + "https://hugovk.github.io/top-pypi-packages/top-pypi-packages-{days}-days.json" +) +INTERNAL_BLACK_REPO = f"{tempfile.gettempdir()}/__black" + +ArchiveKind = Union[tarfile.TarFile, zipfile.ZipFile] +Days = Union[Literal[30], Literal[365]] + +subprocess.run = partial(subprocess.run, check=True) # type: ignore +# https://github.com/python/mypy/issues/1484 + + +class BlackVersion(NamedTuple): + version: str + config: Optional[str] = None + + +def get_pypi_download_url(package: str, version: Optional[str]) -> str: + with urlopen(PYPI_INSTANCE + f"/{package}/json") as page: + metadata = json.load(page) + + if version is None: + sources = metadata["urls"] + else: + if version in metadata["releases"]: + sources = metadata["releases"][version] + else: + raise ValueError( + f"No releases found with version ('{version}') tag. " + f"Found releases: {metadata['releases'].keys()}" + ) + + for source in sources: + if source["python_version"] == "source": + break + else: + raise ValueError(f"Couldn't find any sources for {package}") + + return cast(str, source["url"]) + + +def get_top_packages(days: Days) -> List[str]: + with urlopen(PYPI_TOP_PACKAGES.format(days=days)) as page: + result = json.load(page) + + return [package["project"] for package in result["rows"]] + + +def get_package_source(package: str, version: Optional[str]) -> str: + if package == "cpython": + if version is None: + version = "main" + return f"https://github.com/python/cpython/archive/{version}.zip" + elif package == "pypy": + if version is None: + version = "branch/default" + return ( + f"https://foss.heptapod.net/pypy/pypy/repository/{version}/archive.tar.bz2" + ) + else: + return get_pypi_download_url(package, version) + + +def get_archive_manager(local_file: str) -> ArchiveKind: + if tarfile.is_tarfile(local_file): + return tarfile.open(local_file) + elif zipfile.is_zipfile(local_file): + return zipfile.ZipFile(local_file) + else: + raise ValueError("Unknown archive kind.") + + +def get_first_archive_member(archive: ArchiveKind) -> str: + if isinstance(archive, tarfile.TarFile): + return archive.getnames()[0] + elif isinstance(archive, zipfile.ZipFile): + return archive.namelist()[0] + + +def download_and_extract(package: str, version: Optional[str], directory: Path) -> Path: + source = get_package_source(package, version) + + local_file, _ = urlretrieve(source, directory / f"{package}-src") + with get_archive_manager(local_file) as archive: + archive.extractall(path=directory) + result_dir = get_first_archive_member(archive) + return directory / result_dir + + +def get_package( + package: str, version: Optional[str], directory: Path +) -> Optional[Path]: + try: + return download_and_extract(package, version, directory) + except Exception: + print(f"Caught an exception while downloading {package}.") + traceback.print_exc() + return None + + +DEFAULT_SLICE = slice(None) # for flake8 + + +def download_and_extract_top_packages( + directory: Path, + days: Days = 365, + workers: int = 8, + limit: slice = DEFAULT_SLICE, +) -> Generator[Path, None, None]: + with ThreadPoolExecutor(max_workers=workers) as executor: + bound_downloader = partial(get_package, version=None, directory=directory) + for package in executor.map(bound_downloader, get_top_packages(days)[limit]): + if package is not None: + yield package + + +def git_create_repository(repo: Path) -> None: + subprocess.run(["git", "init"], cwd=repo) + git_add_and_commit(msg="Initial commit", repo=repo) + + +def git_add_and_commit(msg: str, repo: Path) -> None: + subprocess.run(["git", "add", "."], cwd=repo) + subprocess.run(["git", "commit", "-m", msg, "--allow-empty"], cwd=repo) + + +def git_switch_branch( + branch: str, repo: Path, new: bool = False, from_branch: Optional[str] = None +) -> None: + args = ["git", "checkout"] + if new: + args.append("-b") + args.append(branch) + if from_branch: + args.append(from_branch) + subprocess.run(args, cwd=repo) + + +def init_repos(options: Namespace) -> Tuple[Path, ...]: + options.output.mkdir(exist_ok=True) + + if options.top_packages: + source_directories = tuple( + download_and_extract_top_packages( + directory=options.output, + workers=options.workers, + limit=slice(None, options.top_packages), + ) + ) + else: + source_directories = ( + download_and_extract( + package=options.pypi_package, + version=options.version, + directory=options.output, + ), + ) + + for source_directory in source_directories: + git_create_repository(source_directory) + + if options.black_repo is None: + subprocess.run( + ["git", "clone", "https://github.com/psf/black.git", INTERNAL_BLACK_REPO], + cwd=options.output, + ) + options.black_repo = options.output / INTERNAL_BLACK_REPO + + return source_directories + + +@lru_cache(8) +def black_runner(version: str, black_repo: Path) -> Path: + directory = tempfile.TemporaryDirectory() + venv.create(directory.name, with_pip=True) + + python = Path(directory.name) / "bin" / "python" + subprocess.run([python, "-m", "pip", "install", "-e", black_repo]) + + atexit.register(directory.cleanup) + return python + + +def format_repo_with_version( + repo: Path, + from_branch: Optional[str], + black_repo: Path, + black_version: BlackVersion, + input_directory: Path, +) -> str: + current_branch = f"black-{black_version.version}" + git_switch_branch(black_version.version, repo=black_repo) + git_switch_branch(current_branch, repo=repo, new=True, from_branch=from_branch) + + format_cmd: List[Union[Path, str]] = [ + black_runner(black_version.version, black_repo), + (black_repo / "black.py").resolve(), + ".", + ] + if black_version.config: + format_cmd.extend(["--config", input_directory / black_version.config]) + + subprocess.run(format_cmd, cwd=repo, check=False) # ensure the process + # continuess to run even it can't format some files. Reporting those + # should be enough + git_add_and_commit(f"Format with black:{black_version.version}", repo=repo) + + return current_branch + + +def format_repos(repos: Tuple[Path, ...], options: Namespace) -> None: + black_versions = tuple( + BlackVersion(*version.split(":")) for version in options.versions + ) + + for repo in repos: + from_branch = None + for black_version in black_versions: + from_branch = format_repo_with_version( + repo=repo, + from_branch=from_branch, + black_repo=options.black_repo, + black_version=black_version, + input_directory=options.input, + ) + git_switch_branch("main", repo=repo) + + git_switch_branch("main", repo=options.black_repo) + + +def main() -> None: + parser = ArgumentParser( + description="""Black Gallery is a script that + automates the process of applying different Black versions to a selected + PyPI package and seeing the results between versions.""" + ) + + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument("-p", "--pypi-package", help="PyPI package to download.") + group.add_argument( + "-t", "--top-packages", help="Top n PyPI packages to download.", type=int + ) + + parser.add_argument("-b", "--black-repo", help="Black's Git repository.", type=Path) + parser.add_argument( + "-v", + "--version", + help=( + "Version for given PyPI package. Will be discarded if used with -t option." + ), + ) + parser.add_argument( + "-w", + "--workers", + help=( + "Maximum number of threads to download with at the same time. " + "Will be discarded if used with -p option." + ), + ) + parser.add_argument( + "-i", + "--input", + default=Path("/input"), + type=Path, + help="Input directory to read configuration.", + ) + parser.add_argument( + "-o", + "--output", + default=Path("/output"), + type=Path, + help="Output directory to download and put result artifacts.", + ) + parser.add_argument("versions", nargs="*", default=("main",), help="") + + options = parser.parse_args() + repos = init_repos(options) + format_repos(repos, options) + + +if __name__ == "__main__": + main() diff --git a/.vim/bundle/black/mypy.ini b/.vim/bundle/black/mypy.ini new file mode 100644 index 0000000..7e563e6 --- /dev/null +++ b/.vim/bundle/black/mypy.ini @@ -0,0 +1,41 @@ +[mypy] +# Specify the target platform details in config, so your developers are +# free to run mypy on Windows, Linux, or macOS and get consistent +# results. +python_version=3.6 +platform=linux + +mypy_path=src + +show_column_numbers=True + +# show error messages from unrelated files +follow_imports=normal + +# suppress errors about unsatisfied imports +ignore_missing_imports=True + +# be strict +disallow_untyped_calls=True +warn_return_any=True +strict_optional=True +warn_no_return=True +warn_redundant_casts=True +warn_unused_ignores=True +# Until we're not supporting 3.6 primer needs this +disallow_any_generics=False + +# The following are off by default. Flip them on if you feel +# adventurous. +disallow_untyped_defs=True +check_untyped_defs=True + +# No incremental mode +cache_dir=/dev/null + +[mypy-aiohttp.*] +follow_imports=skip +[mypy-black] +# The following is because of `patch_click()`. Remove when +# we drop Python 3.6 support. +warn_unused_ignores=False diff --git a/.vim/bundle/black/plugin/black.vim b/.vim/bundle/black/plugin/black.vim new file mode 100644 index 0000000..90d2047 --- /dev/null +++ b/.vim/bundle/black/plugin/black.vim @@ -0,0 +1,72 @@ +" black.vim +" Author: Łukasz Langa +" Created: Mon Mar 26 23:27:53 2018 -0700 +" Requires: Vim Ver7.0+ +" Version: 1.2 +" +" Documentation: +" This plugin formats Python files. +" +" History: +" 1.0: +" - initial version +" 1.1: +" - restore cursor/window position after formatting +" 1.2: +" - use autoload script + +if v:version < 700 || !has('python3') + func! __BLACK_MISSING() + echo "The black.vim plugin requires vim7.0+ with Python 3.6 support." + endfunc + command! Black :call __BLACK_MISSING() + command! BlackUpgrade :call __BLACK_MISSING() + command! BlackVersion :call __BLACK_MISSING() + finish +endif + +if exists("g:load_black") + finish +endif + +let g:load_black = "py1.0" +if !exists("g:black_virtualenv") + if has("nvim") + let g:black_virtualenv = "~/.local/share/nvim/black" + else + let g:black_virtualenv = "~/.vim/black" + endif +endif +if !exists("g:black_fast") + let g:black_fast = 0 +endif +if !exists("g:black_linelength") + let g:black_linelength = 88 +endif +if !exists("g:black_skip_string_normalization") + if exists("g:black_string_normalization") + let g:black_skip_string_normalization = !g:black_string_normalization + else + let g:black_skip_string_normalization = 0 + endif +endif +if !exists("g:black_quiet") + let g:black_quiet = 0 +endif +if !exists("g:black_target_version") + let g:black_target_version = "" +endif + +function BlackComplete(ArgLead, CmdLine, CursorPos) + return [ +\ 'target_version=py27', +\ 'target_version=py36', +\ 'target_version=py37', +\ 'target_version=py38', +\ 'target_version=py39', +\ ] +endfunction + +command! -nargs=* -complete=customlist,BlackComplete Black :call black#Black() +command! BlackUpgrade :call black#BlackUpgrade() +command! BlackVersion :call black#BlackVersion() diff --git a/.vim/bundle/black/profiling/dict_big.py b/.vim/bundle/black/profiling/dict_big.py new file mode 100644 index 0000000..f330ac5 --- /dev/null +++ b/.vim/bundle/black/profiling/dict_big.py @@ -0,0 +1,8001 @@ +config = some.Structure( + some_mapping={ + "00501": "AB890X", + "00544": "AB890X", + "01001": "AB889X", + "01002": "AB889X", + "01003": "AB889X", + "01004": "AB889X", + "01005": "AB889X", + "01007": "AB889X", + "01008": "AB889X", + "01009": "AB889X", + "01010": "AB889X", + "01011": "AB889X", + "01012": "AB889X", + "01013": "AB889X", + "01014": "AB889X", + "01020": "AB889X", + "01021": "AB889X", + "01022": "AB889X", + "01026": "AB889X", + "01027": "AB889X", + "01028": "AB889X", + "01029": "AB889X", + "01030": "AB889X", + "01031": "AB889X", + "01032": "AB889X", + "01033": "AB889X", + "01034": "AB889X", + "01035": "AB889X", + "01036": "AB889X", + "01037": "AB889X", + "01038": "AB889X", + "01039": "AB889X", + "01040": "AB889X", + "01041": "AB889X", + "01050": "AB889X", + "01053": "AB889X", + "01054": "AB889X", + "01056": "AB889X", + "01057": "AB889X", + "01059": "AB889X", + "01060": "AB889X", + "01061": "AB889X", + "01062": "AB889X", + "01063": "AB889X", + "01066": "AB889X", + "01068": "AB889X", + "01069": "AB889X", + "01070": "AB889X", + "01071": "AB889X", + "01072": "AB889X", + "01073": "AB889X", + "01074": "AB889X", + "01075": "AB889X", + "01077": "AB889X", + "01079": "AB889X", + "01080": "AB889X", + "01081": "AB889X", + "01082": "AB889X", + "01083": "AB889X", + "01084": "AB889X", + "01085": "AB889X", + "01086": "AB889X", + "01088": "AB889X", + "01089": "AB889X", + "01090": "AB889X", + "01092": "AB889X", + "01093": "AB889X", + "01094": "AB889X", + "01095": "AB889X", + "01096": "AB889X", + "01097": "AB889X", + "01098": "AB889X", + "01101": "AB889X", + "01102": "AB889X", + "01103": "AB889X", + "01104": "AB889X", + "01105": "AB889X", + "01106": "AB889X", + "01107": "AB889X", + "01108": "AB889X", + "01109": "AB889X", + "01111": "AB889X", + "01115": "AB889X", + "01116": "AB889X", + "01118": "AB889X", + "01119": "AB889X", + "01128": "AB889X", + "01129": "AB889X", + "01133": "AB889X", + "01138": "AB889X", + "01139": "AB889X", + "01144": "AB889X", + "01151": "AB889X", + "01152": "AB889X", + "01195": "AB889X", + "01199": "AB889X", + "01201": "AB890X", + "01202": "AB889X", + "01203": "AB889X", + "01220": "AB890X", + "01222": "AB889X", + "01223": "AB889X", + "01224": "AB889X", + "01225": "AB889X", + "01226": "AB889X", + "01227": "AB889X", + "01229": "AB889X", + "01230": "AB889X", + "01235": "AB889X", + "01236": "AB889X", + "01237": "AB889X", + "01238": "AB889X", + "01240": "AB889X", + "01242": "AB889X", + "01243": "AB889X", + "01244": "AB889X", + "01245": "AB889X", + "01247": "AB890X", + "01252": "AB889X", + "01253": "AB889X", + "01254": "AB889X", + "01255": "AB889X", + "01256": "AB889X", + "01257": "AB890X", + "01258": "AB889X", + "01259": "AB889X", + "01260": "AB889X", + "01262": "AB889X", + "01263": "AB889X", + "01264": "AB889X", + "01266": "AB889X", + "01267": "AB890X", + "01270": "AB889X", + "01301": "AB889X", + "01302": "AB889X", + "01330": "AB889X", + "01331": "AB889X", + "01337": "AB889X", + "01338": "AB889X", + "01339": "AB889X", + "01340": "AB889X", + "01341": "AB889X", + "01342": "AB889X", + "01343": "AB889X", + "01344": "AB889X", + "01346": "AB889X", + "01347": "AB889X", + "01349": "AB889X", + "01350": "AB889X", + "01351": "AB889X", + "01354": "AB889X", + "01355": "AB889X", + "01360": "AB889X", + "01364": "AB889X", + "01366": "AB889X", + "01367": "AB890X", + "01368": "AB889X", + "01370": "AB889X", + "01373": "AB889X", + "01375": "AB889X", + "01376": "AB889X", + "01378": "AB889X", + "01379": "AB889X", + "01380": "AB889X", + "01420": "AB889X", + "01430": "AB889X", + "01431": "AB889X", + "01432": "AB889X", + "01434": "AB889X", + "01436": "AB889X", + "01438": "AB889X", + "01440": "AB889X", + "01441": "AB889X", + "01450": "AB889X", + "01451": "AB889X", + "01452": "AB889X", + "01453": "AB889X", + "01460": "AB889X", + "01462": "AB889X", + "01463": "AB889X", + "01464": "AB889X", + "01467": "AB889X", + "01468": "AB889X", + "01469": "AB889X", + "01470": "AB889X", + "01471": "AB889X", + "01472": "AB889X", + "01473": "AB889X", + "01474": "AB889X", + "01475": "AB889X", + "01477": "AB889X", + "01501": "AB889X", + "01503": "AB889X", + "01504": "AB889X", + "01505": "AB889X", + "01506": "AB889X", + "01507": "AB889X", + "01508": "AB889X", + "01509": "AB889X", + "01510": "AB889X", + "01515": "AB889X", + "01516": "AB889X", + "01517": "AB889X", + "01518": "AB889X", + "01519": "AB889X", + "01520": "AB889X", + "01521": "AB889X", + "01522": "AB889X", + "01523": "AB889X", + "01524": "AB889X", + "01525": "AB889X", + "01526": "AB889X", + "01527": "AB889X", + "01529": "AB889X", + "01531": "AB889X", + "01532": "AB889X", + "01534": "AB889X", + "01535": "AB889X", + "01536": "AB889X", + "01537": "AB889X", + "01538": "AB889X", + "01540": "AB889X", + "01541": "AB889X", + "01542": "AB889X", + "01543": "AB889X", + "01545": "AB889X", + "01546": "AB889X", + "01550": "AB889X", + "01560": "AB889X", + "01561": "AB889X", + "01562": "AB889X", + "01564": "AB889X", + "01566": "AB889X", + "01568": "AB889X", + "01569": "AB889X", + "01570": "AB889X", + "01571": "AB889X", + "01580": "AB889X", + "01581": "AB889X", + "01582": "AB889X", + "01583": "AB889X", + "01585": "AB889X", + "01586": "AB889X", + "01588": "AB889X", + "01590": "AB889X", + "01601": "AB889X", + "01602": "AB889X", + "01603": "AB889X", + "01604": "AB889X", + "01605": "AB889X", + "01606": "AB889X", + "01607": "AB889X", + "01608": "AB889X", + "01609": "AB889X", + "01610": "AB889X", + "01611": "AB889X", + "01612": "AB889X", + "01613": "AB889X", + "01614": "AB889X", + "01615": "AB889X", + "01653": "AB889X", + "01654": "AB889X", + "01655": "AB889X", + "01701": "AB889X", + "01702": "AB889X", + "01703": "AB889X", + "01704": "AB889X", + "01705": "AB889X", + "01718": "AB889X", + "01719": "AB889X", + "01720": "AB889X", + "01721": "AB889X", + "01730": "AB889X", + "01731": "AB889X", + "01740": "AB889X", + "01741": "AB889X", + "01742": "AB889X", + "01745": "AB889X", + "01746": "AB889X", + "01747": "AB889X", + "01748": "AB889X", + "01749": "AB889X", + "01752": "AB889X", + "01754": "AB889X", + "01756": "AB889X", + "01757": "AB889X", + "01760": "AB889X", + "01770": "AB889X", + "01772": "AB889X", + "01773": "AB889X", + "01775": "AB889X", + "01776": "AB889X", + "01778": "AB889X", + "01784": "AB889X", + "01801": "AB889X", + "01803": "AB889X", + "01805": "AB889X", + "01806": "AB889X", + "01807": "AB889X", + "01808": "AB889X", + "01810": "AB889X", + "01812": "AB889X", + "01813": "AB889X", + "01815": "AB889X", + "01821": "AB889X", + "01822": "AB889X", + "01824": "AB889X", + "01826": "AB889X", + "01827": "AB889X", + "01830": "AB889X", + "01831": "AB889X", + "01832": "AB889X", + "01833": "AB889X", + "01834": "AB889X", + "01835": "AB889X", + "01840": "AB889X", + "01841": "AB889X", + "01842": "AB889X", + "01843": "AB889X", + "01844": "AB889X", + "01845": "AB889X", + "01850": "AB889X", + "01851": "AB889X", + "01852": "AB889X", + "01853": "AB889X", + "01854": "AB889X", + "01860": "AB889X", + "01862": "AB889X", + "01863": "AB889X", + "01864": "AB889X", + "01865": "AB889X", + "01866": "AB889X", + "01867": "AB889X", + "01876": "AB889X", + "01879": "AB889X", + "01880": "AB889X", + "01885": "AB889X", + "01886": "AB889X", + "01887": "AB889X", + "01888": "AB889X", + "01889": "AB889X", + "01890": "AB889X", + "01899": "AB889X", + "01901": "AB889X", + "01902": "AB889X", + "01903": "AB889X", + "01904": "AB889X", + "01905": "AB889X", + "01906": "AB889X", + "01907": "AB889X", + "01908": "AB889X", + "01910": "AB889X", + "01913": "AB889X", + "01915": "AB889X", + "01921": "AB889X", + "01922": "AB889X", + "01923": "AB889X", + "01929": "AB889X", + "01930": "AB889X", + "01931": "AB889X", + "01936": "AB889X", + "01937": "AB889X", + "01938": "AB889X", + "01940": "AB889X", + "01944": "AB889X", + "01945": "AB889X", + "01949": "AB889X", + "01950": "AB889X", + "01951": "AB889X", + "01952": "AB889X", + "01960": "AB889X", + "01961": "AB889X", + "01965": "AB889X", + "01966": "AB889X", + "01969": "AB889X", + "01970": "AB889X", + "01971": "AB889X", + "01982": "AB889X", + "01983": "AB889X", + "01984": "AB889X", + "01985": "AB889X", + "02018": "AB889X", + "02019": "AB889X", + "02020": "AB889X", + "02021": "AB889X", + "02025": "AB889X", + "02026": "AB889X", + "02027": "AB889X", + "02030": "AB889X", + "02031": "AB889X", + "02032": "AB889X", + "02035": "AB889X", + "02038": "AB889X", + "02040": "AB889X", + "02041": "AB889X", + "02043": "AB889X", + "02044": "AB889X", + "02045": "AB889X", + "02047": "AB889X", + "02048": "AB889X", + "02050": "AB889X", + "02051": "AB889X", + "02052": "AB889X", + "02053": "AB889X", + "02054": "AB889X", + "02055": "AB889X", + "02056": "AB889X", + "02059": "AB889X", + "02060": "AB889X", + "02061": "AB889X", + "02062": "AB889X", + "02065": "AB889X", + "02066": "AB889X", + "02067": "AB889X", + "02070": "AB889X", + "02071": "AB889X", + "02072": "AB889X", + "02081": "AB889X", + "02090": "AB889X", + "02093": "AB889X", + "02108": "AB889X", + "02109": "AB889X", + "02110": "AB889X", + "02111": "AB889X", + "02112": "AB889X", + "02113": "AB889X", + "02114": "AB889X", + "02115": "AB889X", + "02116": "AB889X", + "02117": "AB889X", + "02118": "AB889X", + "02119": "AB889X", + "02120": "AB889X", + "02121": "AB889X", + "02122": "AB889X", + "02123": "AB889X", + "02124": "AB889X", + "02125": "AB889X", + "02126": "AB889X", + "02127": "AB889X", + "02128": "AB889X", + "02129": "AB889X", + "02130": "AB889X", + "02131": "AB889X", + "02132": "AB889X", + "02133": "AB889X", + "02134": "AB889X", + "02135": "AB889X", + "02136": "AB889X", + "02137": "AB889X", + "02138": "AB889X", + "02139": "AB889X", + "02140": "AB889X", + "02141": "AB889X", + "02142": "AB889X", + "02143": "AB889X", + "02144": "AB889X", + "02145": "AB889X", + "02148": "AB889X", + "02149": "AB889X", + "02150": "AB889X", + "02151": "AB889X", + "02152": "AB889X", + "02153": "AB889X", + "02155": "AB889X", + "02156": "AB889X", + "02163": "AB889X", + "02169": "AB889X", + "02170": "AB889X", + "02171": "AB889X", + "02176": "AB889X", + "02180": "AB889X", + "02184": "AB889X", + "02185": "AB889X", + "02186": "AB889X", + "02187": "AB889X", + "02188": "AB889X", + "02189": "AB889X", + "02190": "AB889X", + "02191": "AB889X", + "02196": "AB889X", + "02199": "AB889X", + "02201": "AB889X", + "02203": "AB889X", + "02204": "AB889X", + "02205": "AB889X", + "02206": "AB889X", + "02207": "AB889X", + "02210": "AB889X", + "02211": "AB889X", + "02212": "AB889X", + "02215": "AB889X", + "02216": "AB889X", + "02217": "AB889X", + "02222": "AB889X", + "02228": "AB889X", + "02238": "AB889X", + "02239": "AB889X", + "02241": "AB889X", + "02266": "AB889X", + "02269": "AB889X", + "02283": "AB889X", + "02284": "AB889X", + "02293": "AB889X", + "02295": "AB889X", + "02297": "AB889X", + "02298": "AB889X", + "02301": "AB889X", + "02302": "AB889X", + "02303": "AB889X", + "02304": "AB889X", + "02305": "AB889X", + "02322": "AB889X", + "02324": "AB889X", + "02325": "AB889X", + "02327": "AB889X", + "02330": "AB889X", + "02331": "AB889X", + "02332": "AB889X", + "02333": "AB889X", + "02334": "AB889X", + "02337": "AB889X", + "02338": "AB889X", + "02339": "AB889X", + "02340": "AB889X", + "02341": "AB889X", + "02343": "AB889X", + "02344": "AB889X", + "02345": "AB889X", + "02346": "AB889X", + "02347": "AB889X", + "02348": "AB889X", + "02349": "AB889X", + "02350": "AB889X", + "02351": "AB889X", + "02355": "AB889X", + "02356": "AB889X", + "02357": "AB889X", + "02358": "AB889X", + "02359": "AB889X", + "02360": "AB889X", + "02361": "AB889X", + "02362": "AB889X", + "02364": "AB889X", + "02366": "AB889X", + "02367": "AB889X", + "02368": "AB889X", + "02370": "AB889X", + "02375": "AB889X", + "02379": "AB889X", + "02381": "AB889X", + "02382": "AB889X", + "02420": "AB889X", + "02421": "AB889X", + "02445": "AB889X", + "02446": "AB889X", + "02447": "AB889X", + "02451": "AB889X", + "02452": "AB889X", + "02453": "AB889X", + "02454": "AB889X", + "02455": "AB889X", + "02456": "AB889X", + "02457": "AB889X", + "02458": "AB890X", + "02459": "AB889X", + "02460": "AB889X", + "02461": "AB889X", + "02462": "AB889X", + "02464": "AB889X", + "02465": "AB889X", + "02466": "AB889X", + "02467": "AB889X", + "02468": "AB889X", + "02471": "AB889X", + "02472": "AB889X", + "02474": "AB889X", + "02475": "AB889X", + "02476": "AB889X", + "02477": "AB889X", + "02478": "AB889X", + "02479": "AB889X", + "02481": "AB889X", + "02482": "AB889X", + "02492": "AB889X", + "02493": "AB889X", + "02494": "AB889X", + "02495": "AB889X", + "02532": "AB889X", + "02534": "AB889X", + "02535": "AB889X", + "02536": "AB889X", + "02537": "AB889X", + "02538": "AB889X", + "02539": "AB889X", + "02540": "AB889X", + "02541": "AB889X", + "02542": "AB889X", + "02543": "AB889X", + "02552": "AB889X", + "02553": "AB889X", + "02554": "AB889X", + "02556": "AB889X", + "02557": "AB889X", + "02558": "AB889X", + "02559": "AB889X", + "02561": "AB889X", + "02562": "AB889X", + "02563": "AB889X", + "02564": "AB889X", + "02565": "AB889X", + "02568": "AB889X", + "02571": "AB889X", + "02573": "AB889X", + "02574": "AB889X", + "02575": "AB889X", + "02576": "AB889X", + "02584": "AB889X", + "02601": "AB889X", + "02630": "AB889X", + "02631": "AB889X", + "02632": "AB889X", + "02633": "AB889X", + "02634": "AB889X", + "02635": "AB889X", + "02636": "AB889X", + "02637": "AB889X", + "02638": "AB889X", + "02639": "AB889X", + "02641": "AB889X", + "02642": "AB889X", + "02643": "AB889X", + "02644": "AB889X", + "02645": "AB889X", + "02646": "AB889X", + "02647": "AB889X", + "02648": "AB889X", + "02649": "AB889X", + "02650": "AB889X", + "02651": "AB889X", + "02652": "AB889X", + "02653": "AB889X", + "02655": "AB889X", + "02657": "AB889X", + "02659": "AB889X", + "02660": "AB889X", + "02661": "AB889X", + "02662": "AB889X", + "02663": "AB889X", + "02664": "AB889X", + "02666": "AB889X", + "02667": "AB889X", + "02668": "AB889X", + "02669": "AB889X", + "02670": "AB889X", + "02671": "AB889X", + "02672": "AB889X", + "02673": "AB889X", + "02675": "AB889X", + "02702": "AB889X", + "02703": "AB889X", + "02712": "AB889X", + "02713": "AB889X", + "02714": "AB889X", + "02715": "AB889X", + "02717": "AB889X", + "02718": "AB889X", + "02719": "AB889X", + "02720": "AB889X", + "02721": "AB889X", + "02722": "AB889X", + "02723": "AB889X", + "02724": "AB889X", + "02725": "AB889X", + "02726": "AB889X", + "02738": "AB889X", + "02739": "AB889X", + "02740": "AB889X", + "02741": "AB889X", + "02742": "AB889X", + "02743": "AB889X", + "02744": "AB889X", + "02745": "AB889X", + "02746": "AB889X", + "02747": "AB889X", + "02748": "AB889X", + "02760": "AB889X", + "02761": "AB889X", + "02762": "AB889X", + "02763": "AB889X", + "02764": "AB889X", + "02766": "AB889X", + "02767": "AB889X", + "02768": "AB889X", + "02769": "AB889X", + "02770": "AB889X", + "02771": "AB889X", + "02777": "AB889X", + "02779": "AB889X", + "02780": "AB889X", + "02783": "AB889X", + "02790": "AB889X", + "02791": "AB889X", + "02801": "AB889X", + "02802": "AB889X", + "02804": "AB889X", + "02806": "AB889X", + "02807": "AB889X", + "02808": "AB889X", + "02809": "AB889X", + "02812": "AB889X", + "02813": "AB889X", + "02814": "AB889X", + "02815": "AB889X", + "02816": "AB889X", + "02817": "AB889X", + "02818": "AB889X", + "02822": "AB889X", + "02823": "AB889X", + "02824": "AB889X", + "02825": "AB889X", + "02826": "AB889X", + "02827": "AB889X", + "02828": "AB889X", + "02829": "AB889X", + "02830": "AB889X", + "02831": "AB889X", + "02832": "AB889X", + "02833": "AB889X", + "02835": "AB889X", + "02836": "AB889X", + "02837": "AB889X", + "02838": "AB889X", + "02839": "AB889X", + "02840": "AB889X", + "02841": "AB889X", + "02842": "AB889X", + "02852": "AB889X", + "02854": "AB889X", + "02857": "AB889X", + "02858": "AB889X", + "02859": "AB889X", + "02860": "AB889X", + "02861": "AB889X", + "02862": "AB889X", + "02863": "AB889X", + "02864": "AB889X", + "02865": "AB889X", + "02871": "AB889X", + "02872": "AB889X", + "02873": "AB889X", + "02874": "AB889X", + "02875": "AB889X", + "02876": "AB889X", + "02877": "AB889X", + "02878": "AB889X", + "02879": "AB889X", + "02880": "AB889X", + "02881": "AB889X", + "02882": "AB889X", + "02883": "AB889X", + "02885": "AB889X", + "02886": "AB889X", + "02887": "AB889X", + "02888": "AB889X", + "02889": "AB889X", + "02891": "AB889X", + "02892": "AB889X", + "02893": "AB889X", + "02894": "AB889X", + "02895": "AB889X", + "02896": "AB889X", + "02898": "AB889X", + "02901": "AB889X", + "02902": "AB889X", + "02903": "AB889X", + "02904": "AB889X", + "02905": "AB889X", + "02906": "AB889X", + "02907": "AB889X", + "02908": "AB889X", + "02909": "AB889X", + "02910": "AB889X", + "02911": "AB889X", + "02912": "AB889X", + "02914": "AB889X", + "02915": "AB889X", + "02916": "AB889X", + "02917": "AB889X", + "02918": "AB889X", + "02919": "AB889X", + "02920": "AB889X", + "02921": "AB889X", + "02940": "AB889X", + "03031": "AB889X", + "03032": "AB889X", + "03033": "AB889X", + "03034": "AB889X", + "03036": "AB889X", + "03037": "AB889X", + "03038": "AB889X", + "03040": "AB889X", + "03041": "AB889X", + "03042": "AB889X", + "03043": "AB889X", + "03044": "AB889X", + "03045": "AB889X", + "03046": "AB889X", + "03047": "AB889X", + "03048": "AB889X", + "03049": "AB889X", + "03051": "AB889X", + "03052": "AB889X", + "03053": "AB889X", + "03054": "AB889X", + "03055": "AB889X", + "03057": "AB889X", + "03060": "AB889X", + "03061": "AB889X", + "03062": "AB889X", + "03063": "AB889X", + "03064": "AB889X", + "03070": "AB889X", + "03071": "AB889X", + "03073": "AB889X", + "03076": "AB889X", + "03077": "AB889X", + "03079": "AB889X", + "03082": "AB889X", + "03084": "AB889X", + "03086": "AB889X", + "03087": "AB889X", + "03101": "AB889X", + "03102": "AB889X", + "03103": "AB889X", + "03104": "AB889X", + "03105": "AB889X", + "03106": "AB889X", + "03107": "AB889X", + "03108": "AB889X", + "03109": "AB889X", + "03110": "AB889X", + "03111": "AB889X", + "03215": "AB889X", + "03216": "AB889X", + "03217": "AB889X", + "03218": "AB889X", + "03220": "AB889X", + "03221": "AB889X", + "03222": "AB889X", + "03223": "AB889X", + "03224": "AB889X", + "03225": "AB889X", + "03226": "AB889X", + "03227": "AB889X", + "03229": "AB889X", + "03230": "AB889X", + "03231": "AB889X", + "03233": "AB889X", + "03234": "AB889X", + "03235": "AB889X", + "03237": "AB889X", + "03238": "AB889X", + "03240": "AB889X", + "03241": "AB889X", + "03242": "AB889X", + "03243": "AB889X", + "03244": "AB889X", + "03245": "AB889X", + "03246": "AB889X", + "03247": "AB889X", + "03249": "AB889X", + "03251": "AB889X", + "03252": "AB889X", + "03253": "AB889X", + "03254": "AB889X", + "03255": "AB889X", + "03256": "AB889X", + "03257": "AB889X", + "03258": "AB889X", + "03259": "AB889X", + "03260": "AB889X", + "03261": "AB889X", + "03262": "AB889X", + "03263": "AB889X", + "03264": "AB889X", + "03266": "AB889X", + "03268": "AB889X", + "03269": "AB889X", + "03272": "AB889X", + "03273": "AB889X", + "03274": "AB889X", + "03275": "AB889X", + "03276": "AB889X", + "03278": "AB889X", + "03279": "AB889X", + "03280": "AB889X", + "03281": "AB889X", + "03282": "AB889X", + "03284": "AB889X", + "03287": "AB889X", + "03289": "AB889X", + "03290": "AB889X", + "03291": "AB889X", + "03293": "AB889X", + "03298": "AB889X", + "03299": "AB889X", + "03301": "AB889X", + "03302": "AB889X", + "03303": "AB889X", + "03304": "AB889X", + "03305": "AB889X", + "03307": "AB889X", + "03431": "AB889X", + "03435": "AB889X", + "03440": "AB889X", + "03441": "AB889X", + "03442": "AB889X", + "03443": "AB889X", + "03444": "AB889X", + "03445": "AB889X", + "03446": "AB889X", + "03447": "AB889X", + "03448": "AB889X", + "03449": "AB889X", + "03450": "AB889X", + "03451": "AB889X", + "03452": "AB889X", + "03455": "AB889X", + "03456": "AB889X", + "03457": "AB889X", + "03458": "AB889X", + "03461": "AB889X", + "03462": "AB889X", + "03464": "AB889X", + "03465": "AB889X", + "03466": "AB889X", + "03467": "AB889X", + "03468": "AB889X", + "03469": "AB889X", + "03470": "AB889X", + "03561": "AB889X", + "03570": "AB889X", + "03574": "AB889X", + "03575": "AB889X", + "03576": "AB889X", + "03579": "AB889X", + "03580": "AB889X", + "03581": "AB889X", + "03582": "AB889X", + "03583": "AB889X", + "03584": "AB889X", + "03585": "AB889X", + "03586": "AB889X", + "03588": "AB889X", + "03589": "AB889X", + "03590": "AB889X", + "03592": "AB889X", + "03593": "AB889X", + "03595": "AB889X", + "03597": "AB889X", + "03598": "AB889X", + "03601": "AB889X", + "03602": "AB889X", + "03603": "AB889X", + "03604": "AB889X", + "03605": "AB889X", + "03607": "AB889X", + "03608": "AB889X", + "03609": "AB889X", + "03740": "AB889X", + "03741": "AB889X", + "03743": "AB889X", + "03745": "AB889X", + "03746": "AB889X", + "03748": "AB889X", + "03749": "AB889X", + "03750": "AB889X", + "03751": "AB889X", + "03752": "AB889X", + "03753": "AB889X", + "03754": "AB889X", + "03755": "AB889X", + "03756": "AB889X", + "03765": "AB889X", + "03766": "AB889X", + "03768": "AB889X", + "03769": "AB889X", + "03770": "AB889X", + "03771": "AB889X", + "03773": "AB889X", + "03774": "AB889X", + "03777": "AB889X", + "03779": "AB889X", + "03780": "AB889X", + "03781": "AB889X", + "03782": "AB889X", + "03784": "AB889X", + "03785": "AB889X", + "03801": "AB889X", + "03802": "AB889X", + "03803": "AB889X", + "03804": "AB889X", + "03805": "AB889X", + "03809": "AB889X", + "03810": "AB889X", + "03811": "AB889X", + "03812": "AB889X", + "03813": "AB889X", + "03814": "AB889X", + "03815": "AB889X", + "03816": "AB889X", + "03817": "AB889X", + "03818": "AB889X", + "03819": "AB889X", + "03820": "AB889X", + "03821": "AB889X", + "03822": "AB889X", + "03823": "AB889X", + "03824": "AB889X", + "03825": "AB889X", + "03826": "AB889X", + "03827": "AB889X", + "03830": "AB889X", + "03832": "AB889X", + "03833": "AB889X", + "03835": "AB889X", + "03836": "AB889X", + "03837": "AB889X", + "03838": "AB889X", + "03839": "AB889X", + "03840": "AB889X", + "03841": "AB889X", + "03842": "AB889X", + "03843": "AB889X", + "03844": "AB889X", + "03845": "AB889X", + "03846": "AB889X", + "03847": "AB889X", + "03848": "AB889X", + "03849": "AB889X", + "03850": "AB889X", + "03851": "AB889X", + "03852": "AB889X", + "03853": "AB889X", + "03854": "AB889X", + "03855": "AB889X", + "03856": "AB889X", + "03857": "AB889X", + "03858": "AB889X", + "03859": "AB889X", + "03860": "AB889X", + "03861": "AB889X", + "03862": "AB889X", + "03864": "AB889X", + "03865": "AB889X", + "03866": "AB889X", + "03867": "AB889X", + "03868": "AB889X", + "03869": "AB889X", + "03870": "AB889X", + "03871": "AB889X", + "03872": "AB889X", + "03873": "AB889X", + "03874": "AB889X", + "03875": "AB889X", + "03878": "AB889X", + "03882": "AB889X", + "03883": "AB889X", + "03884": "AB889X", + "03885": "AB889X", + "03886": "AB889X", + "03887": "AB889X", + "03890": "AB889X", + "03894": "AB889X", + "03896": "AB889X", + "03897": "AB889X", + "03901": "AB889X", + "03902": "AB889X", + "03903": "AB889X", + "03904": "AB889X", + "03905": "AB889X", + "03906": "AB889X", + "03907": "AB889X", + "03908": "AB889X", + "03909": "AB889X", + "03910": "AB889X", + "03911": "AB889X", + "04001": "AB889X", + "04002": "AB889X", + "04003": "AB889X", + "04004": "AB889X", + "04005": "AB889X", + "04006": "AB889X", + "04007": "AB889X", + "04008": "AB889X", + "04009": "AB889X", + "04010": "AB889X", + "04011": "AB889X", + "04013": "AB889X", + "04014": "AB889X", + "04015": "AB889X", + "04016": "AB889X", + "04017": "AB889X", + "04019": "AB889X", + "04020": "AB889X", + "04021": "AB889X", + "04022": "AB889X", + "04024": "AB889X", + "04027": "AB889X", + "04028": "AB889X", + "04029": "AB889X", + "04030": "AB889X", + "04032": "AB889X", + "04033": "AB889X", + "04034": "AB889X", + "04037": "AB889X", + "04038": "AB889X", + "04039": "AB889X", + "04040": "AB889X", + "04041": "AB889X", + "04042": "AB889X", + "04043": "AB889X", + "04046": "AB889X", + "04047": "AB889X", + "04048": "AB889X", + "04049": "AB889X", + "04050": "AB889X", + "04051": "AB889X", + "04054": "AB889X", + "04055": "AB889X", + "04056": "AB889X", + "04057": "AB889X", + "04061": "AB889X", + "04062": "AB889X", + "04063": "AB889X", + "04064": "AB889X", + "04066": "AB889X", + "04068": "AB889X", + "04069": "AB889X", + "04070": "AB889X", + "04071": "AB889X", + "04072": "AB889X", + "04073": "AB889X", + "04074": "AB889X", + "04075": "AB889X", + "04076": "AB889X", + "04077": "AB889X", + "04078": "AB889X", + "04079": "AB889X", + "04082": "AB889X", + "04083": "AB889X", + "04084": "AB889X", + "04085": "AB889X", + "04086": "AB889X", + "04087": "AB889X", + "04088": "AB889X", + "04090": "AB889X", + "04091": "AB889X", + "04092": "AB889X", + "04093": "AB889X", + "04094": "AB889X", + "04095": "AB889X", + "04096": "AB889X", + "04097": "AB889X", + "04098": "AB889X", + "04101": "AB889X", + "04102": "AB889X", + "04103": "AB889X", + "04104": "AB889X", + "04105": "AB889X", + "04106": "AB889X", + "04107": "AB889X", + "04108": "AB889X", + "04109": "AB889X", + "04110": "AB889X", + "04112": "AB889X", + "04116": "AB889X", + "04122": "AB889X", + "04123": "AB889X", + "04124": "AB889X", + "04210": "AB889X", + "04211": "AB889X", + "04212": "AB889X", + "04216": "AB889X", + "04217": "AB889X", + "04219": "AB889X", + "04220": "AB889X", + "04221": "AB889X", + "04222": "AB889X", + "04223": "AB889X", + "04224": "AB889X", + "04225": "AB889X", + "04226": "AB889X", + "04227": "AB889X", + "04228": "AB889X", + "04230": "AB889X", + "04231": "AB889X", + "04234": "AB889X", + "04236": "AB889X", + "04237": "AB889X", + "04238": "AB889X", + "04239": "AB889X", + "04240": "AB889X", + "04241": "AB889X", + "04243": "AB889X", + "04250": "AB889X", + "04252": "AB889X", + "04253": "AB889X", + "04254": "AB889X", + "04255": "AB889X", + "04256": "AB889X", + "04257": "AB889X", + "04258": "AB889X", + "04259": "AB889X", + "04260": "AB889X", + "04261": "AB889X", + "04262": "AB889X", + "04263": "AB889X", + "04265": "AB889X", + "04266": "AB889X", + "04267": "AB889X", + "04268": "AB889X", + "04270": "AB889X", + "04271": "AB889X", + "04274": "AB889X", + "04275": "AB889X", + "04276": "AB889X", + "04278": "AB889X", + "04280": "AB889X", + "04281": "AB889X", + "04282": "AB889X", + "04284": "AB889X", + "04285": "AB889X", + "04286": "AB889X", + "04287": "AB889X", + "04288": "AB889X", + "04289": "AB889X", + "04290": "AB889X", + "04291": "AB889X", + "04292": "AB889X", + "04294": "AB889X", + "04330": "AB889X", + "04332": "AB889X", + "04333": "AB889X", + "04336": "AB889X", + "04338": "AB889X", + "04341": "AB889X", + "04342": "AB889X", + "04343": "AB889X", + "04344": "AB889X", + "04345": "AB889X", + "04346": "AB889X", + "04347": "AB889X", + "04348": "AB889X", + "04349": "AB889X", + "04350": "AB889X", + "04351": "AB889X", + "04352": "AB889X", + "04353": "AB889X", + "04354": "AB889X", + "04355": "AB889X", + "04357": "AB889X", + "04358": "AB889X", + "04359": "AB889X", + "04360": "AB889X", + "04363": "AB889X", + "04364": "AB889X", + "04401": "AB889X", + "04402": "AB889X", + "04406": "AB889X", + "04408": "AB889X", + "04410": "AB889X", + "04411": "AB889X", + "04412": "AB889X", + "04413": "AB889X", + "04414": "AB889X", + "04415": "AB889X", + "04416": "AB889X", + "04417": "AB889X", + "04418": "AB889X", + "04419": "AB889X", + "04420": "AB889X", + "04421": "AB889X", + "04422": "AB889X", + "04424": "AB889X", + "04426": "AB889X", + "04427": "AB889X", + "04428": "AB889X", + "04429": "AB889X", + "04430": "AB889X", + "04431": "AB889X", + "04434": "AB889X", + "04435": "AB889X", + "04438": "AB889X", + "04441": "AB889X", + "04442": "AB889X", + "04443": "AB889X", + "04444": "AB889X", + "04448": "AB889X", + "04449": "AB889X", + "04450": "AB889X", + "04451": "AB889X", + "04453": "AB889X", + "04454": "AB889X", + "04455": "AB889X", + "04456": "AB889X", + "04457": "AB889X", + "04459": "AB889X", + "04460": "AB889X", + "04461": "AB889X", + "04462": "AB889X", + "04463": "AB889X", + "04464": "AB889X", + "04467": "AB889X", + "04468": "AB889X", + "04469": "AB889X", + "04471": "AB889X", + "04472": "AB889X", + "04473": "AB889X", + "04474": "AB889X", + "04475": "AB889X", + "04476": "AB889X", + "04478": "AB889X", + "04479": "AB889X", + "04481": "AB889X", + "04485": "AB889X", + "04487": "AB889X", + "04488": "AB889X", + "04489": "AB889X", + "04490": "AB889X", + "04491": "AB889X", + "04492": "AB889X", + "04493": "AB889X", + "04495": "AB889X", + "04496": "AB889X", + "04497": "AB889X", + "04530": "AB889X", + "04535": "AB889X", + "04537": "AB889X", + "04538": "AB889X", + "04539": "AB889X", + "04541": "AB889X", + "04543": "AB889X", + "04544": "AB889X", + "04547": "AB889X", + "04548": "AB889X", + "04549": "AB889X", + "04551": "AB889X", + "04553": "AB889X", + "04554": "AB889X", + "04555": "AB889X", + "04556": "AB889X", + "04558": "AB889X", + "04562": "AB889X", + "04563": "AB889X", + "04564": "AB889X", + "04565": "AB889X", + "04568": "AB889X", + "04570": "AB889X", + "04571": "AB889X", + "04572": "AB889X", + "04573": "AB889X", + "04574": "AB889X", + "04575": "AB889X", + "04576": "AB889X", + "04578": "AB889X", + "04579": "AB889X", + "04605": "AB889X", + "04606": "AB889X", + "04607": "AB889X", + "04609": "AB889X", + "04611": "AB889X", + "04612": "AB889X", + "04613": "AB889X", + "04614": "AB889X", + "04616": "AB889X", + "04617": "AB889X", + "04619": "AB889X", + "04622": "AB889X", + "04623": "AB889X", + "04624": "AB889X", + "04625": "AB889X", + "04626": "AB889X", + "04627": "AB889X", + "04628": "AB889X", + "04629": "AB889X", + "04630": "AB889X", + "04631": "AB889X", + "04634": "AB889X", + "04635": "AB889X", + "04637": "AB889X", + "04640": "AB889X", + "04642": "AB889X", + "04643": "AB889X", + "04644": "AB889X", + "04645": "AB889X", + "04646": "AB889X", + "04648": "AB889X", + "04649": "AB889X", + "04650": "AB889X", + "04652": "AB889X", + "04653": "AB889X", + "04654": "AB889X", + "04655": "AB889X", + "04657": "AB889X", + "04658": "AB889X", + "04660": "AB889X", + "04662": "AB889X", + "04664": "AB889X", + "04666": "AB889X", + "04667": "AB889X", + "04668": "AB889X", + "04669": "AB889X", + "04671": "AB889X", + "04672": "AB889X", + "04673": "AB889X", + "04674": "AB889X", + "04675": "AB889X", + "04676": "AB889X", + "04677": "AB889X", + "04679": "AB889X", + "04680": "AB889X", + "04681": "AB889X", + "04683": "AB889X", + "04684": "AB889X", + "04685": "AB889X", + "04686": "AB889X", + "04691": "AB889X", + "04693": "AB889X", + "04694": "AB889X", + "04730": "AB889X", + "04732": "AB889X", + "04733": "AB889X", + "04734": "AB889X", + "04735": "AB889X", + "04736": "AB889X", + "04737": "AB889X", + "04738": "AB889X", + "04739": "AB889X", + "04740": "AB889X", + "04741": "AB889X", + "04742": "AB889X", + "04743": "AB889X", + "04744": "AB889X", + "04745": "AB889X", + "04746": "AB889X", + "04747": "AB889X", + "04750": "AB889X", + "04751": "AB889X", + "04756": "AB889X", + "04757": "AB889X", + "04758": "AB889X", + "04760": "AB889X", + "04761": "AB889X", + "04762": "AB889X", + "04763": "AB889X", + "04764": "AB889X", + "04765": "AB889X", + "04766": "AB889X", + "04768": "AB889X", + "04769": "AB889X", + "04772": "AB889X", + "04773": "AB889X", + "04774": "AB889X", + "04775": "AB889X", + "04776": "AB889X", + "04777": "AB889X", + "04779": "AB889X", + "04780": "AB889X", + "04781": "AB889X", + "04783": "AB889X", + "04785": "AB889X", + "04786": "AB889X", + "04787": "AB889X", + "04841": "AB889X", + "04843": "AB889X", + "04846": "AB889X", + "04847": "AB889X", + "04848": "AB889X", + "04849": "AB889X", + "04850": "AB889X", + "04851": "AB889X", + "04852": "AB889X", + "04853": "AB889X", + "04854": "AB889X", + "04855": "AB889X", + "04856": "AB889X", + "04858": "AB889X", + "04859": "AB889X", + "04860": "AB889X", + "04861": "AB889X", + "04862": "AB889X", + "04863": "AB889X", + "04864": "AB889X", + "04865": "AB889X", + "04901": "AB889X", + "04903": "AB889X", + "04910": "AB889X", + "04911": "AB889X", + "04912": "AB889X", + "04915": "AB889X", + "04917": "AB889X", + "04918": "AB889X", + "04920": "AB889X", + "04921": "AB889X", + "04922": "AB889X", + "04923": "AB889X", + "04924": "AB889X", + "04925": "AB889X", + "04926": "AB889X", + "04927": "AB889X", + "04928": "AB889X", + "04929": "AB889X", + "04930": "AB889X", + "04932": "AB889X", + "04933": "AB889X", + "04935": "AB889X", + "04936": "AB889X", + "04937": "AB889X", + "04938": "AB889X", + "04939": "AB889X", + "04940": "AB889X", + "04941": "AB889X", + "04942": "AB889X", + "04943": "AB889X", + "04944": "AB889X", + "04945": "AB889X", + "04947": "AB889X", + "04949": "AB889X", + "04950": "AB889X", + "04951": "AB889X", + "04952": "AB889X", + "04953": "AB889X", + "04954": "AB889X", + "04955": "AB889X", + "04956": "AB889X", + "04957": "AB889X", + "04958": "AB889X", + "04961": "AB889X", + "04962": "AB889X", + "04963": "AB889X", + "04964": "AB889X", + "04965": "AB889X", + "04966": "AB889X", + "04967": "AB889X", + "04969": "AB889X", + "04970": "AB889X", + "04971": "AB889X", + "04972": "AB889X", + "04973": "AB889X", + "04974": "AB889X", + "04975": "AB889X", + "04976": "AB889X", + "04978": "AB889X", + "04979": "AB889X", + "04981": "AB889X", + "04982": "AB889X", + "04983": "AB889X", + "04984": "AB889X", + "04985": "AB889X", + "04986": "AB889X", + "04987": "AB889X", + "04988": "AB889X", + "04989": "AB889X", + "04992": "AB889X", + "05001": "AB889X", + "05009": "AB889X", + "05030": "AB889X", + "05031": "AB889X", + "05032": "AB889X", + "05033": "AB889X", + "05034": "AB889X", + "05035": "AB889X", + "05036": "AB889X", + "05037": "AB889X", + "05038": "AB889X", + "05039": "AB889X", + "05040": "AB889X", + "05041": "AB889X", + "05042": "AB889X", + "05043": "AB889X", + "05045": "AB889X", + "05046": "AB889X", + "05047": "AB889X", + "05048": "AB889X", + "05049": "AB889X", + "05050": "AB889X", + "05051": "AB889X", + "05052": "AB889X", + "05053": "AB889X", + "05054": "AB889X", + "05055": "AB889X", + "05056": "AB889X", + "05058": "AB889X", + "05059": "AB889X", + "05060": "AB889X", + "05061": "AB889X", + "05062": "AB889X", + "05065": "AB889X", + "05067": "AB889X", + "05068": "AB889X", + "05069": "AB889X", + "05070": "AB889X", + "05071": "AB889X", + "05072": "AB889X", + "05073": "AB889X", + "05074": "AB889X", + "05075": "AB889X", + "05076": "AB889X", + "05077": "AB889X", + "05079": "AB889X", + "05081": "AB889X", + "05083": "AB889X", + "05084": "AB889X", + "05085": "AB889X", + "05086": "AB889X", + "05088": "AB889X", + "05089": "AB889X", + "05091": "AB889X", + "05101": "AB889X", + "05141": "AB889X", + "05142": "AB889X", + "05143": "AB889X", + "05144": "AB889X", + "05146": "AB889X", + "05148": "AB889X", + "05149": "AB889X", + "05150": "AB889X", + "05151": "AB889X", + "05152": "AB889X", + "05153": "AB889X", + "05154": "AB889X", + "05155": "AB889X", + "05156": "AB889X", + "05158": "AB889X", + "05159": "AB889X", + "05161": "AB889X", + "05201": "AB889X", + "05250": "AB889X", + "05251": "AB889X", + "05252": "AB889X", + "05253": "AB889X", + "05254": "AB889X", + "05255": "AB889X", + "05257": "AB889X", + "05260": "AB889X", + "05261": "AB889X", + "05262": "AB889X", + "05301": "AB889X", + "05302": "AB889X", + "05303": "AB889X", + "05304": "AB889X", + "05340": "AB889X", + "05341": "AB889X", + "05342": "AB889X", + "05343": "AB889X", + "05344": "AB889X", + "05345": "AB889X", + "05346": "AB889X", + "05350": "AB889X", + "05351": "AB889X", + "05352": "AB889X", + "05353": "AB889X", + "05354": "AB889X", + "05355": "AB889X", + "05356": "AB889X", + "05357": "AB889X", + "05358": "AB889X", + "05359": "AB889X", + "05360": "AB889X", + "05361": "AB889X", + "05362": "AB889X", + "05363": "AB889X", + "05401": "AB889X", + "05402": "AB889X", + "05403": "AB889X", + "05404": "AB889X", + "05405": "AB889X", + "05406": "AB889X", + "05407": "AB889X", + "05408": "AB889X", + "05439": "AB889X", + "05440": "AB889X", + "05441": "AB889X", + "05442": "AB889X", + "05443": "AB889X", + "05444": "AB889X", + "05445": "AB889X", + "05446": "AB889X", + "05447": "AB889X", + "05448": "AB889X", + "05449": "AB889X", + "05450": "AB889X", + "05451": "AB889X", + "05452": "AB889X", + "05453": "AB889X", + "05454": "AB889X", + "05455": "AB889X", + "05456": "AB889X", + "05457": "AB889X", + "05458": "AB889X", + "05459": "AB889X", + "05460": "AB889X", + "05461": "AB889X", + "05462": "AB889X", + "05463": "AB889X", + "05464": "AB889X", + "05465": "AB889X", + "05466": "AB889X", + "05468": "AB889X", + "05469": "AB889X", + "05470": "AB889X", + "05471": "AB889X", + "05472": "AB889X", + "05473": "AB889X", + "05474": "AB889X", + "05476": "AB889X", + "05477": "AB889X", + "05478": "AB889X", + "05479": "AB889X", + "05481": "AB889X", + "05482": "AB889X", + "05483": "AB889X", + "05485": "AB889X", + "05486": "AB889X", + "05487": "AB889X", + "05488": "AB889X", + "05489": "AB889X", + "05490": "AB889X", + "05491": "AB889X", + "05492": "AB889X", + "05494": "AB889X", + "05495": "AB889X", + "05501": "AB889X", + "05544": "AB889X", + "05601": "AB889X", + "05602": "AB889X", + "05603": "AB889X", + "05604": "AB889X", + "05609": "AB889X", + "05620": "AB889X", + "05633": "AB889X", + "05640": "AB889X", + "05641": "AB889X", + "05647": "AB889X", + "05648": "AB889X", + "05649": "AB889X", + "05650": "AB889X", + "05651": "AB889X", + "05652": "AB889X", + "05653": "AB889X", + "05654": "AB889X", + "05655": "AB889X", + "05656": "AB889X", + "05657": "AB889X", + "05658": "AB889X", + "05660": "AB889X", + "05661": "AB889X", + "05662": "AB889X", + "05663": "AB889X", + "05664": "AB889X", + "05665": "AB889X", + "05666": "AB889X", + "05667": "AB889X", + "05669": "AB889X", + "05670": "AB889X", + "05671": "AB889X", + "05672": "AB889X", + "05673": "AB889X", + "05674": "AB889X", + "05675": "AB889X", + "05676": "AB889X", + "05677": "AB889X", + "05678": "AB889X", + "05679": "AB889X", + "05680": "AB889X", + "05681": "AB889X", + "05682": "AB889X", + "05701": "AB889X", + "05702": "AB889X", + "05730": "AB889X", + "05731": "AB889X", + "05732": "AB889X", + "05733": "AB889X", + "05734": "AB889X", + "05735": "AB889X", + "05736": "AB889X", + "05737": "AB889X", + "05738": "AB889X", + "05739": "AB889X", + "05740": "AB889X", + "05741": "AB889X", + "05742": "AB889X", + "05743": "AB889X", + "05744": "AB889X", + "05745": "AB889X", + "05746": "AB889X", + "05747": "AB889X", + "05748": "AB889X", + "05750": "AB889X", + "05751": "AB889X", + "05753": "AB889X", + "05757": "AB889X", + "05758": "AB889X", + "05759": "AB889X", + "05760": "AB889X", + "05761": "AB889X", + "05762": "AB889X", + "05763": "AB889X", + "05764": "AB889X", + "05765": "AB889X", + "05766": "AB889X", + "05767": "AB889X", + "05768": "AB889X", + "05769": "AB889X", + "05770": "AB889X", + "05772": "AB889X", + "05773": "AB889X", + "05774": "AB889X", + "05775": "AB889X", + "05776": "AB889X", + "05777": "AB889X", + "05778": "AB889X", + "05819": "AB889X", + "05820": "AB889X", + "05821": "AB889X", + "05822": "AB889X", + "05823": "AB889X", + "05824": "AB889X", + "05825": "AB889X", + "05826": "AB889X", + "05827": "AB889X", + "05828": "AB889X", + "05829": "AB889X", + "05830": "AB889X", + "05832": "AB889X", + "05833": "AB889X", + "05836": "AB889X", + "05837": "AB889X", + "05838": "AB889X", + "05839": "AB889X", + "05840": "AB889X", + "05841": "AB889X", + "05842": "AB889X", + "05843": "AB889X", + "05845": "AB889X", + "05846": "AB889X", + "05847": "AB889X", + "05848": "AB889X", + "05849": "AB889X", + "05850": "AB889X", + "05851": "AB889X", + "05853": "AB889X", + "05855": "AB889X", + "05857": "AB889X", + "05858": "AB889X", + "05859": "AB889X", + "05860": "AB889X", + "05861": "AB889X", + "05862": "AB889X", + "05863": "AB889X", + "05866": "AB889X", + "05867": "AB889X", + "05868": "AB889X", + "05871": "AB889X", + "05872": "AB889X", + "05873": "AB889X", + "05874": "AB889X", + "05875": "AB889X", + "05901": "AB889X", + "05902": "AB889X", + "05903": "AB889X", + "05904": "AB889X", + "05905": "AB889X", + "05906": "AB889X", + "05907": "AB889X", + "06001": "AB890X", + "06002": "AB890X", + "06006": "AB890X", + "06010": "AB890X", + "06011": "AB890X", + "06013": "AB890X", + "06016": "AB890X", + "06018": "AB890X", + "06019": "AB890X", + "06020": "AB890X", + "06021": "AB890X", + "06022": "AB890X", + "06023": "AB890X", + "06024": "AB890X", + "06025": "AB890X", + "06026": "AB890X", + "06027": "AB890X", + "06028": "AB890X", + "06029": "AB890X", + "06030": "AB890X", + "06031": "AB890X", + "06032": "AB890X", + "06033": "AB890X", + "06034": "AB890X", + "06035": "AB890X", + "06037": "AB890X", + "06039": "AB890X", + "06040": "AB890X", + "06041": "AB890X", + "06042": "AB890X", + "06043": "AB890X", + "06045": "AB890X", + "06050": "AB890X", + "06051": "AB890X", + "06052": "AB890X", + "06053": "AB890X", + "06057": "AB890X", + "06058": "AB890X", + "06059": "AB890X", + "06060": "AB890X", + "06061": "AB890X", + "06062": "AB890X", + "06063": "AB890X", + "06064": "AB890X", + "06065": "AB890X", + "06066": "AB890X", + "06067": "AB890X", + "06068": "AB890X", + "06069": "AB890X", + "06070": "AB890X", + "06071": "AB890X", + "06072": "AB890X", + "06073": "AB890X", + "06074": "AB890X", + "06075": "AB890X", + "06076": "AB890X", + "06077": "AB890X", + "06078": "AB890X", + "06079": "AB890X", + "06080": "AB890X", + "06081": "AB890X", + "06082": "AB890X", + "06083": "AB890X", + "06084": "AB890X", + "06085": "AB890X", + "06087": "AB890X", + "06088": "AB890X", + "06089": "AB890X", + "06090": "AB890X", + "06091": "AB890X", + "06092": "AB890X", + "06093": "AB890X", + "06094": "AB890X", + "06095": "AB890X", + "06096": "AB890X", + "06098": "AB890X", + "06101": "AB890X", + "06102": "AB890X", + "06103": "AB890X", + "06104": "AB890X", + "06105": "AB890X", + "06106": "AB890X", + "06107": "AB890X", + "06108": "AB890X", + "06109": "AB890X", + "06110": "AB890X", + "06111": "AB890X", + "06112": "AB890X", + "06114": "AB890X", + "06115": "AB890X", + "06117": "AB890X", + "06118": "AB890X", + "06119": "AB890X", + "06120": "AB890X", + "06123": "AB890X", + "06126": "AB890X", + "06127": "AB890X", + "06128": "AB890X", + "06129": "AB890X", + "06131": "AB890X", + "06132": "AB890X", + "06133": "AB890X", + "06134": "AB890X", + "06137": "AB890X", + "06138": "AB890X", + "06140": "AB890X", + "06141": "AB890X", + "06142": "AB890X", + "06143": "AB890X", + "06144": "AB890X", + "06145": "AB890X", + "06146": "AB890X", + "06147": "AB890X", + "06150": "AB890X", + "06151": "AB890X", + "06152": "AB890X", + "06153": "AB890X", + "06154": "AB890X", + "06155": "AB890X", + "06156": "AB890X", + "06160": "AB890X", + "06161": "AB890X", + "06167": "AB890X", + "06176": "AB890X", + "06180": "AB890X", + "06183": "AB890X", + "06199": "AB890X", + "06226": "AB890X", + "06230": "AB890X", + "06231": "AB890X", + "06232": "AB890X", + "06233": "AB890X", + "06234": "AB890X", + "06235": "AB890X", + "06237": "AB890X", + "06238": "AB890X", + "06239": "AB890X", + "06241": "AB890X", + "06242": "AB890X", + "06243": "AB890X", + "06244": "AB890X", + "06245": "AB890X", + "06246": "AB890X", + "06247": "AB890X", + "06248": "AB890X", + "06249": "AB890X", + "06250": "AB890X", + "06251": "AB890X", + "06254": "AB890X", + "06255": "AB890X", + "06256": "AB890X", + "06258": "AB890X", + "06259": "AB890X", + "06260": "AB890X", + "06262": "AB890X", + "06263": "AB890X", + "06264": "AB890X", + "06265": "AB890X", + "06266": "AB890X", + "06267": "AB890X", + "06268": "AB890X", + "06269": "AB890X", + "06277": "AB890X", + "06278": "AB890X", + "06279": "AB890X", + "06280": "AB890X", + "06281": "AB890X", + "06282": "AB890X", + "06320": "AB890X", + "06330": "AB890X", + "06331": "AB890X", + "06332": "AB890X", + "06333": "AB890X", + "06334": "AB890X", + "06335": "AB890X", + "06336": "AB890X", + "06338": "AB890X", + "06339": "AB890X", + "06340": "AB890X", + "06349": "AB890X", + "06350": "AB890X", + "06351": "AB890X", + "06353": "AB890X", + "06354": "AB890X", + "06355": "AB890X", + "06357": "AB890X", + "06359": "AB890X", + "06360": "AB890X", + "06365": "AB890X", + "06370": "AB890X", + "06371": "AB890X", + "06372": "AB890X", + "06373": "AB890X", + "06374": "AB890X", + "06375": "AB890X", + "06376": "AB890X", + "06377": "AB890X", + "06378": "AB890X", + "06379": "AB890X", + "06380": "AB890X", + "06382": "AB890X", + "06383": "AB890X", + "06384": "AB890X", + "06385": "AB890X", + "06386": "AB890X", + "06387": "AB890X", + "06388": "AB890X", + "06389": "AB890X", + "06390": "AB890X", + "06401": "AB890X", + "06403": "AB890X", + "06404": "AB890X", + "06405": "AB890X", + "06408": "AB890X", + "06409": "AB890X", + "06410": "AB890X", + "06411": "AB890X", + "06412": "AB890X", + "06413": "AB890X", + "06414": "AB890X", + "06415": "AB890X", + "06416": "AB890X", + "06417": "AB890X", + "06418": "AB890X", + "06419": "AB890X", + "06420": "AB890X", + "06422": "AB890X", + "06423": "AB890X", + "06424": "AB890X", + "06426": "AB890X", + "06437": "AB890X", + "06438": "AB890X", + "06439": "AB890X", + "06440": "AB890X", + "06441": "AB890X", + "06442": "AB890X", + "06443": "AB890X", + "06444": "AB890X", + "06447": "AB890X", + "06450": "AB890X", + "06451": "AB890X", + "06454": "AB890X", + "06455": "AB890X", + "06456": "AB890X", + "06457": "AB890X", + "06459": "AB890X", + "06460": "AB890X", + "06461": "AB890X", + "06467": "AB890X", + "06468": "AB890X", + "06469": "AB890X", + "06470": "AB890X", + "06471": "AB890X", + "06472": "AB890X", + "06473": "AB890X", + "06474": "AB890X", + "06475": "AB890X", + "06477": "AB890X", + "06478": "AB890X", + "06479": "AB890X", + "06480": "AB890X", + "06481": "AB890X", + "06482": "AB890X", + "06483": "AB890X", + "06484": "AB890X", + "06487": "AB890X", + "06488": "AB890X", + "06489": "AB890X", + "06491": "AB890X", + "06492": "AB890X", + "06493": "AB890X", + "06494": "AB890X", + "06495": "AB890X", + "06497": "AB890X", + "06498": "AB890X", + "06501": "AB890X", + "06502": "AB890X", + "06503": "AB890X", + "06504": "AB890X", + "06505": "AB890X", + "06506": "AB890X", + "06507": "AB890X", + "06508": "AB890X", + "06509": "AB890X", + "06510": "AB890X", + "06511": "AB890X", + "06512": "AB890X", + "06513": "AB890X", + "06514": "AB890X", + "06515": "AB890X", + "06516": "AB890X", + "06517": "AB890X", + "06518": "AB890X", + "06519": "AB890X", + "06520": "AB890X", + "06521": "AB890X", + "06524": "AB890X", + "06525": "AB890X", + "06530": "AB890X", + "06531": "AB890X", + "06532": "AB890X", + "06533": "AB890X", + "06534": "AB890X", + "06535": "AB890X", + "06536": "AB890X", + "06537": "AB890X", + "06538": "AB890X", + "06540": "AB890X", + "06601": "AB890X", + "06602": "AB890X", + "06604": "AB890X", + "06605": "AB890X", + "06606": "AB890X", + "06607": "AB890X", + "06608": "AB890X", + "06610": "AB890X", + "06611": "AB890X", + "06612": "AB890X", + "06614": "AB890X", + "06615": "AB890X", + "06650": "AB890X", + "06673": "AB890X", + "06699": "AB890X", + "06701": "AB890X", + "06702": "AB890X", + "06703": "AB890X", + "06704": "AB890X", + "06705": "AB890X", + "06706": "AB890X", + "06708": "AB890X", + "06710": "AB890X", + "06712": "AB890X", + "06716": "AB890X", + "06720": "AB890X", + "06721": "AB890X", + "06722": "AB890X", + "06723": "AB890X", + "06724": "AB890X", + "06725": "AB890X", + "06726": "AB890X", + "06749": "AB890X", + "06750": "AB890X", + "06751": "AB890X", + "06752": "AB890X", + "06753": "AB890X", + "06754": "AB890X", + "06755": "AB890X", + "06756": "AB890X", + "06757": "AB890X", + "06758": "AB890X", + "06759": "AB890X", + "06762": "AB890X", + "06763": "AB890X", + "06770": "AB890X", + "06776": "AB890X", + "06777": "AB890X", + "06778": "AB890X", + "06779": "AB890X", + "06781": "AB890X", + "06782": "AB890X", + "06783": "AB890X", + "06784": "AB890X", + "06785": "AB890X", + "06786": "AB890X", + "06787": "AB890X", + "06790": "AB890X", + "06791": "AB890X", + "06792": "AB890X", + "06793": "AB890X", + "06794": "AB890X", + "06795": "AB890X", + "06796": "AB890X", + "06798": "AB890X", + "06801": "AB890X", + "06804": "AB890X", + "06807": "AB890X", + "06810": "AB890X", + "06811": "AB890X", + "06812": "AB890X", + "06813": "AB890X", + "06814": "AB890X", + "06816": "AB890X", + "06817": "AB890X", + "06820": "AB890X", + "06824": "AB890X", + "06825": "AB890X", + "06828": "AB890X", + "06829": "AB890X", + "06830": "AB890X", + "06831": "AB890X", + "06832": "AB890X", + "06836": "AB890X", + "06838": "AB890X", + "06840": "AB890X", + "06842": "AB890X", + "06850": "AB890X", + "06851": "AB890X", + "06852": "AB890X", + "06853": "AB890X", + "06854": "AB890X", + "06855": "AB890X", + "06856": "AB890X", + "06857": "AB890X", + "06858": "AB890X", + "06859": "AB890X", + "06860": "AB890X", + "06870": "AB890X", + "06875": "AB890X", + "06876": "AB890X", + "06877": "AB890X", + "06878": "AB890X", + "06879": "AB890X", + "06880": "AB890X", + "06881": "AB890X", + "06883": "AB890X", + "06888": "AB890X", + "06889": "AB890X", + "06890": "AB890X", + "06896": "AB890X", + "06897": "AB890X", + "06901": "AB890X", + "06902": "AB890X", + "06903": "AB890X", + "06904": "AB890X", + "06905": "AB890X", + "06906": "AB890X", + "06907": "AB890X", + "06910": "AB890X", + "06911": "AB890X", + "06912": "AB890X", + "06913": "AB890X", + "06914": "AB890X", + "06920": "AB890X", + "06921": "AB890X", + "06922": "AB890X", + "06925": "AB890X", + "06926": "AB890X", + "06927": "AB890X", + "06928": "AB890X", + "07001": "AB890X", + "07002": "AB890X", + "07003": "AB890X", + "07004": "AB890X", + "07005": "AB890X", + "07006": "AB890X", + "07007": "AB890X", + "07008": "AB890X", + "07009": "AB890X", + "07010": "AB890X", + "07011": "AB890X", + "07012": "AB890X", + "07013": "AB890X", + "07014": "AB890X", + "07015": "AB890X", + "07016": "AB890X", + "07017": "AB890X", + "07018": "AB890X", + "07019": "AB890X", + "07020": "AB890X", + "07021": "AB890X", + "07022": "AB890X", + "07023": "AB890X", + "07024": "AB890X", + "07026": "AB890X", + "07027": "AB890X", + "07028": "AB890X", + "07029": "AB890X", + "07030": "AB890X", + "07031": "AB890X", + "07032": "AB890X", + "07033": "AB890X", + "07034": "AB890X", + "07035": "AB890X", + "07036": "AB890X", + "07039": "AB890X", + "07040": "AB890X", + "07041": "AB890X", + "07042": "AB890X", + "07043": "AB890X", + "07044": "AB890X", + "07045": "AB890X", + "07046": "AB890X", + "07047": "AB890X", + "07050": "AB890X", + "07051": "AB890X", + "07052": "AB890X", + "07054": "AB890X", + "07055": "AB890X", + "07057": "AB890X", + "07058": "AB890X", + "07059": "AB890X", + "07060": "AB890X", + "07061": "AB890X", + "07062": "AB890X", + "07063": "AB890X", + "07064": "AB890X", + "07065": "AB890X", + "07066": "AB890X", + "07067": "AB890X", + "07068": "AB890X", + "07069": "AB890X", + "07070": "AB890X", + "07071": "AB890X", + "07072": "AB890X", + "07073": "AB890X", + "07074": "AB890X", + "07075": "AB890X", + "07076": "AB890X", + "07077": "AB890X", + "07078": "AB890X", + "07079": "AB890X", + "07080": "AB890X", + "07081": "AB890X", + "07082": "AB890X", + "07083": "AB890X", + "07086": "AB890X", + "07087": "AB890X", + "07088": "AB890X", + "07090": "AB890X", + "07091": "AB890X", + "07092": "AB890X", + "07093": "AB890X", + "07094": "AB890X", + "07095": "AB890X", + "07096": "AB890X", + "07097": "AB890X", + "07099": "AB890X", + "07101": "AB890X", + "07102": "AB890X", + "07103": "AB890X", + "07104": "AB890X", + "07105": "AB890X", + "07106": "AB890X", + "07107": "AB890X", + "07108": "AB890X", + "07109": "AB890X", + "07110": "AB890X", + "07111": "AB890X", + "07112": "AB890X", + "07114": "AB890X", + "07175": "AB890X", + "07182": "AB890X", + "07184": "AB890X", + "07188": "AB890X", + "07189": "AB890X", + "07191": "AB890X", + "07192": "AB890X", + "07193": "AB890X", + "07194": "AB890X", + "07195": "AB890X", + "07198": "AB890X", + "07199": "AB890X", + "07201": "AB890X", + "07202": "AB890X", + "07203": "AB890X", + "07204": "AB890X", + "07205": "AB890X", + "07206": "AB890X", + "07207": "AB890X", + "07208": "AB890X", + "07302": "AB890X", + "07303": "AB890X", + "07304": "AB890X", + "07305": "AB890X", + "07306": "AB890X", + "07307": "AB890X", + "07308": "AB890X", + "07309": "AB890X", + "07310": "AB890X", + "07311": "AB890X", + "07395": "AB890X", + "07399": "AB890X", + "07401": "AB890X", + "07403": "AB890X", + "07405": "AB890X", + "07407": "AB890X", + "07410": "AB890X", + "07416": "AB890X", + "07417": "AB890X", + "07418": "AB890X", + "07419": "AB890X", + "07420": "AB890X", + "07421": "AB890X", + "07422": "AB890X", + "07423": "AB890X", + "07424": "AB890X", + "07428": "AB890X", + "07430": "AB890X", + "07432": "AB890X", + "07435": "AB890X", + "07436": "AB890X", + "07438": "AB890X", + "07439": "AB890X", + "07440": "AB890X", + "07442": "AB890X", + "07444": "AB890X", + "07446": "AB890X", + "07450": "AB890X", + "07451": "AB890X", + "07452": "AB890X", + "07456": "AB890X", + "07457": "AB890X", + "07458": "AB890X", + "07460": "AB890X", + "07461": "AB890X", + "07462": "AB890X", + "07463": "AB890X", + "07465": "AB890X", + "07470": "AB890X", + "07474": "AB890X", + "07477": "AB890X", + "07480": "AB890X", + "07481": "AB890X", + "07495": "AB890X", + "07501": "AB890X", + "07502": "AB890X", + "07503": "AB890X", + "07504": "AB890X", + "07505": "AB890X", + "07506": "AB890X", + "07507": "AB890X", + "07508": "AB890X", + "07509": "AB890X", + "07510": "AB890X", + "07511": "AB890X", + "07512": "AB890X", + "07513": "AB890X", + "07514": "AB890X", + "07522": "AB890X", + "07524": "AB890X", + "07533": "AB890X", + "07538": "AB890X", + "07543": "AB890X", + "07544": "AB890X", + "07601": "AB890X", + "07602": "AB890X", + "07603": "AB890X", + "07604": "AB890X", + "07605": "AB890X", + "07606": "AB890X", + "07607": "AB890X", + "07608": "AB890X", + "07620": "AB890X", + "07621": "AB890X", + "07624": "AB890X", + "07626": "AB890X", + "07627": "AB890X", + "07628": "AB890X", + "07630": "AB890X", + "07631": "AB890X", + "07632": "AB890X", + "07640": "AB890X", + "07641": "AB890X", + "07642": "AB890X", + "07643": "AB890X", + "07644": "AB890X", + "07645": "AB890X", + "07646": "AB890X", + "07647": "AB890X", + "07648": "AB890X", + "07649": "AB890X", + "07650": "AB890X", + "07652": "AB890X", + "07653": "AB890X", + "07656": "AB890X", + "07657": "AB890X", + "07660": "AB890X", + "07661": "AB890X", + "07662": "AB890X", + "07663": "AB890X", + "07666": "AB890X", + "07670": "AB890X", + "07675": "AB890X", + "07676": "AB890X", + "07677": "AB890X", + "07699": "AB890X", + "07701": "AB890X", + "07702": "AB890X", + "07703": "AB890X", + "07704": "AB890X", + "07709": "AB890X", + "07710": "AB890X", + "07711": "AB890X", + "07712": "AB890X", + "07715": "AB890X", + "07716": "AB890X", + "07717": "AB890X", + "07718": "AB890X", + "07719": "AB890X", + "07720": "AB890X", + "07721": "AB890X", + "07722": "AB890X", + "07723": "AB890X", + "07724": "AB890X", + "07726": "AB890X", + "07727": "AB890X", + "07728": "AB890X", + "07730": "AB890X", + "07731": "AB890X", + "07732": "AB890X", + "07733": "AB890X", + "07734": "AB890X", + "07735": "AB890X", + "07737": "AB890X", + "07738": "AB890X", + "07739": "AB890X", + "07740": "AB890X", + "07746": "AB890X", + "07747": "AB890X", + "07748": "AB890X", + "07750": "AB890X", + "07751": "AB890X", + "07752": "AB890X", + "07753": "AB890X", + "07754": "AB890X", + "07755": "AB890X", + "07756": "AB890X", + "07757": "AB890X", + "07758": "AB890X", + "07760": "AB890X", + "07762": "AB890X", + "07763": "AB890X", + "07764": "AB890X", + "07765": "AB890X", + "07777": "AB890X", + "07799": "AB890X", + "07801": "AB890X", + "07802": "AB890X", + "07803": "AB890X", + "07806": "AB890X", + "07820": "AB890X", + "07821": "AB890X", + "07822": "AB890X", + "07823": "AB890X", + "07825": "AB890X", + "07826": "AB890X", + "07827": "AB890X", + "07828": "AB890X", + "07829": "AB890X", + "07830": "AB890X", + "07831": "AB890X", + "07832": "AB890X", + "07833": "AB890X", + "07834": "AB890X", + "07836": "AB890X", + "07837": "AB890X", + "07838": "AB890X", + "07839": "AB890X", + "07840": "AB890X", + "07842": "AB890X", + "07843": "AB890X", + "07844": "AB890X", + "07845": "AB890X", + "07846": "AB890X", + "07847": "AB890X", + "07848": "AB890X", + "07849": "AB890X", + "07850": "AB890X", + "07851": "AB890X", + "07852": "AB890X", + "07853": "AB890X", + "07855": "AB890X", + "07856": "AB890X", + "07857": "AB890X", + "07860": "AB890X", + "07863": "AB890X", + "07865": "AB890X", + "07866": "AB890X", + "07869": "AB890X", + "07870": "AB890X", + "07871": "AB890X", + "07874": "AB890X", + "07875": "AB890X", + "07876": "AB890X", + "07877": "AB890X", + "07878": "AB890X", + "07879": "AB890X", + "07880": "AB890X", + "07881": "AB890X", + "07882": "AB890X", + "07885": "AB890X", + "07890": "AB890X", + "07901": "AB890X", + "07902": "AB890X", + "07920": "AB890X", + "07921": "AB890X", + "07922": "AB890X", + "07924": "AB890X", + "07926": "AB890X", + "07927": "AB890X", + "07928": "AB890X", + "07930": "AB890X", + "07931": "AB890X", + "07932": "AB890X", + "07933": "AB890X", + "07934": "AB890X", + "07935": "AB890X", + "07936": "AB890X", + "07938": "AB890X", + "07939": "AB890X", + "07940": "AB890X", + "07945": "AB890X", + "07946": "AB890X", + "07950": "AB890X", + "07960": "AB890X", + "07961": "AB890X", + "07962": "AB890X", + "07963": "AB890X", + "07970": "AB890X", + "07974": "AB890X", + "07976": "AB890X", + "07977": "AB890X", + "07978": "AB890X", + "07979": "AB890X", + "07980": "AB890X", + "07981": "AB890X", + "07983": "AB890X", + "07999": "AB890X", + "08001": "AB890X", + "08002": "AB890X", + "08003": "AB890X", + "08004": "AB890X", + "08005": "AB890X", + "08006": "AB890X", + "08007": "AB890X", + "08008": "AB890X", + "08009": "AB890X", + "08010": "AB890X", + "08011": "AB890X", + "08012": "AB890X", + "08014": "AB890X", + "08015": "AB890X", + "08016": "AB890X", + "08018": "AB890X", + "08019": "AB890X", + "08020": "AB890X", + "08021": "AB890X", + "08022": "AB890X", + "08023": "AB890X", + "08025": "AB890X", + "08026": "AB890X", + "08027": "AB890X", + "08028": "AB890X", + "08029": "AB890X", + "08030": "AB890X", + "08031": "AB890X", + "08032": "AB890X", + "08033": "AB890X", + "08034": "AB890X", + "08035": "AB890X", + "08036": "AB890X", + "08037": "AB890X", + "08038": "AB890X", + "08039": "AB890X", + "08041": "AB890X", + "08042": "AB890X", + "08043": "AB890X", + "08045": "AB890X", + "08046": "AB890X", + "08048": "AB890X", + "08049": "AB890X", + "08050": "AB890X", + "08051": "AB890X", + "08052": "AB890X", + "08053": "AB890X", + "08054": "AB890X", + "08055": "AB890X", + "08056": "AB890X", + "08057": "AB890X", + "08059": "AB890X", + "08060": "AB890X", + "08061": "AB890X", + "08062": "AB890X", + "08063": "AB890X", + "08064": "AB890X", + "08065": "AB890X", + "08066": "AB890X", + "08067": "AB890X", + "08068": "AB890X", + "08069": "AB890X", + "08070": "AB890X", + "08071": "AB890X", + "08072": "AB890X", + "08073": "AB890X", + "08074": "AB890X", + "08075": "AB890X", + "08076": "AB890X", + "08077": "AB890X", + "08078": "AB890X", + "08079": "AB890X", + "08080": "AB890X", + "08081": "AB890X", + "08083": "AB890X", + "08084": "AB890X", + "08085": "AB890X", + "08086": "AB890X", + "08087": "AB890X", + "08088": "AB890X", + "08089": "AB890X", + "08090": "AB890X", + "08091": "AB890X", + "08092": "AB890X", + "08093": "AB890X", + "08094": "AB890X", + "08095": "AB890X", + "08096": "AB890X", + "08097": "AB890X", + "08098": "AB890X", + "08099": "AB890X", + "08101": "AB890X", + "08102": "AB890X", + "08103": "AB890X", + "08104": "AB890X", + "08105": "AB890X", + "08106": "AB890X", + "08107": "AB890X", + "08108": "AB890X", + "08109": "AB890X", + "08110": "AB890X", + "08201": "AB890X", + "08202": "AB890X", + "08203": "AB890X", + "08204": "AB890X", + "08205": "AB890X", + "08210": "AB890X", + "08212": "AB890X", + "08213": "AB890X", + "08214": "AB890X", + "08215": "AB890X", + "08217": "AB890X", + "08218": "AB890X", + "08219": "AB890X", + "08220": "AB890X", + "08221": "AB890X", + "08223": "AB890X", + "08224": "AB890X", + "08225": "AB890X", + "08226": "AB890X", + "08230": "AB890X", + "08231": "AB890X", + "08232": "AB890X", + "08234": "AB890X", + "08240": "AB890X", + "08241": "AB890X", + "08242": "AB890X", + "08243": "AB890X", + "08244": "AB890X", + "08245": "AB890X", + "08246": "AB890X", + "08247": "AB890X", + "08248": "AB890X", + "08250": "AB890X", + "08251": "AB890X", + "08252": "AB890X", + "08260": "AB890X", + "08270": "AB890X", + "08302": "AB890X", + "08310": "AB890X", + "08311": "AB890X", + "08312": "AB890X", + "08313": "AB890X", + "08314": "AB890X", + "08315": "AB890X", + "08316": "AB890X", + "08317": "AB890X", + "08318": "AB890X", + "08319": "AB890X", + "08320": "AB890X", + "08321": "AB890X", + "08322": "AB890X", + "08323": "AB890X", + "08324": "AB890X", + "08326": "AB890X", + "08327": "AB890X", + "08328": "AB890X", + "08329": "AB890X", + "08330": "AB890X", + "08332": "AB890X", + "08340": "AB890X", + "08341": "AB890X", + "08342": "AB890X", + "08343": "AB890X", + "08344": "AB890X", + "08345": "AB890X", + "08346": "AB890X", + "08347": "AB890X", + "08348": "AB890X", + "08349": "AB890X", + "08350": "AB890X", + "08352": "AB890X", + "08353": "AB890X", + "08360": "AB890X", + "08361": "AB890X", + "08362": "AB890X", + "08401": "AB890X", + "08402": "AB890X", + "08403": "AB890X", + "08404": "AB890X", + "08405": "AB890X", + "08406": "AB890X", + "08501": "AB890X", + "08502": "AB890X", + "08504": "AB890X", + "08505": "AB890X", + "08510": "AB890X", + "08511": "AB890X", + "08512": "AB890X", + "08514": "AB890X", + "08515": "AB890X", + "08518": "AB890X", + "08520": "AB890X", + "08525": "AB890X", + "08526": "AB890X", + "08527": "AB890X", + "08528": "AB890X", + "08530": "AB890X", + "08533": "AB890X", + "08534": "AB890X", + "08535": "AB890X", + "08536": "AB890X", + "08540": "AB890X", + "08541": "AB890X", + "08542": "AB890X", + "08543": "AB890X", + "08544": "AB890X", + "08550": "AB890X", + "08551": "AB890X", + "08553": "AB890X", + "08554": "AB890X", + "08555": "AB890X", + "08556": "AB890X", + "08557": "AB890X", + "08558": "AB890X", + "08559": "AB890X", + "08560": "AB890X", + "08561": "AB890X", + "08562": "AB890X", + "08601": "AB890X", + "08602": "AB890X", + "08603": "AB890X", + "08604": "AB890X", + "08605": "AB890X", + "08606": "AB890X", + "08607": "AB890X", + "08608": "AB890X", + "08609": "AB890X", + "08610": "AB890X", + "08611": "AB890X", + "08618": "AB890X", + "08619": "AB890X", + "08620": "AB890X", + "08625": "AB890X", + "08628": "AB890X", + "08629": "AB890X", + "08638": "AB890X", + "08640": "AB890X", + "08641": "AB890X", + "08645": "AB890X", + "08646": "AB890X", + "08647": "AB890X", + "08648": "AB890X", + "08650": "AB890X", + "08666": "AB890X", + "08677": "AB890X", + "08690": "AB890X", + "08691": "AB890X", + "08695": "AB890X", + "08701": "AB890X", + "08720": "AB890X", + "08721": "AB890X", + "08722": "AB890X", + "08723": "AB890X", + "08724": "AB890X", + "08730": "AB890X", + "08731": "AB890X", + "08732": "AB890X", + "08733": "AB890X", + "08734": "AB890X", + "08735": "AB890X", + "08736": "AB890X", + "08738": "AB890X", + "08739": "AB890X", + "08740": "AB890X", + "08741": "AB890X", + "08742": "AB890X", + "08750": "AB890X", + "08751": "AB890X", + "08752": "AB890X", + "08753": "AB890X", + "08754": "AB890X", + "08755": "AB890X", + "08756": "AB890X", + "08757": "AB890X", + "08758": "AB890X", + "08759": "AB890X", + "08801": "AB890X", + "08802": "AB890X", + "08803": "AB890X", + "08804": "AB890X", + "08805": "AB890X", + "08807": "AB890X", + "08808": "AB890X", + "08809": "AB890X", + "08810": "AB890X", + "08812": "AB890X", + "08816": "AB890X", + "08817": "AB890X", + "08818": "AB890X", + "08820": "AB890X", + "08821": "AB890X", + "08822": "AB890X", + "08823": "AB890X", + "08824": "AB890X", + "08825": "AB890X", + "08826": "AB890X", + "08827": "AB890X", + "08828": "AB890X", + "08829": "AB890X", + "08830": "AB890X", + "08831": "AB890X", + "08832": "AB890X", + "08833": "AB890X", + "08834": "AB890X", + "08835": "AB890X", + "08836": "AB890X", + "08837": "AB890X", + "08840": "AB890X", + "08844": "AB890X", + "08846": "AB890X", + "08848": "AB890X", + "08850": "AB890X", + "08852": "AB890X", + "08853": "AB890X", + "08854": "AB890X", + "08855": "AB890X", + "08857": "AB890X", + "08858": "AB890X", + "08859": "AB890X", + "08861": "AB890X", + "08862": "AB890X", + "08863": "AB890X", + "08865": "AB890X", + "08867": "AB890X", + "08868": "AB890X", + "08869": "AB890X", + "08870": "AB890X", + "08871": "AB890X", + "08872": "AB890X", + "08873": "AB890X", + "08875": "AB890X", + "08876": "AB890X", + "08879": "AB890X", + "08880": "AB890X", + "08882": "AB890X", + "08884": "AB890X", + "08885": "AB890X", + "08886": "AB890X", + "08887": "AB890X", + "08888": "AB890X", + "08889": "AB890X", + "08890": "AB890X", + "08896": "AB890X", + "08899": "AB890X", + "08901": "AB890X", + "08902": "AB890X", + "08903": "AB890X", + "08904": "AB890X", + "08905": "AB890X", + "08906": "AB890X", + "08922": "AB890X", + "08933": "AB890X", + "08988": "AB890X", + "08989": "AB890X", + "10001": "AB890X", + "10002": "AB890X", + "10003": "AB890X", + "10004": "AB890X", + "10005": "AB890X", + "10006": "AB890X", + "10007": "AB890X", + "10008": "AB890X", + "10009": "AB890X", + "10010": "AB890X", + "10011": "AB890X", + "10012": "AB890X", + "10013": "AB890X", + "10014": "AB890X", + "10015": "AB890X", + "10016": "AB890X", + "10017": "AB890X", + "10018": "AB890X", + "10019": "AB890X", + "10020": "AB890X", + "10021": "AB890X", + "10022": "AB890X", + "10023": "AB890X", + "10024": "AB890X", + "10025": "AB890X", + "10026": "AB890X", + "10027": "AB890X", + "10028": "AB890X", + "10029": "AB890X", + "10030": "AB890X", + "10031": "AB890X", + "10032": "AB890X", + "10033": "AB890X", + "10034": "AB890X", + "10035": "AB890X", + "10036": "AB890X", + "10037": "AB890X", + "10038": "AB890X", + "10039": "AB890X", + "10040": "AB890X", + "10041": "AB890X", + "10043": "AB890X", + "10044": "AB890X", + "10045": "AB890X", + "10046": "AB890X", + "10047": "AB890X", + "10048": "AB890X", + "10055": "AB890X", + "10060": "AB890X", + "10069": "AB890X", + "10072": "AB890X", + "10079": "AB890X", + "10080": "AB890X", + "10081": "AB890X", + "10082": "AB890X", + "10087": "AB890X", + "10090": "AB890X", + "10094": "AB890X", + "10095": "AB890X", + "10096": "AB890X", + "10098": "AB890X", + "10099": "AB890X", + "10101": "AB890X", + "10102": "AB890X", + "10103": "AB890X", + "10104": "AB890X", + "10105": "AB890X", + "10106": "AB890X", + "10107": "AB890X", + "10108": "AB890X", + "10109": "AB890X", + "10110": "AB890X", + "10111": "AB890X", + "10112": "AB890X", + "10113": "AB890X", + "10114": "AB890X", + "10115": "AB890X", + "10116": "AB890X", + "10117": "AB890X", + "10118": "AB890X", + "10119": "AB890X", + "10120": "AB890X", + "10121": "AB890X", + "10122": "AB890X", + "10123": "AB890X", + "10124": "AB890X", + "10125": "AB890X", + "10126": "AB890X", + "10128": "AB890X", + "10129": "AB890X", + "10130": "AB890X", + "10131": "AB890X", + "10132": "AB890X", + "10133": "AB890X", + "10138": "AB890X", + "10149": "AB890X", + "10150": "AB890X", + "10151": "AB890X", + "10152": "AB890X", + "10153": "AB890X", + "10154": "AB890X", + "10155": "AB890X", + "10156": "AB890X", + "10157": "AB890X", + "10158": "AB890X", + "10159": "AB890X", + "10160": "AB890X", + "10161": "AB890X", + "10162": "AB890X", + "10163": "AB890X", + "10164": "AB890X", + "10165": "AB890X", + "10166": "AB890X", + "10167": "AB890X", + "10168": "AB890X", + "10169": "AB890X", + "10170": "AB890X", + "10171": "AB890X", + "10172": "AB890X", + "10173": "AB890X", + "10174": "AB890X", + "10175": "AB890X", + "10176": "AB890X", + "10177": "AB890X", + "10178": "AB890X", + "10179": "AB890X", + "10184": "AB890X", + "10185": "AB890X", + "10196": "AB890X", + "10197": "AB890X", + "10199": "AB890X", + "10203": "AB890X", + "10211": "AB890X", + "10212": "AB890X", + "10213": "AB890X", + "10242": "AB890X", + "10249": "AB890X", + "10256": "AB890X", + "10257": "AB890X", + "10258": "AB890X", + "10259": "AB890X", + "10260": "AB890X", + "10261": "AB890X", + "10265": "AB890X", + "10268": "AB890X", + "10269": "AB890X", + "10270": "AB890X", + "10271": "AB890X", + "10272": "AB890X", + "10273": "AB890X", + "10274": "AB890X", + "10275": "AB890X", + "10276": "AB890X", + "10277": "AB890X", + "10278": "AB890X", + "10279": "AB890X", + "10280": "AB890X", + "10281": "AB890X", + "10282": "AB890X", + "10285": "AB890X", + "10286": "AB890X", + "10292": "AB890X", + "10301": "AB890X", + "10302": "AB890X", + "10303": "AB890X", + "10304": "AB890X", + "10305": "AB890X", + "10306": "AB890X", + "10307": "AB890X", + "10308": "AB890X", + "10309": "AB890X", + "10310": "AB890X", + "10311": "AB890X", + "10312": "AB890X", + "10313": "AB890X", + "10314": "AB890X", + "10451": "AB890X", + "10452": "AB890X", + "10453": "AB890X", + "10454": "AB890X", + "10455": "AB890X", + "10456": "AB890X", + "10457": "AB890X", + "10458": "AB890X", + "10459": "AB890X", + "10460": "AB890X", + "10461": "AB890X", + "10462": "AB890X", + "10463": "AB890X", + "10464": "AB890X", + "10465": "AB890X", + "10466": "AB890X", + "10467": "AB890X", + "10468": "AB890X", + "10469": "AB890X", + "10470": "AB890X", + "10471": "AB890X", + "10472": "AB890X", + "10473": "AB890X", + "10474": "AB890X", + "10475": "AB890X", + "10499": "AB890X", + "10501": "AB890X", + "10502": "AB890X", + "10503": "AB890X", + "10504": "AB890X", + "10505": "AB890X", + "10506": "AB890X", + "10507": "AB890X", + "10509": "AB890X", + "10510": "AB890X", + "10511": "AB890X", + "10512": "AB890X", + "10514": "AB890X", + "10516": "AB890X", + "10517": "AB890X", + "10518": "AB890X", + "10519": "AB890X", + "10520": "AB890X", + "10521": "AB890X", + "10522": "AB890X", + "10523": "AB890X", + "10524": "AB890X", + "10526": "AB890X", + "10527": "AB890X", + "10528": "AB890X", + "10530": "AB890X", + "10532": "AB890X", + "10533": "AB890X", + "10535": "AB890X", + "10536": "AB890X", + "10537": "AB890X", + "10538": "AB890X", + "10540": "AB890X", + "10541": "AB890X", + "10542": "AB890X", + "10543": "AB890X", + "10545": "AB890X", + "10546": "AB890X", + "10547": "AB890X", + "10548": "AB890X", + "10549": "AB890X", + "10550": "AB890X", + "10551": "AB890X", + "10552": "AB890X", + "10553": "AB890X", + "10557": "AB890X", + "10558": "AB890X", + "10560": "AB890X", + "10562": "AB890X", + "10566": "AB890X", + "10567": "AB890X", + "10570": "AB890X", + "10571": "AB890X", + "10572": "AB890X", + "10573": "AB890X", + "10576": "AB890X", + "10577": "AB890X", + "10578": "AB890X", + "10579": "AB890X", + "10580": "AB890X", + "10583": "AB890X", + "10587": "AB890X", + "10588": "AB890X", + "10589": "AB890X", + "10590": "AB890X", + "10591": "AB890X", + "10594": "AB890X", + "10595": "AB890X", + "10596": "AB890X", + "10597": "AB890X", + "10598": "AB890X", + "10601": "AB890X", + "10602": "AB890X", + "10603": "AB890X", + "10604": "AB890X", + "10605": "AB890X", + "10606": "AB890X", + "10607": "AB890X", + "10610": "AB890X", + "10701": "AB890X", + "10702": "AB890X", + "10703": "AB890X", + "10704": "AB890X", + "10705": "AB890X", + "10706": "AB890X", + "10707": "AB890X", + "10708": "AB890X", + "10709": "AB890X", + "10710": "AB890X", + "10801": "AB890X", + "10802": "AB890X", + "10803": "AB890X", + "10804": "AB890X", + "10805": "AB890X", + "10901": "AB890X", + "10910": "AB890X", + "10911": "AB890X", + "10912": "AB890X", + "10913": "AB890X", + "10914": "AB890X", + "10915": "AB890X", + "10916": "AB890X", + "10917": "AB890X", + "10918": "AB890X", + "10919": "AB890X", + "10920": "AB890X", + "10921": "AB890X", + "10922": "AB890X", + "10923": "AB890X", + "10924": "AB890X", + "10925": "AB890X", + "10926": "AB890X", + "10927": "AB890X", + "10928": "AB890X", + "10930": "AB890X", + "10931": "AB890X", + "10932": "AB890X", + "10933": "AB890X", + "10940": "AB890X", + "10941": "AB890X", + "10943": "AB890X", + "10949": "AB890X", + "10950": "AB890X", + "10952": "AB890X", + "10953": "AB890X", + "10954": "AB890X", + "10956": "AB890X", + "10958": "AB890X", + "10959": "AB890X", + "10960": "AB890X", + "10962": "AB890X", + "10963": "AB890X", + "10964": "AB890X", + "10965": "AB890X", + "10968": "AB890X", + "10969": "AB890X", + "10970": "AB890X", + "10973": "AB890X", + "10974": "AB890X", + "10975": "AB890X", + "10976": "AB890X", + "10977": "AB890X", + "10979": "AB890X", + "10980": "AB890X", + "10981": "AB890X", + "10982": "AB890X", + "10983": "AB890X", + "10984": "AB890X", + "10985": "AB890X", + "10986": "AB890X", + "10987": "AB890X", + "10988": "AB890X", + "10989": "AB890X", + "10990": "AB890X", + "10992": "AB890X", + "10993": "AB890X", + "10994": "AB890X", + "10996": "AB890X", + "10997": "AB890X", + "10998": "AB890X", + "11001": "AB890X", + "11002": "AB890X", + "11003": "AB890X", + "11004": "AB890X", + "11005": "AB890X", + "11010": "AB890X", + "11020": "AB890X", + "11021": "AB890X", + "11022": "AB890X", + "11023": "AB890X", + "11024": "AB890X", + "11025": "AB890X", + "11026": "AB890X", + "11027": "AB890X", + "11030": "AB890X", + "11040": "AB890X", + "11041": "AB890X", + "11042": "AB890X", + "11043": "AB890X", + "11044": "AB890X", + "11050": "AB890X", + "11051": "AB890X", + "11052": "AB890X", + "11053": "AB890X", + "11054": "AB890X", + "11055": "AB890X", + "11096": "AB890X", + "11099": "AB890X", + "11101": "AB890X", + "11102": "AB890X", + "11103": "AB890X", + "11104": "AB890X", + "11105": "AB890X", + "11106": "AB890X", + "11109": "AB890X", + "11120": "AB890X", + "11201": "AB890X", + "11202": "AB890X", + "11203": "AB890X", + "11204": "AB890X", + "11205": "AB890X", + "11206": "AB890X", + "11207": "AB890X", + "11208": "AB890X", + "11209": "AB890X", + "11210": "AB890X", + "11211": "AB890X", + "11212": "AB890X", + "11213": "AB890X", + "11214": "AB890X", + "11215": "AB890X", + "11216": "AB890X", + "11217": "AB890X", + "11218": "AB890X", + "11219": "AB890X", + "11220": "AB890X", + "11221": "AB890X", + "11222": "AB890X", + "11223": "AB890X", + "11224": "AB890X", + "11225": "AB890X", + "11226": "AB890X", + "11228": "AB890X", + "11229": "AB890X", + "11230": "AB890X", + "11231": "AB890X", + "11232": "AB890X", + "11233": "AB890X", + "11234": "AB890X", + "11235": "AB890X", + "11236": "AB890X", + "11237": "AB890X", + "11238": "AB890X", + "11239": "AB890X", + "11240": "AB890X", + "11241": "AB890X", + "11242": "AB890X", + "11243": "AB890X", + "11244": "AB890X", + "11245": "AB890X", + "11247": "AB890X", + "11248": "AB890X", + "11249": "AB890X", + "11251": "AB890X", + "11252": "AB890X", + "11254": "AB890X", + "11255": "AB890X", + "11256": "AB890X", + "11351": "AB890X", + "11352": "AB890X", + "11354": "AB890X", + "11355": "AB890X", + "11356": "AB890X", + "11357": "AB890X", + "11358": "AB890X", + "11359": "AB890X", + "11360": "AB890X", + "11361": "AB890X", + "11362": "AB890X", + "11363": "AB890X", + "11364": "AB890X", + "11365": "AB890X", + "11366": "AB890X", + "11367": "AB890X", + "11368": "AB890X", + "11369": "AB890X", + "11370": "AB890X", + "11371": "AB890X", + "11372": "AB890X", + "11373": "AB890X", + "11374": "AB890X", + "11375": "AB890X", + "11377": "AB890X", + "11378": "AB890X", + "11379": "AB890X", + "11380": "AB890X", + "11381": "AB890X", + "11385": "AB890X", + "11386": "AB890X", + "11390": "AB890X", + "11405": "AB890X", + "11411": "AB890X", + "11412": "AB890X", + "11413": "AB890X", + "11414": "AB890X", + "11415": "AB890X", + "11416": "AB890X", + "11417": "AB890X", + "11418": "AB890X", + "11419": "AB890X", + "11420": "AB890X", + "11421": "AB890X", + "11422": "AB890X", + "11423": "AB890X", + "11424": "AB890X", + "11425": "AB890X", + "11426": "AB890X", + "11427": "AB890X", + "11428": "AB890X", + "11429": "AB890X", + "11430": "AB890X", + "11431": "AB890X", + "11432": "AB890X", + "11433": "AB890X", + "11434": "AB890X", + "11435": "AB890X", + "11436": "AB890X", + "11439": "AB890X", + "11451": "AB890X", + "11499": "AB890X", + "11501": "AB890X", + "11507": "AB890X", + "11509": "AB890X", + "11510": "AB890X", + "11514": "AB890X", + "11516": "AB890X", + "11518": "AB890X", + "11520": "AB890X", + "11530": "AB890X", + "11531": "AB890X", + "11535": "AB890X", + "11536": "AB890X", + "11542": "AB890X", + "11545": "AB890X", + "11547": "AB890X", + "11548": "AB890X", + "11549": "AB890X", + "11550": "AB890X", + "11551": "AB890X", + "11552": "AB890X", + "11553": "AB890X", + "11554": "AB890X", + "11555": "AB890X", + "11556": "AB890X", + "11557": "AB890X", + "11558": "AB890X", + "11559": "AB890X", + "11560": "AB890X", + "11561": "AB890X", + "11563": "AB890X", + "11565": "AB890X", + "11566": "AB890X", + "11568": "AB890X", + "11569": "AB890X", + "11570": "AB890X", + "11571": "AB890X", + "11572": "AB890X", + "11575": "AB890X", + "11576": "AB890X", + "11577": "AB890X", + "11579": "AB890X", + "11580": "AB890X", + "11581": "AB890X", + "11582": "AB890X", + "11590": "AB890X", + "11592": "AB890X", + "11594": "AB890X", + "11595": "AB890X", + "11596": "AB890X", + "11597": "AB890X", + "11598": "AB890X", + "11599": "AB890X", + "11690": "AB890X", + "11691": "AB890X", + "11692": "AB890X", + "11693": "AB890X", + "11694": "AB890X", + "11695": "AB890X", + "11697": "AB890X", + "11701": "AB890X", + "11702": "AB890X", + "11703": "AB890X", + "11704": "AB890X", + "11705": "AB890X", + "11706": "AB890X", + "11707": "AB890X", + "11708": "AB890X", + "11709": "AB890X", + "11710": "AB890X", + "11713": "AB890X", + "11714": "AB890X", + "11715": "AB890X", + "11716": "AB890X", + "11717": "AB890X", + "11718": "AB890X", + "11719": "AB890X", + "11720": "AB890X", + "11721": "AB890X", + "11722": "AB890X", + "11724": "AB890X", + "11725": "AB890X", + "11726": "AB890X", + "11727": "AB890X", + "11729": "AB890X", + "11730": "AB890X", + "11731": "AB890X", + "11732": "AB890X", + "11733": "AB890X", + "11735": "AB890X", + "11736": "AB890X", + "11737": "AB890X", + "11738": "AB890X", + "11739": "AB890X", + "11740": "AB890X", + "11741": "AB890X", + "11742": "AB890X", + "11743": "AB890X", + "11746": "AB890X", + "11747": "AB890X", + "11749": "AB890X", + "11750": "AB890X", + "11751": "AB890X", + "11752": "AB890X", + "11753": "AB890X", + "11754": "AB890X", + "11755": "AB890X", + "11756": "AB890X", + "11757": "AB890X", + "11758": "AB890X", + "11760": "AB890X", + "11762": "AB890X", + "11763": "AB890X", + "11764": "AB890X", + "11765": "AB890X", + "11766": "AB890X", + "11767": "AB890X", + "11768": "AB890X", + "11769": "AB890X", + "11770": "AB890X", + "11771": "AB890X", + "11772": "AB890X", + "11773": "AB890X", + "11774": "AB890X", + "11775": "AB890X", + "11776": "AB890X", + "11777": "AB890X", + "11778": "AB890X", + "11779": "AB890X", + "11780": "AB890X", + "11782": "AB890X", + "11783": "AB890X", + "11784": "AB890X", + "11786": "AB890X", + "11787": "AB890X", + "11788": "AB890X", + "11789": "AB890X", + "11790": "AB890X", + "11791": "AB890X", + "11792": "AB890X", + "11793": "AB890X", + "11794": "AB890X", + "11795": "AB890X", + "11796": "AB890X", + "11797": "AB890X", + "11798": "AB890X", + "11801": "AB890X", + "11802": "AB890X", + "11803": "AB890X", + "11804": "AB890X", + "11815": "AB890X", + "11819": "AB890X", + "11853": "AB890X", + "11854": "AB890X", + "11855": "AB890X", + "11901": "AB890X", + "11930": "AB890X", + "11931": "AB890X", + "11932": "AB890X", + "11933": "AB890X", + "11934": "AB890X", + "11935": "AB890X", + "11937": "AB890X", + "11939": "AB890X", + "11940": "AB890X", + "11941": "AB890X", + "11942": "AB890X", + "11944": "AB890X", + "11946": "AB890X", + "11947": "AB890X", + "11948": "AB890X", + "11949": "AB890X", + "11950": "AB890X", + "11951": "AB890X", + "11952": "AB890X", + "11953": "AB890X", + "11954": "AB890X", + "11955": "AB890X", + "11956": "AB890X", + "11957": "AB890X", + "11958": "AB890X", + "11959": "AB890X", + "11960": "AB890X", + "11961": "AB890X", + "11962": "AB890X", + "11963": "AB890X", + "11964": "AB890X", + "11965": "AB890X", + "11967": "AB890X", + "11968": "AB890X", + "11969": "AB890X", + "11970": "AB890X", + "11971": "AB890X", + "11972": "AB890X", + "11973": "AB890X", + "11975": "AB890X", + "11976": "AB890X", + "11977": "AB890X", + "11978": "AB890X", + "11980": "AB890X", + "12007": "AB890X", + "12008": "AB890X", + "12009": "AB890X", + "12010": "AB890X", + "12015": "AB890X", + "12016": "AB890X", + "12017": "AB890X", + "12018": "AB890X", + "12019": "AB890X", + "12020": "AB890X", + "12022": "AB890X", + "12023": "AB890X", + "12024": "AB890X", + "12025": "AB890X", + "12027": "AB890X", + "12028": "AB890X", + "12029": "AB890X", + "12031": "AB890X", + "12032": "AB890X", + "12033": "AB890X", + "12035": "AB890X", + "12036": "AB890X", + "12037": "AB890X", + "12040": "AB890X", + "12041": "AB890X", + "12042": "AB890X", + "12043": "AB890X", + "12045": "AB890X", + "12046": "AB890X", + "12047": "AB890X", + "12050": "AB890X", + "12051": "AB890X", + "12052": "AB890X", + "12053": "AB890X", + "12054": "AB890X", + "12055": "AB890X", + "12056": "AB890X", + "12057": "AB890X", + "12058": "AB890X", + "12059": "AB890X", + "12060": "AB890X", + "12061": "AB890X", + "12062": "AB890X", + "12063": "AB890X", + "12064": "AB900X", + "12065": "AB890X", + "12066": "AB890X", + "12067": "AB890X", + "12068": "AB890X", + "12069": "AB890X", + "12070": "AB890X", + "12071": "AB890X", + "12072": "AB890X", + "12073": "AB890X", + "12074": "AB890X", + "12075": "AB890X", + "12076": "AB890X", + "12077": "AB890X", + "12078": "AB890X", + "12082": "AB890X", + "12083": "AB890X", + "12084": "AB890X", + "12085": "AB890X", + "12086": "AB890X", + "12087": "AB890X", + "12089": "AB890X", + "12090": "AB890X", + "12092": "AB890X", + "12093": "AB900X", + "12094": "AB890X", + "12095": "AB890X", + "12106": "AB890X", + "12107": "AB890X", + "12108": "AB890X", + "12110": "AB890X", + "12115": "AB890X", + "12116": "AB900X", + "12117": "AB890X", + "12118": "AB890X", + "12120": "AB890X", + "12121": "AB890X", + "12122": "AB890X", + "12123": "AB890X", + "12124": "AB890X", + "12125": "AB890X", + "12128": "AB890X", + "12130": "AB890X", + "12131": "AB890X", + "12132": "AB890X", + "12133": "AB890X", + "12134": "AB890X", + "12136": "AB890X", + "12137": "AB890X", + "12138": "AB890X", + "12139": "AB900X", + "12140": "AB890X", + "12141": "AB890X", + "12143": "AB890X", + "12144": "AB890X", + "12147": "AB890X", + "12148": "AB890X", + "12149": "AB890X", + "12150": "AB890X", + "12151": "AB890X", + "12153": "AB890X", + "12154": "AB890X", + "12155": "AB900X", + "12156": "AB890X", + "12157": "AB890X", + "12158": "AB890X", + "12159": "AB890X", + "12160": "AB890X", + "12161": "AB890X", + "12164": "AB890X", + "12165": "AB890X", + "12166": "AB890X", + "12167": "AB900X", + "12168": "AB890X", + "12169": "AB890X", + "12170": "AB890X", + "12172": "AB890X", + "12173": "AB890X", + "12174": "AB890X", + "12175": "AB890X", + "12176": "AB890X", + "12177": "AB890X", + "12180": "AB890X", + "12181": "AB890X", + "12182": "AB890X", + "12183": "AB890X", + "12184": "AB890X", + "12185": "AB890X", + "12186": "AB890X", + "12187": "AB890X", + "12188": "AB890X", + "12189": "AB890X", + "12190": "AB890X", + "12192": "AB890X", + "12193": "AB890X", + "12194": "AB890X", + "12195": "AB890X", + "12196": "AB890X", + "12197": "AB900X", + "12198": "AB890X", + "12201": "AB890X", + "12202": "AB890X", + "12203": "AB890X", + "12204": "AB890X", + "12205": "AB890X", + "12206": "AB890X", + "12207": "AB890X", + "12208": "AB890X", + "12209": "AB890X", + "12210": "AB890X", + "12211": "AB890X", + "12212": "AB890X", + "12214": "AB890X", + "12220": "AB890X", + "12222": "AB890X", + "12223": "AB890X", + "12224": "AB890X", + "12225": "AB890X", + "12226": "AB890X", + "12227": "AB890X", + "12228": "AB890X", + "12229": "AB890X", + "12230": "AB890X", + "12231": "AB890X", + "12232": "AB890X", + "12233": "AB890X", + "12234": "AB890X", + "12235": "AB890X", + "12236": "AB890X", + "12237": "AB890X", + "12238": "AB890X", + "12239": "AB890X", + "12240": "AB890X", + "12241": "AB890X", + "12242": "AB890X", + "12243": "AB890X", + "12244": "AB890X", + "12245": "AB890X", + "12246": "AB890X", + "12247": "AB890X", + "12248": "AB890X", + "12249": "AB890X", + "12250": "AB890X", + "12252": "AB890X", + "12255": "AB890X", + "12256": "AB890X", + "12257": "AB890X", + "12260": "AB890X", + "12261": "AB890X", + "12288": "AB890X", + "12301": "AB890X", + "12302": "AB890X", + "12303": "AB890X", + "12304": "AB890X", + "12305": "AB890X", + "12306": "AB890X", + "12307": "AB890X", + "12308": "AB890X", + "12309": "AB890X", + "12325": "AB890X", + "12345": "AB890X", + "12401": "AB890X", + "12402": "AB890X", + "12404": "AB890X", + "12405": "AB890X", + "12406": "AB900X", + "12407": "AB890X", + "12409": "AB890X", + "12410": "AB890X", + "12411": "AB890X", + "12412": "AB890X", + "12413": "AB890X", + "12414": "AB890X", + "12416": "AB890X", + "12417": "AB890X", + "12418": "AB890X", + "12419": "AB890X", + "12420": "AB890X", + "12421": "AB900X", + "12422": "AB890X", + "12423": "AB890X", + "12424": "AB890X", + "12427": "AB890X", + "12428": "AB890X", + "12429": "AB890X", + "12430": "AB900X", + "12431": "AB890X", + "12432": "AB890X", + "12433": "AB890X", + "12434": "AB900X", + "12435": "AB890X", + "12436": "AB890X", + "12438": "AB900X", + "12439": "AB890X", + "12440": "AB890X", + "12441": "AB890X", + "12442": "AB890X", + "12443": "AB890X", + "12444": "AB890X", + "12446": "AB890X", + "12448": "AB890X", + "12449": "AB890X", + "12450": "AB890X", + "12451": "AB890X", + "12452": "AB890X", + "12453": "AB890X", + "12454": "AB890X", + "12455": "AB900X", + "12456": "AB890X", + "12457": "AB890X", + "12458": "AB890X", + "12459": "AB900X", + "12460": "AB890X", + "12461": "AB890X", + "12463": "AB890X", + "12464": "AB890X", + "12465": "AB890X", + "12466": "AB890X", + "12468": "AB900X", + "12469": "AB890X", + "12470": "AB890X", + "12471": "AB890X", + "12472": "AB890X", + "12473": "AB890X", + "12474": "AB900X", + "12475": "AB890X", + "12477": "AB890X", + "12480": "AB890X", + "12481": "AB890X", + "12482": "AB890X", + "12483": "AB890X", + "12484": "AB890X", + "12485": "AB890X", + "12486": "AB890X", + "12487": "AB890X", + "12489": "AB890X", + "12490": "AB890X", + "12491": "AB890X", + "12492": "AB890X", + "12493": "AB890X", + "12494": "AB890X", + "12495": "AB890X", + "12496": "AB890X", + "12498": "AB890X", + "12501": "AB890X", + "12502": "AB890X", + "12503": "AB890X", + "12504": "AB890X", + "12506": "AB890X", + "12507": "AB890X", + "12508": "AB890X", + "12510": "AB890X", + "12511": "AB890X", + "12512": "AB890X", + "12513": "AB890X", + "12514": "AB890X", + "12515": "AB890X", + "12516": "AB890X", + "12517": "AB890X", + "12518": "AB890X", + "12520": "AB890X", + "12521": "AB890X", + "12522": "AB890X", + "12523": "AB890X", + "12524": "AB890X", + "12525": "AB890X", + "12526": "AB890X", + "12527": "AB890X", + "12528": "AB890X", + "12529": "AB890X", + "12530": "AB890X", + "12531": "AB890X", + "12533": "AB890X", + "12534": "AB890X", + "12537": "AB890X", + "12538": "AB890X", + "12540": "AB890X", + "12541": "AB890X", + "12542": "AB890X", + "12543": "AB890X", + "12544": "AB890X", + "12545": "AB890X", + "12546": "AB890X", + "12547": "AB890X", + "12548": "AB890X", + "12549": "AB890X", + "12550": "AB890X", + "12551": "AB890X", + "12552": "AB890X", + "12553": "AB890X", + "12555": "AB890X", + "12561": "AB890X", + "12563": "AB890X", + "12564": "AB890X", + "12565": "AB890X", + "12566": "AB890X", + "12567": "AB890X", + "12568": "AB890X", + "12569": "AB890X", + "12570": "AB890X", + "12571": "AB890X", + "12572": "AB890X", + "12574": "AB890X", + "12575": "AB890X", + "12577": "AB890X", + "12578": "AB890X", + "12580": "AB890X", + "12581": "AB890X", + "12582": "AB890X", + "12583": "AB890X", + "12584": "AB890X", + "12585": "AB890X", + "12586": "AB890X", + "12588": "AB890X", + "12589": "AB890X", + "12590": "AB890X", + "12592": "AB890X", + "12593": "AB890X", + "12594": "AB890X", + "12601": "AB890X", + "12602": "AB890X", + "12603": "AB890X", + "12604": "AB890X", + "12701": "AB890X", + "12719": "AB890X", + "12720": "AB890X", + "12721": "AB890X", + "12722": "AB890X", + "12723": "AB890X", + "12724": "AB890X", + "12725": "AB890X", + "12726": "AB890X", + "12727": "AB890X", + "12729": "AB890X", + "12732": "AB890X", + "12733": "AB890X", + "12734": "AB890X", + "12736": "AB890X", + "12737": "AB890X", + "12738": "AB890X", + "12740": "AB890X", + "12741": "AB890X", + "12742": "AB890X", + "12743": "AB890X", + "12745": "AB890X", + "12746": "AB890X", + "12747": "AB890X", + "12748": "AB890X", + "12749": "AB890X", + "12750": "AB890X", + "12751": "AB890X", + "12752": "AB890X", + "12754": "AB890X", + "12758": "AB890X", + "12759": "AB890X", + "12760": "AB890X", + "12762": "AB890X", + "12763": "AB890X", + "12764": "AB890X", + "12765": "AB890X", + "12766": "AB890X", + "12767": "AB890X", + "12768": "AB890X", + "12769": "AB890X", + "12770": "AB890X", + "12771": "AB890X", + "12775": "AB890X", + "12776": "AB890X", + "12777": "AB890X", + "12778": "AB890X", + "12779": "AB890X", + "12780": "AB890X", + "12781": "AB890X", + "12783": "AB890X", + "12784": "AB890X", + "12785": "AB890X", + "12786": "AB890X", + "12787": "AB890X", + "12788": "AB890X", + "12789": "AB890X", + "12790": "AB890X", + "12791": "AB890X", + "12792": "AB890X", + "12801": "AB890X", + "12803": "AB890X", + "12804": "AB890X", + "12808": "AB890X", + "12809": "AB890X", + "12810": "AB890X", + "12811": "AB890X", + "12812": "AB890X", + "12814": "AB890X", + "12815": "AB890X", + "12816": "AB890X", + "12817": "AB890X", + "12819": "AB890X", + "12820": "AB890X", + "12821": "AB890X", + "12822": "AB890X", + "12823": "AB890X", + "12824": "AB890X", + "12827": "AB890X", + "12828": "AB890X", + "12831": "AB890X", + "12832": "AB890X", + "12833": "AB890X", + "12834": "AB890X", + "12835": "AB890X", + "12836": "AB890X", + "12837": "AB890X", + "12838": "AB890X", + "12839": "AB890X", + "12841": "AB890X", + "12842": "AB890X", + "12843": "AB890X", + "12844": "AB890X", + "12845": "AB890X", + "12846": "AB890X", + "12847": "AB890X", + "12848": "AB890X", + "12849": "AB890X", + "12850": "AB890X", + "12851": "AB890X", + "12852": "AB890X", + "12853": "AB890X", + "12854": "AB890X", + "12855": "AB889X", + "12856": "AB890X", + "12857": "AB890X", + "12858": "AB889X", + "12859": "AB890X", + "12860": "AB890X", + "12861": "AB890X", + "12862": "AB890X", + "12863": "AB890X", + "12864": "AB890X", + "12865": "AB890X", + "12866": "AB890X", + "12870": "AB889X", + "12871": "AB890X", + "12872": "AB889X", + "12873": "AB890X", + "12874": "AB890X", + "12878": "AB890X", + "12879": "AB889X", + "12883": "AB889X", + "12884": "AB890X", + "12885": "AB890X", + "12886": "AB890X", + "12887": "AB890X", + "12901": "AB889X", + "12903": "AB889X", + "12910": "AB889X", + "12911": "AB889X", + "12912": "AB889X", + "12913": "AB889X", + "12914": "AB889X", + "12915": "AB889X", + "12916": "AB889X", + "12917": "AB889X", + "12918": "AB890X", + "12919": "AB889X", + "12920": "AB889X", + "12921": "AB889X", + "12922": "AB889X", + "12923": "AB889X", + "12924": "AB889X", + "12926": "AB889X", + "12927": "AB900X", + "12928": "AB889X", + "12929": "AB889X", + "12930": "AB889X", + "12932": "AB889X", + "12933": "AB889X", + "12934": "AB889X", + "12935": "AB889X", + "12936": "AB889X", + "12937": "AB889X", + "12939": "AB889X", + "12941": "AB889X", + "12942": "AB889X", + "12943": "AB889X", + "12944": "AB889X", + "12945": "AB889X", + "12946": "AB889X", + "12949": "AB889X", + "12950": "AB889X", + "12952": "AB889X", + "12953": "AB889X", + "12955": "AB889X", + "12956": "AB889X", + "12957": "AB889X", + "12958": "AB889X", + "12959": "AB889X", + "12960": "AB889X", + "12961": "AB889X", + "12962": "AB889X", + "12964": "AB889X", + "12965": "AB900X", + "12966": "AB889X", + "12967": "AB900X", + "12969": "AB889X", + "12970": "AB889X", + "12972": "AB889X", + "12973": "AB889X", + "12974": "AB889X", + "12975": "AB889X", + "12976": "AB889X", + "12977": "AB889X", + "12978": "AB889X", + "12979": "AB889X", + "12980": "AB889X", + "12981": "AB889X", + "12983": "AB889X", + "12985": "AB889X", + "12986": "AB900X", + "12987": "AB889X", + "12989": "AB889X", + "12992": "AB889X", + "12993": "AB889X", + "12995": "AB889X", + "12996": "AB889X", + "12997": "AB889X", + "12998": "AB889X", + "13020": "AB900X", + "13021": "AB900X", + "13022": "AB900X", + "13024": "AB900X", + "13026": "AB900X", + "13027": "AB900X", + "13028": "AB900X", + "13029": "AB900X", + "13030": "AB900X", + "13031": "AB900X", + "13032": "AB900X", + "13033": "AB900X", + "13034": "AB900X", + "13035": "AB900X", + "13036": "AB900X", + "13037": "AB900X", + "13039": "AB900X", + "13040": "AB890X", + "13041": "AB900X", + "13042": "AB900X", + "13043": "AB900X", + "13044": "AB900X", + "13045": "AB900X", + "13051": "AB900X", + "13052": "AB900X", + "13053": "AB900X", + "13054": "AB900X", + "13056": "AB890X", + "13057": "AB900X", + "13060": "AB900X", + "13061": "AB900X", + "13062": "AB900X", + "13063": "AB900X", + "13064": "AB900X", + "13065": "AB900X", + "13066": "AB900X", + "13068": "AB900X", + "13069": "AB900X", + "13071": "AB900X", + "13072": "AB900X", + "13073": "AB900X", + "13074": "AB900X", + "13076": "AB900X", + "13077": "AB890X", + "13078": "AB900X", + "13080": "AB900X", + "13081": "AB900X", + "13082": "AB900X", + "13083": "AB900X", + "13084": "AB900X", + "13087": "AB890X", + "13088": "AB900X", + "13089": "AB900X", + "13090": "AB900X", + "13092": "AB900X", + "13093": "AB900X", + "13101": "AB890X", + "13102": "AB900X", + "13103": "AB900X", + "13104": "AB900X", + "13107": "AB900X", + "13108": "AB900X", + "13110": "AB900X", + "13111": "AB900X", + "13112": "AB900X", + "13113": "AB900X", + "13114": "AB900X", + "13115": "AB900X", + "13116": "AB900X", + "13117": "AB900X", + "13118": "AB900X", + "13119": "AB900X", + "13120": "AB900X", + "13121": "AB900X", + "13122": "AB900X", + "13123": "AB900X", + "13124": "AB900X", + "13126": "AB900X", + "13131": "AB900X", + "13132": "AB900X", + "13134": "AB900X", + "13135": "AB900X", + "13136": "AB900X", + "13137": "AB900X", + "13138": "AB900X", + "13139": "AB900X", + "13140": "AB900X", + "13141": "AB890X", + "13142": "AB900X", + "13143": "AB900X", + "13144": "AB900X", + "13145": "AB900X", + "13146": "AB900X", + "13147": "AB900X", + "13148": "AB900X", + "13152": "AB900X", + "13153": "AB900X", + "13154": "AB900X", + "13155": "AB900X", + "13156": "AB900X", + "13157": "AB900X", + "13158": "AB900X", + "13159": "AB900X", + "13160": "AB900X", + "13162": "AB900X", + "13163": "AB900X", + "13164": "AB900X", + "13165": "AB900X", + "13166": "AB900X", + "13167": "AB900X", + "13201": "AB900X", + "13202": "AB900X", + "13203": "AB900X", + "13204": "AB900X", + "13205": "AB900X", + "13206": "AB900X", + "13207": "AB900X", + "13208": "AB900X", + "13209": "AB900X", + "13210": "AB900X", + "13211": "AB900X", + "13212": "AB900X", + "13214": "AB900X", + "13215": "AB900X", + "13217": "AB900X", + "13218": "AB900X", + "13219": "AB900X", + "13220": "AB900X", + "13221": "AB900X", + "13224": "AB900X", + "13225": "AB900X", + "13235": "AB900X", + "13244": "AB900X", + "13250": "AB900X", + "13251": "AB900X", + "13252": "AB900X", + "13261": "AB900X", + "13290": "AB900X", + "13301": "AB900X", + "13302": "AB900X", + "13303": "AB900X", + "13304": "AB900X", + "13305": "AB900X", + "13308": "AB900X", + "13309": "AB900X", + "13310": "AB900X", + "13312": "AB900X", + "13313": "AB900X", + "13314": "AB900X", + "13315": "AB900X", + "13316": "AB900X", + "13317": "AB890X", + "13318": "AB900X", + "13319": "AB900X", + "13320": "AB900X", + "13321": "AB900X", + "13322": "AB900X", + "13323": "AB900X", + "13324": "AB900X", + "13325": "AB900X", + "13326": "AB900X", + "13327": "AB900X", + "13328": "AB900X", + "13329": "AB900X", + "13331": "AB900X", + "13332": "AB890X", + "13333": "AB900X", + "13334": "AB900X", + "13335": "AB900X", + "13337": "AB900X", + "13338": "AB900X", + "13339": "AB890X", + "13340": "AB900X", + "13341": "AB900X", + "13342": "AB900X", + "13343": "AB900X", + "13345": "AB900X", + "13346": "AB900X", + "13348": "AB900X", + "13350": "AB900X", + "13352": "AB900X", + "13353": "AB890X", + "13354": "AB900X", + "13355": "AB900X", + "13357": "AB900X", + "13360": "AB900X", + "13361": "AB900X", + "13362": "AB900X", + "13363": "AB900X", + "13364": "AB900X", + "13365": "AB900X", + "13367": "AB900X", + "13368": "AB900X", + "13401": "AB900X", + "13402": "AB900X", + "13403": "AB900X", + "13404": "AB900X", + "13406": "AB900X", + "13407": "AB900X", + "13408": "AB900X", + "13409": "AB900X", + "13410": "AB900X", + "13411": "AB900X", + "13413": "AB900X", + "13415": "AB900X", + "13416": "AB900X", + "13417": "AB900X", + "13418": "AB900X", + "13420": "AB900X", + "13421": "AB900X", + "13424": "AB900X", + "13425": "AB900X", + "13426": "AB900X", + "13428": "AB890X", + "13431": "AB900X", + "13433": "AB900X", + "13435": "AB900X", + "13436": "AB890X", + "13437": "AB900X", + "13438": "AB900X", + "13439": "AB900X", + "13440": "AB900X", + "13441": "AB900X", + "13442": "AB900X", + "13449": "AB900X", + "13450": "AB900X", + "13452": "AB890X", + "13454": "AB900X", + "13455": "AB900X", + "13456": "AB900X", + "13457": "AB900X", + "13459": "AB890X", + "13460": "AB890X", + "13461": "AB900X", + "13464": "AB890X", + "13465": "AB900X", + "13468": "AB900X", + "13469": "AB900X", + "13470": "AB900X", + "13471": "AB900X", + "13472": "AB900X", + "13473": "AB900X", + "13475": "AB900X", + "13476": "AB900X", + "13477": "AB900X", + "13478": "AB900X", + "13479": "AB900X", + "13480": "AB900X", + "13482": "AB900X", + "13483": "AB900X", + "13484": "AB900X", + "13485": "AB900X", + "13486": "AB900X", + "13488": "AB900X", + "13489": "AB900X", + "13490": "AB900X", + "13491": "AB900X", + "13492": "AB900X", + "13493": "AB900X", + "13494": "AB900X", + "13495": "AB900X", + "13501": "AB900X", + "13502": "AB900X", + "13503": "AB900X", + "13504": "AB900X", + "13505": "AB900X", + "13599": "AB900X", + "13601": "AB900X", + "13602": "AB900X", + "13603": "AB900X", + "13605": "AB900X", + "13606": "AB900X", + "13607": "AB900X", + "13608": "AB900X", + "13611": "AB900X", + "13612": "AB900X", + "13613": "AB900X", + "13614": "AB900X", + "13615": "AB900X", + "13616": "AB900X", + "13617": "AB900X", + "13618": "AB900X", + "13619": "AB900X", + "13620": "AB900X", + "13621": "AB900X", + "13622": "AB900X", + "13623": "AB900X", + "13624": "AB900X", + "13625": "AB900X", + "13626": "AB900X", + "13627": "AB900X", + "13628": "AB900X", + "13630": "AB900X", + "13631": "AB900X", + "13632": "AB900X", + "13633": "AB900X", + "13634": "AB900X", + "13635": "AB900X", + "13636": "AB900X", + "13637": "AB900X", + "13638": "AB900X", + "13639": "AB900X", + "13640": "AB900X", + "13641": "AB900X", + "13642": "AB900X", + "13643": "AB900X", + "13645": "AB900X", + "13646": "AB900X", + "13647": "AB900X", + "13648": "AB900X", + "13649": "AB900X", + "13650": "AB900X", + "13651": "AB900X", + "13652": "AB900X", + "13654": "AB900X", + "13655": "AB900X", + "13656": "AB900X", + "13657": "AB900X", + "13658": "AB900X", + "13659": "AB900X", + "13660": "AB900X", + "13661": "AB900X", + "13662": "AB900X", + "13664": "AB900X", + "13665": "AB900X", + "13666": "AB900X", + "13667": "AB900X", + "13668": "AB900X", + "13669": "AB900X", + "13670": "AB900X", + "13671": "AB900X", + "13672": "AB900X", + "13673": "AB900X", + "13674": "AB900X", + "13675": "AB900X", + "13676": "AB900X", + "13677": "AB900X", + "13678": "AB900X", + "13679": "AB900X", + "13680": "AB900X", + "13681": "AB900X", + "13682": "AB900X", + "13683": "AB900X", + "13684": "AB900X", + "13685": "AB900X", + "13687": "AB900X", + "13690": "AB900X", + "13691": "AB900X", + "13692": "AB900X", + "13693": "AB900X", + "13694": "AB900X", + "13695": "AB900X", + "13696": "AB900X", + "13697": "AB900X", + "13699": "AB900X", + "13730": "AB890X", + "13731": "AB900X", + "13732": "AB890X", + "13733": "AB890X", + "13734": "AB890X", + "13736": "AB890X", + "13737": "AB890X", + "13738": "AB890X", + "13739": "AB900X", + "13740": "AB900X", + "13743": "AB890X", + "13744": "AB890X", + "13745": "AB890X", + "13746": "AB890X", + "13747": "AB900X", + "13748": "AB890X", + "13749": "AB890X", + "13750": "AB900X", + "13751": "AB900X", + "13752": "AB900X", + "13753": "AB900X", + "13754": "AB890X", + "13755": "AB890X", + "13756": "AB890X", + "13757": "AB900X", + "13758": "AB890X", + "13760": "AB890X", + "13761": "AB890X", + "13762": "AB890X", + "13763": "AB890X", + "13774": "AB900X", + "13775": "AB900X", + "13776": "AB900X", + "13777": "AB890X", + "13778": "AB890X", + "13780": "AB890X", + "13782": "AB900X", + "13783": "AB890X", + "13784": "AB890X", + "13786": "AB900X", + "13787": "AB890X", + "13788": "AB900X", + "13790": "AB890X", + "13794": "AB890X", + "13795": "AB890X", + "13796": "AB900X", + "13797": "AB890X", + "13801": "AB890X", + "13802": "AB890X", + "13803": "AB890X", + "13804": "AB900X", + "13806": "AB900X", + "13807": "AB900X", + "13808": "AB900X", + "13809": "AB900X", + "13810": "AB900X", + "13811": "AB890X", + "13812": "AB890X", + "13813": "AB890X", + "13814": "AB890X", + "13815": "AB890X", + "13820": "AB900X", + "13825": "AB900X", + "13826": "AB890X", + "13827": "AB890X", + "13830": "AB890X", + "13832": "AB890X", + "13833": "AB890X", + "13834": "AB900X", + "13835": "AB890X", + "13837": "AB900X", + "13838": "AB900X", + "13839": "AB900X", + "13840": "AB890X", + "13841": "AB890X", + "13842": "AB900X", + "13843": "AB900X", + "13844": "AB890X", + "13845": "AB890X", + "13846": "AB900X", + "13847": "AB900X", + "13848": "AB890X", + "13849": "AB900X", + "13850": "AB890X", + "13851": "AB890X", + "13856": "AB900X", + "13859": "AB900X", + "13860": "AB900X", + "13861": "AB900X", + "13862": "AB890X", + "13863": "AB890X", + "13864": "AB890X", + "13865": "AB890X", + "13901": "AB890X", + "13902": "AB890X", + "13903": "AB890X", + "13904": "AB890X", + "13905": "AB890X", + "14001": "AB900X", + "14004": "AB900X", + "14005": "AB900X", + "14006": "AB900X", + "14008": "AB900X", + "14009": "AB900X", + "14010": "AB900X", + "14011": "AB900X", + "14012": "AB900X", + "14013": "AB900X", + "14020": "AB900X", + "14021": "AB900X", + "14024": "AB900X", + "14025": "AB900X", + "14026": "AB900X", + "14027": "AB900X", + "14028": "AB900X", + "14029": "AB900X", + "14030": "AB900X", + "14031": "AB900X", + "14032": "AB900X", + "14033": "AB900X", + "14034": "AB900X", + "14035": "AB900X", + "14036": "AB900X", + "14037": "AB900X", + "14038": "AB900X", + "14039": "AB900X", + "14040": "AB900X", + "14041": "AB900X", + "14042": "AB900X", + "14043": "AB900X", + "14047": "AB900X", + "14048": "AB900X", + "14051": "AB900X", + "14052": "AB900X", + "14054": "AB900X", + "14055": "AB900X", + "14056": "AB900X", + "14057": "AB900X", + "14058": "AB900X", + "14059": "AB900X", + "14060": "AB900X", + "14061": "AB900X", + "14062": "AB900X", + "14063": "AB900X", + "14065": "AB900X", + "14066": "AB900X", + "14067": "AB900X", + "14068": "AB900X", + "14069": "AB900X", + "14070": "AB900X", + "14072": "AB900X", + "14075": "AB900X", + "14080": "AB900X", + "14081": "AB900X", + "14082": "AB900X", + "14083": "AB900X", + "14085": "AB900X", + "14086": "AB900X", + "14091": "AB900X", + "14092": "AB900X", + "14094": "AB900X", + "14095": "AB900X", + "14098": "AB900X", + "14101": "AB900X", + "14102": "AB900X", + "14103": "AB900X", + "14105": "AB900X", + "14107": "AB900X", + "14108": "AB900X", + "14109": "AB900X", + "14110": "AB900X", + "14111": "AB900X", + "14112": "AB900X", + "14113": "AB900X", + "14120": "AB900X", + "14125": "AB900X", + "14126": "AB900X", + "14127": "AB900X", + "14129": "AB900X", + "14130": "AB900X", + "14131": "AB900X", + "14132": "AB900X", + "14133": "AB900X", + "14134": "AB900X", + "14135": "AB900X", + "14136": "AB900X", + "14138": "AB900X", + "14139": "AB900X", + "14140": "AB900X", + "14141": "AB900X", + "14143": "AB900X", + "14144": "AB900X", + "14145": "AB900X", + "14150": "AB900X", + "14151": "AB900X", + "14166": "AB900X", + "14167": "AB900X", + "14168": "AB900X", + "14169": "AB900X", + "14170": "AB900X", + "14171": "AB900X", + "14172": "AB900X", + "14173": "AB900X", + "14174": "AB900X", + "14201": "AB900X", + "14202": "AB900X", + "14203": "AB900X", + "14204": "AB900X", + "14205": "AB900X", + "14206": "AB900X", + "14207": "AB900X", + "14208": "AB900X", + "14209": "AB900X", + "14210": "AB900X", + "14211": "AB900X", + "14212": "AB900X", + "14213": "AB900X", + "14214": "AB900X", + "14215": "AB900X", + "14216": "AB900X", + "14217": "AB900X", + "14218": "AB900X", + "14219": "AB900X", + "14220": "AB900X", + "14221": "AB900X", + "14222": "AB900X", + "14223": "AB900X", + "14224": "AB900X", + "14225": "AB900X", + "14226": "AB900X", + "14227": "AB900X", + "14228": "AB900X", + "14231": "AB900X", + "14233": "AB900X", + "14240": "AB900X", + "14241": "AB900X", + "14260": "AB900X", + "14261": "AB900X", + "14263": "AB900X", + "14264": "AB900X", + "14265": "AB900X", + "14267": "AB900X", + "14269": "AB900X", + "14270": "AB900X", + "14272": "AB900X", + "14273": "AB900X", + "14276": "AB900X", + "14280": "AB900X", + "14301": "AB900X", + "14302": "AB900X", + "14303": "AB900X", + "14304": "AB900X", + "14305": "AB900X", + "14410": "AB900X", + "14411": "AB900X", + "14413": "AB900X", + "14414": "AB900X", + "14415": "AB900X", + "14416": "AB900X", + "14418": "AB900X", + "14420": "AB900X", + "14422": "AB900X", + "14423": "AB900X", + "14424": "AB900X", + "14425": "AB900X", + "14427": "AB900X", + "14428": "AB900X", + "14429": "AB900X", + "14430": "AB900X", + "14432": "AB900X", + "14433": "AB900X", + "14435": "AB900X", + "14437": "AB900X", + "14441": "AB900X", + "14443": "AB900X", + "14445": "AB900X", + "14449": "AB900X", + "14450": "AB900X", + "14452": "AB900X", + "14453": "AB900X", + "14454": "AB900X", + "14456": "AB900X", + "14461": "AB900X", + "14462": "AB900X", + "14463": "AB900X", + "14464": "AB900X", + "14466": "AB900X", + "14467": "AB900X", + "14468": "AB900X", + "14469": "AB900X", + "14470": "AB900X", + "14471": "AB900X", + "14472": "AB900X", + "14475": "AB900X", + "14476": "AB900X", + "14477": "AB900X", + "14478": "AB900X", + "14479": "AB900X", + "14480": "AB900X", + "14481": "AB900X", + "14482": "AB900X", + "14485": "AB900X", + "14486": "AB900X", + "14487": "AB900X", + "14488": "AB900X", + "14489": "AB900X", + "14502": "AB900X", + "14504": "AB900X", + "14505": "AB900X", + "14506": "AB900X", + "14507": "AB900X", + "14508": "AB900X", + "14510": "AB900X", + "14511": "AB900X", + "14512": "AB900X", + "14513": "AB900X", + "14514": "AB900X", + "14515": "AB900X", + "14516": "AB900X", + "14517": "AB900X", + "14518": "AB900X", + "14519": "AB900X", + "14520": "AB900X", + "14521": "AB900X", + "14522": "AB900X", + "14525": "AB900X", + "14526": "AB900X", + "14527": "AB900X", + "14529": "AB890X", + "14530": "AB900X", + "14532": "AB900X", + "14533": "AB900X", + "14534": "AB900X", + "14536": "AB900X", + "14537": "AB900X", + "14538": "AB900X", + "14539": "AB900X", + "14541": "AB900X", + "14542": "AB900X", + "14543": "AB900X", + "14544": "AB900X", + "14545": "AB900X", + "14546": "AB900X", + "14547": "AB900X", + "14548": "AB900X", + "14549": "AB900X", + "14550": "AB900X", + "14551": "AB900X", + "14555": "AB900X", + "14556": "AB900X", + "14557": "AB900X", + "14558": "AB900X", + "14559": "AB900X", + "14560": "AB900X", + "14561": "AB900X", + "14563": "AB900X", + "14564": "AB900X", + "14568": "AB900X", + "14569": "AB900X", + "14571": "AB900X", + "14572": "AB900X", + "14580": "AB900X", + "14585": "AB900X", + "14586": "AB900X", + "14588": "AB900X", + "14589": "AB900X", + "14590": "AB900X", + "14591": "AB900X", + "14592": "AB900X", + "14602": "AB900X", + "14603": "AB900X", + "14604": "AB900X", + "14605": "AB900X", + "14606": "AB900X", + "14607": "AB900X", + "14608": "AB900X", + "14609": "AB900X", + "14610": "AB900X", + "14611": "AB900X", + "14612": "AB900X", + "14613": "AB900X", + "14614": "AB900X", + "14615": "AB900X", + "14616": "AB900X", + "14617": "AB900X", + "14618": "AB900X", + "14619": "AB900X", + "14620": "AB900X", + "14621": "AB900X", + "14622": "AB900X", + "14623": "AB900X", + "14624": "AB900X", + "14625": "AB900X", + "14626": "AB900X", + "14627": "AB900X", + "14638": "AB900X", + "14639": "AB900X", + "14642": "AB900X", + "14643": "AB900X", + "14644": "AB900X", + "14645": "AB900X", + "14646": "AB900X", + "14647": "AB900X", + "14649": "AB900X", + "14650": "AB900X", + "14651": "AB900X", + "14652": "AB900X", + "14653": "AB900X", + "14664": "AB900X", + "14673": "AB900X", + "14683": "AB900X", + "14692": "AB900X", + "14694": "AB900X", + "14701": "AB900X", + "14702": "AB900X", + "14706": "AB900X", + "14707": "AB900X", + "14708": "AB900X", + "14709": "AB900X", + "14710": "AB900X", + "14711": "AB900X", + "14712": "AB900X", + "14714": "AB900X", + "14715": "AB900X", + "14716": "AB900X", + "14717": "AB900X", + "14718": "AB900X", + "14719": "AB900X", + "14720": "AB900X", + "14721": "AB900X", + "14722": "AB900X", + "14723": "AB900X", + "14724": "AB900X", + "14726": "AB900X", + "14727": "AB900X", + "14728": "AB900X", + "14729": "AB900X", + "14730": "AB900X", + "14731": "AB900X", + "14732": "AB900X", + "14733": "AB900X", + "14735": "AB900X", + "14736": "AB900X", + "14737": "AB900X", + "14738": "AB900X", + "14739": "AB900X", + "14740": "AB900X", + "14741": "AB900X", + "14742": "AB900X", + "14743": "AB900X", + "14744": "AB900X", + "14745": "AB900X", + "14747": "AB900X", + "14748": "AB900X", + "14750": "AB900X", + "14751": "AB900X", + "14752": "AB900X", + "14753": "AB900X", + "14754": "AB900X", + "14755": "AB900X", + "14756": "AB900X", + "14757": "AB900X", + "14758": "AB900X", + "14760": "AB900X", + "14762": "AB900X", + "14766": "AB900X", + "14767": "AB900X", + "14769": "AB900X", + "14770": "AB900X", + "14772": "AB900X", + "14774": "AB900X", + "14775": "AB900X", + "14777": "AB900X", + "14778": "AB900X", + "14779": "AB900X", + "14781": "AB900X", + "14782": "AB900X", + "14783": "AB900X", + "14784": "AB900X", + "14785": "AB900X", + "14786": "AB900X", + "14787": "AB900X", + "14788": "AB900X", + "14801": "AB890X", + "14802": "AB900X", + "14803": "AB900X", + "14804": "AB900X", + "14805": "AB890X", + "14806": "AB900X", + "14807": "AB900X", + "14808": "AB900X", + "14809": "AB900X", + "14810": "AB890X", + "14812": "AB890X", + "14813": "AB900X", + "14814": "AB890X", + "14815": "AB890X", + "14816": "AB890X", + "14817": "AB900X", + "14818": "AB890X", + "14819": "AB890X", + "14820": "AB890X", + "14821": "AB890X", + "14822": "AB900X", + "14823": "AB890X", + "14824": "AB890X", + "14825": "AB890X", + "14826": "AB900X", + "14827": "AB890X", + "14830": "AB890X", + "14831": "AB890X", + "14836": "AB900X", + "14837": "AB900X", + "14838": "AB890X", + "14839": "AB890X", + "14840": "AB890X", + "14841": "AB890X", + "14842": "AB900X", + "14843": "AB890X", + "14845": "AB890X", + "14846": "AB900X", + "14847": "AB900X", + "14850": "AB900X", + "14851": "AB900X", + "14852": "AB900X", + "14853": "AB900X", + "14854": "AB900X", + "14855": "AB890X", + "14856": "AB890X", + "14857": "AB900X", + "14858": "AB890X", + "14859": "AB890X", + "14860": "AB900X", + "14861": "AB890X", + "14863": "AB890X", + "14864": "AB890X", + "14865": "AB890X", + "14867": "AB900X", + "14869": "AB890X", + "14870": "AB890X", + "14871": "AB890X", + "14872": "AB890X", + "14873": "AB890X", + "14874": "AB890X", + "14876": "AB890X", + "14877": "AB890X", + "14878": "AB900X", + "14879": "AB890X", + "14880": "AB900X", + "14881": "AB900X", + "14882": "AB900X", + "14883": "AB890X", + "14884": "AB900X", + "14885": "AB890X", + "14886": "AB900X", + "14887": "AB890X", + "14889": "AB890X", + "14891": "AB890X", + "14892": "AB890X", + "14893": "AB890X", + "14894": "AB890X", + "14895": "AB900X", + "14897": "AB900X", + "14898": "AB890X", + "14901": "AB890X", + "14902": "AB890X", + "14903": "AB890X", + "14904": "AB890X", + "14905": "AB890X", + "14925": "AB890X", + "15001": "AB900X", + "15003": "AB900X", + "15004": "AB900X", + "15005": "AB900X", + "15006": "AB900X", + "15007": "AB900X", + "15009": "AB900X", + "15010": "AB900X", + "15012": "AB900X", + "15014": "AB900X", + "15015": "AB900X", + "15017": "AB900X", + "15018": "AB900X", + "15019": "AB900X", + "15020": "AB900X", + "15021": "AB900X", + "15022": "AB900X", + "15024": "AB900X", + "15025": "AB900X", + "15026": "AB900X", + "15027": "AB900X", + "15028": "AB900X", + "15030": "AB900X", + "15031": "AB900X", + "15032": "AB900X", + "15033": "AB900X", + "15034": "AB900X", + "15035": "AB900X", + "15037": "AB900X", + "15038": "AB900X", + "15042": "AB900X", + "15043": "AB900X", + "15044": "AB900X", + "15045": "AB900X", + "15046": "AB900X", + "15047": "AB900X", + "15049": "AB900X", + "15050": "AB900X", + "15051": "AB900X", + "15052": "AB900X", + "15053": "AB900X", + "15054": "AB900X", + "15055": "AB900X", + "15056": "AB900X", + "15057": "AB900X", + "15059": "AB900X", + "15060": "AB900X", + "15061": "AB900X", + "15062": "AB900X", + "15063": "AB900X", + "15064": "AB900X", + "15065": "AB900X", + "15066": "AB900X", + "15067": "AB900X", + "15068": "AB900X", + "15069": "AB900X", + "15071": "AB900X", + "15072": "AB900X", + "15074": "AB900X", + "15075": "AB900X", + "15076": "AB900X", + "15077": "AB900X", + "15078": "AB900X", + "15081": "AB900X", + "15082": "AB900X", + "15083": "AB900X", + "15084": "AB900X", + "15085": "AB900X", + "15086": "AB900X", + "15087": "AB900X", + "15088": "AB900X", + "15089": "AB900X", + "15090": "AB900X", + "15091": "AB900X", + "15095": "AB900X", + "15096": "AB900X", + "15101": "AB900X", + "15102": "AB900X", + "15104": "AB900X", + "15106": "AB900X", + "15108": "AB900X", + "15110": "AB900X", + "15112": "AB900X", + "15116": "AB900X", + "15120": "AB900X", + "15122": "AB900X", + "15123": "AB900X", + "15126": "AB900X", + "15127": "AB900X", + "15129": "AB900X", + "15131": "AB900X", + "15132": "AB900X", + "15133": "AB900X", + "15134": "AB900X", + "15135": "AB900X", + "15136": "AB900X", + "15137": "AB900X", + "15139": "AB900X", + "15140": "AB900X", + "15142": "AB900X", + "15143": "AB900X", + "15144": "AB900X", + "15145": "AB900X", + "15146": "AB900X", + "15147": "AB900X", + "15148": "AB900X", + "15201": "AB900X", + "15202": "AB900X", + "15203": "AB900X", + "15204": "AB900X", + "15205": "AB900X", + "15206": "AB900X", + "15207": "AB900X", + "15208": "AB900X", + "15209": "AB900X", + "15210": "AB900X", + "15211": "AB900X", + "15212": "AB900X", + "15213": "AB900X", + "15214": "AB900X", + "15215": "AB900X", + "15216": "AB900X", + "15217": "AB900X", + "15218": "AB900X", + "15219": "AB900X", + "15220": "AB900X", + "15221": "AB900X", + "15222": "AB900X", + "15223": "AB900X", + "15224": "AB900X", + "15225": "AB900X", + "15226": "AB900X", + "15227": "AB900X", + "15228": "AB900X", + "15229": "AB900X", + "15230": "AB900X", + "15231": "AB900X", + "15232": "AB900X", + "15233": "AB900X", + "15234": "AB900X", + "15235": "AB900X", + "15236": "AB900X", + "15237": "AB900X", + "15238": "AB900X", + "15239": "AB900X", + "15240": "AB900X", + "15241": "AB900X", + "15242": "AB900X", + "15243": "AB900X", + "15244": "AB900X", + "15250": "AB900X", + "15251": "AB900X", + "15252": "AB900X", + "15253": "AB900X", + "15254": "AB900X", + "15255": "AB900X", + "15257": "AB900X", + "15258": "AB900X", + "15259": "AB900X", + "15260": "AB900X", + "15261": "AB900X", + "15262": "AB900X", + "15263": "AB900X", + "15264": "AB900X", + "15265": "AB900X", + "15267": "AB900X", + "15268": "AB900X", + "15270": "AB900X", + "15272": "AB900X", + "15274": "AB900X", + "15275": "AB900X", + "15276": "AB900X", + "15277": "AB900X", + "15278": "AB900X", + "15279": "AB900X", + "15281": "AB900X", + "15282": "AB900X", + "15283": "AB900X", + "15285": "AB900X", + "15286": "AB900X", + "15289": "AB900X", + "15290": "AB900X", + "15295": "AB900X", + "15301": "AB900X", + "15310": "AB900X", + "15311": "AB900X", + "15312": "AB900X", + "15313": "AB900X", + "15314": "AB900X", + "15315": "AB900X", + "15316": "AB900X", + "15317": "AB900X", + "15320": "AB900X", + "15321": "AB900X", + "15322": "AB900X", + "15323": "AB900X", + "15324": "AB900X", + "15325": "AB900X", + "15327": "AB900X", + "15329": "AB900X", + "15330": "AB900X", + "15331": "AB900X", + "15332": "AB900X", + "15333": "AB900X", + "15334": "AB900X", + "15336": "AB900X", + "15337": "AB900X", + "15338": "AB900X", + "15339": "AB900X", + "15340": "AB900X", + "15341": "AB900X", + "15342": "AB900X", + "15344": "AB900X", + "15345": "AB900X", + "15346": "AB900X", + "15347": "AB900X", + "15348": "AB900X", + "15349": "AB900X", + "15350": "AB900X", + "15351": "AB900X", + "15352": "AB900X", + "15353": "AB900X", + "15357": "AB900X", + "15358": "AB900X", + "15359": "AB900X", + "15360": "AB900X", + "15361": "AB900X", + "15362": "AB900X", + "15363": "AB900X", + "15364": "AB900X", + "15365": "AB900X", + "15366": "AB900X", + "15367": "AB900X", + "15368": "AB900X", + "15370": "AB900X", + "15376": "AB900X", + "15377": "AB900X", + "15378": "AB900X", + "15379": "AB900X", + "15380": "AB900X", + "15401": "AB900X", + "15410": "AB900X", + "15411": "AB900X", + "15412": "AB900X", + "15413": "AB900X", + "15415": "AB900X", + "15416": "AB900X", + "15417": "AB900X", + "15419": "AB900X", + "15420": "AB900X", + "15421": "AB900X", + "15422": "AB900X", + "15423": "AB900X", + "15424": "AB900X", + "15425": "AB900X", + "15427": "AB900X", + "15428": "AB900X", + "15429": "AB900X", + "15430": "AB900X", + "15431": "AB900X", + "15432": "AB900X", + "15433": "AB900X", + "15434": "AB900X", + "15435": "AB900X", + "15436": "AB900X", + "15437": "AB900X", + "15438": "AB900X", + "15439": "AB900X", + "15440": "AB900X", + "15442": "AB900X", + "15443": "AB900X", + "15444": "AB900X", + "15445": "AB900X", + "15446": "AB900X", + "15447": "AB900X", + "15448": "AB900X", + "15449": "AB900X", + "15450": "AB900X", + "15451": "AB900X", + "15454": "AB900X", + "15455": "AB900X", + "15456": "AB900X", + "15458": "AB900X", + "15459": "AB900X", + "15460": "AB900X", + "15461": "AB900X", + "15462": "AB900X", + "15463": "AB900X", + "15464": "AB900X", + "15465": "AB900X", + "15466": "AB900X", + "15467": "AB900X", + "15468": "AB900X", + "15469": "AB900X", + "15470": "AB900X", + "15472": "AB900X", + "15473": "AB900X", + "15474": "AB900X", + "15475": "AB900X", + "15476": "AB900X", + "15477": "AB900X", + "15478": "AB900X", + "15479": "AB900X", + "15480": "AB900X", + "15482": "AB900X", + "15483": "AB900X", + "15484": "AB900X", + "15485": "AB900X", + "15486": "AB900X", + "15488": "AB900X", + "15489": "AB900X", + "15490": "AB900X", + "15492": "AB900X", + "15501": "AB900X", + "15502": "AB900X", + "15510": "AB900X", + "15520": "AB900X", + "15521": "AB900X", + "15522": "AB900X", + "15530": "AB900X", + "15531": "AB900X", + "15532": "AB900X", + "15533": "AB900X", + "15534": "AB900X", + "15535": "AB900X", + "15536": "AB892X", + "15537": "AB900X", + "15538": "AB900X", + "15539": "AB900X", + "15540": "AB900X", + "15541": "AB900X", + "15542": "AB900X", + "15544": "AB900X", + "15545": "AB900X", + "15546": "AB900X", + "15547": "AB900X", + "15548": "AB900X", + "15549": "AB900X", + "15550": "AB900X", + "15551": "AB900X", + "15552": "AB900X", + "15553": "AB900X", + "15554": "AB900X", + "15555": "AB900X", + "15557": "AB900X", + "15558": "AB900X", + "15559": "AB900X", + "15560": "AB900X", + "15561": "AB900X", + "15562": "AB900X", + "15563": "AB900X", + "15564": "AB900X", + "15565": "AB900X", + "15601": "AB900X", + "15605": "AB900X", + "15606": "AB900X", + "15610": "AB900X", + "15611": "AB900X", + "15612": "AB900X", + "15613": "AB900X", + "15615": "AB900X", + "15616": "AB900X", + "15617": "AB900X", + "15618": "AB900X", + "15619": "AB900X", + "15620": "AB900X", + "15621": "AB900X", + "15622": "AB900X", + "15623": "AB900X", + "15624": "AB900X", + "15625": "AB900X", + "15626": "AB900X", + "15627": "AB900X", + "15628": "AB900X", + "15629": "AB900X", + "15631": "AB900X", + "15632": "AB900X", + "15633": "AB900X", + "15634": "AB900X", + "15635": "AB900X", + "15636": "AB900X", + "15637": "AB900X", + "15638": "AB900X", + "15639": "AB900X", + "15640": "AB900X", + "15641": "AB900X", + "15642": "AB900X", + "15644": "AB900X", + "15646": "AB900X", + "15647": "AB900X", + "15650": "AB900X", + "15655": "AB900X", + "15656": "AB900X", + "15658": "AB900X", + "15660": "AB900X", + "15661": "AB900X", + "15662": "AB900X", + "15663": "AB900X", + "15664": "AB900X", + "15665": "AB900X", + "15666": "AB900X", + "15668": "AB900X", + "15670": "AB900X", + "15671": "AB900X", + "15672": "AB900X", + "15673": "AB900X", + "15674": "AB900X", + "15675": "AB900X", + "15676": "AB900X", + "15677": "AB900X", + "15678": "AB900X", + "15679": "AB900X", + "15680": "AB900X", + "15681": "AB900X", + "15682": "AB900X", + "15683": "AB900X", + "15684": "AB900X", + "15685": "AB900X", + "15686": "AB900X", + "15687": "AB900X", + "15688": "AB900X", + "15689": "AB900X", + "15690": "AB900X", + "15691": "AB900X", + "15692": "AB900X", + "15693": "AB900X", + "15695": "AB900X", + "15696": "AB900X", + "15697": "AB900X", + "15698": "AB900X", + "15701": "AB900X", + "15705": "AB900X", + "15710": "AB900X", + "15711": "AB900X", + "15712": "AB900X", + "15713": "AB900X", + "15714": "AB900X", + "15715": "AB900X", + "15716": "AB900X", + "15717": "AB900X", + "15720": "AB900X", + "15721": "AB900X", + "15722": "AB900X", + "15723": "AB900X", + "15724": "AB900X", + "15725": "AB900X", + "15727": "AB900X", + "15728": "AB900X", + "15729": "AB900X", + "15730": "AB900X", + "15731": "AB900X", + "15732": "AB900X", + "15733": "AB900X", + "15734": "AB900X", + "15736": "AB900X", + "15737": "AB900X", + "15738": "AB900X", + "15739": "AB900X", + "15740": "AB900X", + "15741": "AB900X", + "15742": "AB900X", + "15744": "AB900X", + "15745": "AB900X", + "15746": "AB900X", + "15747": "AB900X", + "15748": "AB900X", + "15750": "AB900X", + "15752": "AB900X", + "15753": "AB900X", + "15754": "AB900X", + "15756": "AB900X", + "15757": "AB900X", + "15758": "AB900X", + "15759": "AB900X", + "15760": "AB900X", + "15761": "AB900X", + "15762": "AB900X", + "15763": "AB900X", + "15764": "AB900X", + "15765": "AB900X", + "15767": "AB900X", + "15770": "AB900X", + "15771": "AB900X", + "15772": "AB900X", + "15773": "AB900X", + "15774": "AB900X", + "15775": "AB900X", + "15776": "AB900X", + "15777": "AB900X", + "15778": "AB900X", + "15779": "AB900X", + "15780": "AB900X", + "15781": "AB900X", + "15783": "AB900X", + "15784": "AB900X", + "15801": "AB900X", + "15821": "AB900X", + "15822": "AB900X", + "15823": "AB900X", + "15824": "AB900X", + "15825": "AB900X", + "15827": "AB900X", + "15828": "AB900X", + "15829": "AB900X", + "15831": "AB900X", + "15832": "AB900X", + "15834": "AB900X", + "15840": "AB900X", + "15841": "AB900X", + "15845": "AB900X", + "15846": "AB900X", + "15847": "AB900X", + "15848": "AB900X", + "15849": "AB900X", + "15851": "AB900X", + "15853": "AB900X", + "15856": "AB900X", + "15857": "AB900X", + "15860": "AB900X", + "15861": "AB900X", + "15863": "AB900X", + "15864": "AB900X", + "15865": "AB900X", + "15866": "AB900X", + "15868": "AB900X", + "15870": "AB900X", + "15901": "AB900X", + "15902": "AB900X", + "15904": "AB900X", + "15905": "AB900X", + "15906": "AB900X", + "15907": "AB900X", + "15909": "AB900X", + "15915": "AB900X", + "15920": "AB900X", + "15921": "AB900X", + "15922": "AB900X", + "15923": "AB900X", + "15924": "AB900X", + "15925": "AB900X", + "15926": "AB900X", + "15927": "AB900X", + "15928": "AB900X", + "15929": "AB900X", + "15930": "AB900X", + "15931": "AB900X", + "15934": "AB900X", + "15935": "AB900X", + "15936": "AB900X", + "15937": "AB900X", + "15938": "AB900X", + "15940": "AB900X", + "15942": "AB900X", + "15943": "AB900X", + "15944": "AB900X", + "15945": "AB900X", + "15946": "AB900X", + "15948": "AB900X", + "15949": "AB900X", + "15951": "AB900X", + "15952": "AB900X", + "15953": "AB900X", + "15954": "AB900X", + "15955": "AB900X", + "15956": "AB900X", + "15957": "AB900X", + "15958": "AB900X", + "15959": "AB900X", + "15960": "AB900X", + "15961": "AB900X", + "15962": "AB900X", + "15963": "AB900X", + "15989": "AB900X", + "16001": "AB900X", + "16002": "AB900X", + "16003": "AB900X", + "16016": "AB900X", + "16017": "AB900X", + "16018": "AB900X", + "16020": "AB900X", + "16021": "AB900X", + "16022": "AB900X", + "16023": "AB900X", + "16024": "AB900X", + "16025": "AB900X", + "16027": "AB900X", + "16028": "AB900X", + "16029": "AB900X", + "16030": "AB900X", + "16033": "AB900X", + "16034": "AB900X", + "16035": "AB900X", + "16036": "AB900X", + "16037": "AB900X", + "16038": "AB900X", + "16039": "AB900X", + "16040": "AB900X", + "16041": "AB900X", + "16045": "AB900X", + "16046": "AB900X", + "16048": "AB900X", + "16049": "AB900X", + "16050": "AB900X", + "16051": "AB900X", + "16052": "AB900X", + "16053": "AB900X", + "16054": "AB900X", + "16055": "AB900X", + "16056": "AB900X", + "16057": "AB900X", + "16058": "AB900X", + "16059": "AB900X", + "16061": "AB900X", + "16063": "AB900X", + "16066": "AB900X", + "16101": "AB900X", + "16102": "AB900X", + "16103": "AB900X", + "16105": "AB900X", + "16107": "AB900X", + "16108": "AB900X", + "16110": "AB900X", + "16111": "AB900X", + "16112": "AB900X", + "16113": "AB900X", + "16114": "AB900X", + "16115": "AB900X", + "16116": "AB900X", + "16117": "AB900X", + "16120": "AB900X", + "16121": "AB900X", + "16123": "AB900X", + "16124": "AB900X", + "16125": "AB900X", + "16127": "AB900X", + "16130": "AB900X", + "16131": "AB900X", + "16132": "AB900X", + "16133": "AB900X", + "16134": "AB900X", + "16136": "AB900X", + "16137": "AB900X", + "16140": "AB900X", + "16141": "AB900X", + "16142": "AB900X", + "16143": "AB900X", + "16145": "AB900X", + "16146": "AB900X", + "16148": "AB900X", + "16150": "AB900X", + "16151": "AB900X", + "16153": "AB900X", + "16154": "AB900X", + "16155": "AB900X", + "16156": "AB900X", + "16157": "AB900X", + "16159": "AB900X", + "16160": "AB900X", + "16161": "AB900X", + "16172": "AB900X", + "16201": "AB900X", + "16210": "AB900X", + "16211": "AB900X", + "16212": "AB900X", + "16213": "AB900X", + "16214": "AB900X", + "16215": "AB900X", + "16217": "AB900X", + "16218": "AB900X", + "16220": "AB900X", + "16221": "AB900X", + "16222": "AB900X", + "16223": "AB900X", + "16224": "AB900X", + "16225": "AB900X", + "16226": "AB900X", + "16228": "AB900X", + "16229": "AB900X", + "16230": "AB900X", + "16232": "AB900X", + "16233": "AB900X", + "16234": "AB900X", + "16235": "AB900X", + "16236": "AB900X", + "16238": "AB900X", + "16239": "AB900X", + "16240": "AB900X", + "16242": "AB900X", + "16244": "AB900X", + "16245": "AB900X", + "16246": "AB900X", + "16248": "AB900X", + "16249": "AB900X", + "16250": "AB900X", + "16253": "AB900X", + "16254": "AB900X", + "16255": "AB900X", + "16256": "AB900X", + "16257": "AB900X", + "16258": "AB900X", + "16259": "AB900X", + "16260": "AB900X", + "16261": "AB900X", + "16262": "AB900X", + "16263": "AB900X", + "16301": "AB900X", + "16311": "AB900X", + "16312": "AB900X", + "16313": "AB900X", + "16314": "AB900X", + "16316": "AB900X", + "16317": "AB900X", + "16319": "AB900X", + "16321": "AB900X", + "16322": "AB900X", + "16323": "AB900X", + "16326": "AB900X", + "16327": "AB900X", + "16328": "AB900X", + "16329": "AB900X", + "16331": "AB900X", + "16332": "AB900X", + "16333": "AB900X", + "16334": "AB900X", + "16335": "AB900X", + "16340": "AB900X", + "16341": "AB900X", + "16342": "AB900X", + "16343": "AB900X", + "16344": "AB900X", + "16345": "AB900X", + "16346": "AB900X", + "16347": "AB900X", + "16350": "AB900X", + "16351": "AB900X", + "16352": "AB900X", + "16353": "AB900X", + "16354": "AB900X", + "16360": "AB900X", + "16361": "AB900X", + "16362": "AB900X", + "16364": "AB900X", + "16365": "AB900X", + "16366": "AB900X", + "16367": "AB900X", + "16368": "AB900X", + "16369": "AB900X", + "16370": "AB900X", + "16371": "AB900X", + "16372": "AB900X", + "16373": "AB900X", + "16374": "AB900X", + "16375": "AB900X", + "16388": "AB900X", + "16401": "AB900X", + "16402": "AB900X", + "16403": "AB900X", + "16404": "AB900X", + "16405": "AB900X", + "16406": "AB900X", + "16407": "AB900X", + "16410": "AB900X", + "16411": "AB900X", + "16412": "AB900X", + "16413": "AB900X", + "16415": "AB900X", + "16416": "AB900X", + "16417": "AB900X", + "16420": "AB900X", + "16421": "AB900X", + "16422": "AB900X", + "16423": "AB900X", + "16424": "AB900X", + "16426": "AB900X", + "16427": "AB900X", + "16428": "AB900X", + "16430": "AB900X", + "16432": "AB900X", + "16433": "AB900X", + "16434": "AB900X", + "16435": "AB900X", + "16436": "AB900X", + "16438": "AB900X", + "16440": "AB900X", + "16441": "AB900X", + "16442": "AB900X", + "16443": "AB900X", + "16444": "AB900X", + "16475": "AB900X", + "16501": "AB900X", + "16502": "AB900X", + "16503": "AB900X", + "16504": "AB900X", + "16505": "AB900X", + "16506": "AB900X", + "16507": "AB900X", + "16508": "AB900X", + "16509": "AB900X", + "16510": "AB900X", + "16511": "AB900X", + "16512": "AB900X", + "16514": "AB900X", + "16515": "AB900X", + "16522": "AB900X", + "16530": "AB900X", + "16531": "AB900X", + "16532": "AB900X", + "16533": "AB900X", + "16534": "AB900X", + "16538": "AB900X", + "16541": "AB900X", + "16544": "AB900X", + "16546": "AB900X", + "16550": "AB900X", + "16553": "AB900X", + "16554": "AB900X", + "16563": "AB900X", + "16565": "AB900X", + "16601": "AB900X", + "16602": "AB900X", + "16603": "AB900X", + "16611": "AB900X", + "16613": "AB900X", + "16616": "AB900X", + "16617": "AB900X", + "16619": "AB900X", + "16620": "AB900X", + "16621": "AB900X", + "16622": "AB900X", + "16623": "AB900X", + "16624": "AB900X", + "16625": "AB900X", + "16627": "AB900X", + "16629": "AB900X", + "16630": "AB900X", + "16631": "AB900X", + "16633": "AB900X", + "16634": "AB900X", + "16635": "AB900X", + "16636": "AB900X", + "16637": "AB900X", + "16638": "AB900X", + "16639": "AB900X", + "16640": "AB900X", + "16641": "AB900X", + "16644": "AB900X", + "16645": "AB900X", + "16646": "AB900X", + "16647": "AB900X", + "16648": "AB900X", + "16650": "AB900X", + "16651": "AB900X", + "16652": "AB900X", + "16654": "AB900X", + "16655": "AB900X", + "16656": "AB900X", + "16657": "AB900X", + "16659": "AB900X", + "16660": "AB900X", + "16661": "AB900X", + "16662": "AB900X", + "16663": "AB900X", + "16664": "AB900X", + "16665": "AB900X", + "16666": "AB900X", + "16667": "AB900X", + "16668": "AB900X", + "16669": "AB900X", + "16670": "AB900X", + "16671": "AB900X", + "16672": "AB900X", + "16673": "AB900X", + "16674": "AB900X", + "16675": "AB900X", + "16677": "AB900X", + "16678": "AB900X", + "16679": "AB900X", + "16680": "AB900X", + "16681": "AB900X", + "16682": "AB900X", + "16683": "AB900X", + "16684": "AB900X", + "16685": "AB900X", + "16686": "AB900X", + "16689": "AB892X", + "16691": "AB892X", + "16692": "AB900X", + "16693": "AB900X", + "16694": "AB900X", + "16695": "AB900X", + "16698": "AB900X", + "16699": "AB900X", + "16701": "AB900X", + "16720": "AB900X", + "16724": "AB900X", + "16725": "AB900X", + "16726": "AB900X", + "16727": "AB900X", + "16728": "AB900X", + "16729": "AB900X", + "16730": "AB900X", + "16731": "AB900X", + "16732": "AB900X", + "16733": "AB900X", + "16734": "AB900X", + "16735": "AB900X", + "16738": "AB900X", + "16740": "AB900X", + "16743": "AB900X", + "16744": "AB900X", + "16745": "AB900X", + "16746": "AB900X", + "16748": "AB900X", + "16749": "AB900X", + "16750": "AB900X", + "16801": "AB900X", + "16802": "AB900X", + "16803": "AB900X", + "16804": "AB900X", + "16805": "AB900X", + "16820": "AB900X", + "16821": "AB900X", + "16822": "AB890X", + "16823": "AB900X", + "16825": "AB900X", + "16826": "AB890X", + "16827": "AB900X", + "16828": "AB890X", + "16829": "AB900X", + "16830": "AB900X", + "16832": "AB900X", + "16833": "AB900X", + "16834": "AB900X", + "16835": "AB900X", + "16836": "AB900X", + "16837": "AB900X", + "16838": "AB900X", + "16839": "AB900X", + "16840": "AB900X", + "16841": "AB890X", + "16843": "AB900X", + "16844": "AB890X", + "16845": "AB900X", + "16847": "AB900X", + "16848": "AB890X", + "16849": "AB900X", + "16850": "AB900X", + "16851": "AB900X", + "16852": "AB900X", + "16853": "AB890X", + "16854": "AB900X", + "16855": "AB900X", + "16856": "AB900X", + "16858": "AB900X", + "16859": "AB900X", + "16860": "AB900X", + "16861": "AB900X", + "16863": "AB900X", + "16864": "AB900X", + "16865": "AB900X", + "16866": "AB900X", + "16868": "AB900X", + "16870": "AB900X", + "16871": "AB900X", + "16872": "AB890X", + "16873": "AB900X", + "16874": "AB900X", + "16875": "AB900X", + "16876": "AB900X", + "16877": "AB900X", + "16878": "AB900X", + "16879": "AB900X", + "16881": "AB900X", + "16882": "AB900X", + "16901": "AB890X", + "16910": "AB890X", + "16911": "AB890X", + "16912": "AB890X", + "16914": "AB890X", + "16915": "AB900X", + "16917": "AB890X", + "16918": "AB890X", + "16920": "AB890X", + "16921": "AB890X", + "16922": "AB900X", + "16923": "AB900X", + "16925": "AB890X", + "16926": "AB890X", + "16927": "AB890X", + "16928": "AB890X", + "16929": "AB890X", + "16930": "AB890X", + "16932": "AB890X", + "16933": "AB890X", + "16935": "AB890X", + "16936": "AB890X", + "16937": "AB900X", + "16938": "AB890X", + "16939": "AB890X", + "16940": "AB890X", + "16941": "AB900X", + "16942": "AB890X", + "16943": "AB890X", + "16945": "AB890X", + "16946": "AB890X", + "16947": "AB890X", + "16948": "AB890X", + "16950": "AB890X", + "17001": "AB892X", + "17002": "AB892X", + "17003": "AB892X", + "17004": "AB892X", + "17005": "AB892X", + "17006": "AB892X", + "17007": "AB892X", + "17008": "AB892X", + "17009": "AB892X", + "17010": "AB892X", + "17011": "AB892X", + "17012": "AB892X", + "17013": "AB892X", + "17014": "AB892X", + "17015": "AB892X", + "17016": "AB892X", + "17017": "AB892X", + "17018": "AB892X", + "17019": "AB892X", + "17020": "AB892X", + "17021": "AB892X", + "17022": "AB892X", + "17023": "AB892X", + "17024": "AB892X", + "17025": "AB892X", + "17026": "AB892X", + "17027": "AB892X", + "17028": "AB892X", + "17029": "AB892X", + "17030": "AB892X", + "17032": "AB892X", + "17033": "AB892X", + "17034": "AB892X", + "17035": "AB892X", + "17036": "AB892X", + "17037": "AB892X", + "17038": "AB892X", + "17039": "AB892X", + "17040": "AB892X", + "17041": "AB892X", + "17042": "AB892X", + "17043": "AB892X", + "17044": "AB892X", + "17045": "AB890X", + "17046": "AB892X", + "17047": "AB892X", + "17048": "AB892X", + "17049": "AB892X", + "17050": "AB892X", + "17051": "AB892X", + "17052": "AB900X", + "17053": "AB892X", + "17054": "AB892X", + "17055": "AB892X", + "17056": "AB892X", + "17057": "AB892X", + "17058": "AB892X", + "17059": "AB892X", + "17060": "AB900X", + "17061": "AB892X", + "17062": "AB892X", + "17063": "AB892X", + "17064": "AB892X", + "17065": "AB892X", + "17066": "AB892X", + "17067": "AB892X", + "17068": "AB892X", + "17069": "AB892X", + "17070": "AB892X", + "17071": "AB892X", + "17072": "AB892X", + "17073": "AB892X", + "17074": "AB892X", + "17075": "AB892X", + "17076": "AB892X", + "17077": "AB892X", + "17078": "AB892X", + "17080": "AB892X", + "17081": "AB892X", + "17082": "AB892X", + "17083": "AB892X", + "17084": "AB892X", + "17085": "AB892X", + "17086": "AB892X", + "17087": "AB892X", + "17088": "AB892X", + "17089": "AB892X", + "17090": "AB892X", + "17091": "AB892X", + "17093": "AB892X", + "17094": "AB892X", + "17097": "AB892X", + "17098": "AB892X", + "17099": "AB892X", + "17101": "AB892X", + "17102": "AB892X", + "17103": "AB892X", + "17104": "AB892X", + "17105": "AB892X", + "17106": "AB892X", + "17107": "AB892X", + "17108": "AB892X", + "17109": "AB892X", + "17110": "AB892X", + "17111": "AB892X", + "17112": "AB892X", + "17113": "AB892X", + "17120": "AB892X", + "17121": "AB892X", + "17122": "AB892X", + "17123": "AB892X", + "17124": "AB892X", + "17125": "AB892X", + "17126": "AB892X", + "17127": "AB892X", + "17128": "AB892X", + "17129": "AB892X", + "17130": "AB892X", + "17140": "AB892X", + "17177": "AB892X", + "17201": "AB892X", + "17202": "AB892X", + "17210": "AB892X", + "17211": "AB900X", + "17212": "AB892X", + "17213": "AB900X", + "17214": "AB892X", + "17215": "AB892X", + "17217": "AB892X", + "17219": "AB892X", + "17220": "AB892X", + "17221": "AB892X", + "17222": "AB892X", + "17223": "AB892X", + "17224": "AB892X", + "17225": "AB892X", + "17228": "AB892X", + "17229": "AB892X", + "17231": "AB892X", + "17232": "AB892X", + "17233": "AB892X", + "17235": "AB892X", + "17236": "AB892X", + "17237": "AB892X", + "17238": "AB892X", + "17239": "AB900X", + "17240": "AB892X", + "17241": "AB892X", + "17243": "AB900X", + "17244": "AB892X", + "17246": "AB892X", + "17247": "AB892X", + "17249": "AB900X", + "17250": "AB892X", + "17251": "AB892X", + "17252": "AB892X", + "17253": "AB900X", + "17254": "AB892X", + "17255": "AB900X", + "17256": "AB892X", + "17257": "AB892X", + "17260": "AB900X", + "17261": "AB892X", + "17262": "AB892X", + "17263": "AB892X", + "17264": "AB900X", + "17265": "AB892X", + "17266": "AB892X", + "17267": "AB892X", + "17268": "AB892X", + "17270": "AB892X", + "17271": "AB892X", + "17272": "AB892X", + "17301": "AB892X", + "17302": "AB892X", + "17303": "AB892X", + "17304": "AB892X", + "17306": "AB892X", + "17307": "AB892X", + "17309": "AB892X", + "17310": "AB892X", + "17311": "AB892X", + "17312": "AB892X", + "17313": "AB892X", + "17314": "AB892X", + "17315": "AB892X", + "17316": "AB892X", + "17317": "AB892X", + "17318": "AB892X", + "17319": "AB892X", + "17320": "AB892X", + "17321": "AB892X", + "17322": "AB892X", + "17323": "AB892X", + "17324": "AB892X", + "17325": "AB892X", + "17326": "AB892X", + "17327": "AB892X", + "17329": "AB892X", + "17331": "AB892X", + "17332": "AB892X", + "17333": "AB892X", + "17334": "AB892X", + "17337": "AB892X", + "17339": "AB892X", + "17340": "AB892X", + "17342": "AB892X", + "17343": "AB892X", + "17344": "AB892X", + "17345": "AB892X", + "17347": "AB892X", + "17349": "AB892X", + "17350": "AB892X", + "17352": "AB892X", + "17353": "AB892X", + "17354": "AB892X", + "17355": "AB892X", + "17356": "AB892X", + "17358": "AB892X", + "17360": "AB892X", + "17361": "AB892X", + "17362": "AB892X", + "17363": "AB892X", + "17364": "AB892X", + "17365": "AB892X", + "17366": "AB892X", + "17368": "AB892X", + "17370": "AB892X", + "17371": "AB892X", + "17372": "AB892X", + "17375": "AB892X", + "17401": "AB892X", + "17402": "AB892X", + "17403": "AB892X", + "17404": "AB892X", + "17405": "AB892X", + "17406": "AB892X", + "17407": "AB892X", + "17408": "AB892X", + "17415": "AB892X", + "17501": "AB892X", + "17502": "AB892X", + "17503": "AB892X", + "17504": "AB892X", + "17505": "AB892X", + "17506": "AB892X", + "17507": "AB892X", + "17508": "AB892X", + "17509": "AB892X", + "17512": "AB892X", + "17516": "AB892X", + "17517": "AB892X", + "17518": "AB892X", + "17519": "AB892X", + "17520": "AB892X", + "17521": "AB892X", + "17522": "AB892X", + "17527": "AB892X", + "17528": "AB892X", + "17529": "AB892X", + "17532": "AB892X", + "17533": "AB892X", + "17534": "AB892X", + "17535": "AB892X", + "17536": "AB892X", + "17537": "AB892X", + "17538": "AB892X", + "17540": "AB892X", + "17543": "AB892X", + "17545": "AB892X", + "17547": "AB892X", + "17549": "AB892X", + "17550": "AB892X", + "17551": "AB892X", + "17552": "AB892X", + "17554": "AB892X", + "17555": "AB892X", + "17557": "AB892X", + "17560": "AB892X", + "17562": "AB892X", + "17563": "AB892X", + "17564": "AB892X", + "17565": "AB892X", + "17566": "AB892X", + "17567": "AB892X", + "17568": "AB892X", + "17569": "AB892X", + "17570": "AB892X", + "17572": "AB892X", + "17573": "AB892X", + "17575": "AB892X", + "17576": "AB892X", + "17578": "AB892X", + "17579": "AB892X", + "17580": "AB892X", + "17581": "AB892X", + "17582": "AB892X", + "17583": "AB892X", + "17584": "AB892X", + "17585": "AB892X", + "17601": "AB892X", + "17602": "AB892X", + "17603": "AB892X", + "17604": "AB892X", + "17605": "AB892X", + "17606": "AB892X", + "17607": "AB892X", + "17608": "AB892X", + "17611": "AB892X", + "17699": "AB892X", + "17701": "AB890X", + "17702": "AB890X", + "17703": "AB890X", + "17705": "AB890X", + "17720": "AB890X", + "17721": "AB890X", + "17723": "AB890X", + "17724": "AB890X", + "17726": "AB890X", + "17727": "AB890X", + "17728": "AB890X", + "17729": "AB900X", + "17730": "AB890X", + "17731": "AB890X", + "17735": "AB890X", + "17737": "AB890X", + "17738": "AB890X", + "17739": "AB890X", + "17740": "AB890X", + "17742": "AB890X", + "17744": "AB890X", + "17745": "AB890X", + "17747": "AB890X", + "17748": "AB890X", + "17749": "AB890X", + "17750": "AB890X", + "17751": "AB890X", + "17752": "AB890X", + "17754": "AB890X", + "17756": "AB890X", + "17758": "AB890X", + "17760": "AB890X", + "17762": "AB890X", + "17763": "AB890X", + "17764": "AB890X", + "17765": "AB890X", + "17767": "AB890X", + "17768": "AB890X", + "17769": "AB890X", + "17771": "AB890X", + "17772": "AB890X", + "17773": "AB890X", + "17774": "AB890X", + "17776": "AB890X", + "17777": "AB890X", + "17778": "AB890X", + "17779": "AB890X", + "17801": "AB890X", + "17810": "AB890X", + "17812": "AB892X", + "17813": "AB890X", + "17814": "AB890X", + "17815": "AB890X", + "17820": "AB890X", + "17821": "AB890X", + "17822": "AB890X", + "17823": "AB892X", + "17824": "AB890X", + "17827": "AB890X", + "17829": "AB890X", + "17830": "AB892X", + "17831": "AB890X", + "17832": "AB890X", + "17833": "AB890X", + "17834": "AB890X", + "17835": "AB890X", + "17836": "AB890X", + "17837": "AB890X", + "17839": "AB890X", + "17840": "AB890X", + "17841": "AB892X", + "17842": "AB890X", + "17843": "AB890X", + "17844": "AB890X", + "17845": "AB890X", + "17846": "AB890X", + "17847": "AB890X", + "17850": "AB890X", + "17851": "AB890X", + "17853": "AB890X", + "17855": "AB890X", + "17856": "AB890X", + "17857": "AB890X", + "17858": "AB890X", + "17859": "AB890X", + "17860": "AB890X", + "17861": "AB890X", + "17862": "AB890X", + "17864": "AB890X", + "17865": "AB890X", + "17866": "AB890X", + "17867": "AB890X", + "17868": "AB890X", + "17870": "AB890X", + "17872": "AB890X", + "17876": "AB890X", + "17877": "AB890X", + "17878": "AB890X", + "17880": "AB890X", + "17881": "AB890X", + "17882": "AB890X", + "17883": "AB890X", + "17884": "AB890X", + "17885": "AB890X", + "17886": "AB890X", + "17887": "AB890X", + "17888": "AB890X", + "17889": "AB890X", + "17901": "AB890X", + "17920": "AB890X", + "17921": "AB890X", + "17922": "AB890X", + "17923": "AB890X", + "17925": "AB890X", + "17929": "AB890X", + "17930": "AB890X", + "17931": "AB890X", + "17932": "AB890X", + "17933": "AB890X", + "17934": "AB890X", + "17935": "AB890X", + "17936": "AB890X", + "17938": "AB892X", + "17941": "AB892X", + "17942": "AB890X", + "17943": "AB890X", + "17944": "AB890X", + "17945": "AB890X", + "17946": "AB890X", + "17948": "AB890X", + "17949": "AB890X", + "17951": "AB890X", + "17952": "AB890X", + "17953": "AB890X", + "17954": "AB890X", + "17957": "AB892X", + "17959": "AB890X", + "17960": "AB890X", + "17961": "AB890X", + "17963": "AB890X", + "17964": "AB890X", + "17965": "AB890X", + "17966": "AB890X", + "17967": "AB890X", + "17968": "AB892X", + "17970": "AB890X", + "17972": "AB890X", + "17974": "AB890X", + "17976": "AB890X", + "17978": "AB892X", + "17979": "AB890X", + "17980": "AB892X", + "17981": "AB890X", + "17982": "AB890X", + "17983": "AB892X", + "17985": "AB890X", + "18001": "AB890X", + "18002": "AB890X", + "18003": "AB890X", + "18010": "AB890X", + "18011": "AB890X", + "18012": "AB890X", + "18013": "AB890X", + "18014": "AB890X", + "18015": "AB890X", + "18016": "AB890X", + "18017": "AB890X", + "18018": "AB890X", + "18020": "AB890X", + "18025": "AB890X", + "18030": "AB890X", + "18031": "AB890X", + "18032": "AB890X", + "18034": "AB890X", + "18035": "AB890X", + "18036": "AB890X", + "18037": "AB890X", + "18038": "AB890X", + "18039": "AB890X", + "18040": "AB890X", + "18041": "AB890X", + "18042": "AB890X", + "18043": "AB890X", + "18044": "AB890X", + "18045": "AB890X", + "18046": "AB890X", + "18049": "AB890X", + "18050": "AB890X", + "18051": "AB890X", + "18052": "AB890X", + "18053": "AB890X", + "18054": "AB890X", + "18055": "AB890X", + "18056": "AB890X", + "18058": "AB890X", + "18059": "AB890X", + "18060": "AB890X", + "18062": "AB890X", + "18063": "AB890X", + "18064": "AB890X", + "18065": "AB890X", + "18066": "AB890X", + "18067": "AB890X", + "18068": "AB890X", + "18069": "AB890X", + "18070": "AB890X", + "18071": "AB890X", + "18072": "AB890X", + "18073": "AB890X", + "18074": "AB890X", + "18076": "AB890X", + "18077": "AB890X", + "18078": "AB890X", + "18079": "AB890X", + "18080": "AB890X", + "18081": "AB890X", + "18083": "AB890X", + "18084": "AB890X", + "18085": "AB890X", + "18086": "AB890X", + "18087": "AB890X", + "18088": "AB890X", + "18091": "AB890X", + "18092": "AB890X", + "18098": "AB890X", + "18099": "AB890X", + "18101": "AB890X", + "18102": "AB890X", + "18103": "AB890X", + "18104": "AB890X", + "18105": "AB890X", + "18106": "AB890X", + "18109": "AB890X", + "18175": "AB890X", + "18195": "AB890X", + "18201": "AB890X", + "18202": "AB890X", + "18210": "AB890X", + "18211": "AB890X", + "18212": "AB890X", + "18214": "AB890X", + "18216": "AB890X", + "18218": "AB890X", + "18219": "AB890X", + "18220": "AB890X", + "18221": "AB890X", + "18222": "AB890X", + "18223": "AB890X", + "18224": "AB890X", + "18225": "AB890X", + "18229": "AB890X", + "18230": "AB890X", + "18231": "AB890X", + "18232": "AB890X", + "18234": "AB890X", + "18235": "AB890X", + "18237": "AB890X", + "18239": "AB890X", + "18240": "AB890X", + "18241": "AB890X", + "18242": "AB890X", + "18244": "AB890X", + "18245": "AB890X", + "18246": "AB890X", + "18247": "AB890X", + "18248": "AB890X", + "18249": "AB890X", + "18250": "AB890X", + "18251": "AB890X", + "18252": "AB890X", + "18254": "AB890X", + "18255": "AB890X", + "18256": "AB890X", + "18301": "AB890X", + "18302": "AB890X", + "18320": "AB890X", + "18321": "AB890X", + "18322": "AB890X", + "18323": "AB890X", + "18324": "AB890X", + "18325": "AB890X", + "18326": "AB890X", + "18327": "AB890X", + "18328": "AB890X", + "18330": "AB890X", + "18331": "AB890X", + "18332": "AB890X", + "18333": "AB890X", + "18334": "AB890X", + "18335": "AB890X", + "18336": "AB890X", + "18337": "AB890X", + "18340": "AB890X", + "18341": "AB890X", + "18342": "AB890X", + "18343": "AB890X", + "18344": "AB890X", + "18346": "AB890X", + "18347": "AB890X", + "18348": "AB890X", + "18349": "AB890X", + "18350": "AB890X", + "18351": "AB890X", + "18352": "AB890X", + "18353": "AB890X", + "18354": "AB890X", + "18355": "AB890X", + "18356": "AB890X", + "18357": "AB890X", + "18360": "AB890X", + "18370": "AB890X", + "18371": "AB890X", + "18372": "AB890X", + "18373": "AB890X", + "18403": "AB890X", + "18405": "AB890X", + "18407": "AB890X", + "18410": "AB890X", + "18411": "AB890X", + "18413": "AB890X", + "18414": "AB890X", + "18415": "AB890X", + "18416": "AB890X", + "18417": "AB890X", + "18419": "AB890X", + "18420": "AB890X", + "18421": "AB890X", + "18424": "AB890X", + "18425": "AB890X", + "18426": "AB890X", + "18427": "AB890X", + "18428": "AB890X", + "18430": "AB890X", + "18431": "AB890X", + "18433": "AB890X", + "18434": "AB890X", + "18435": "AB890X", + "18436": "AB890X", + "18437": "AB890X", + "18438": "AB890X", + "18439": "AB890X", + "18440": "AB890X", + "18441": "AB890X", + "18443": "AB890X", + "18444": "AB890X", + "18445": "AB890X", + "18446": "AB890X", + "18447": "AB890X", + "18448": "AB890X", + "18449": "AB890X", + "18451": "AB890X", + "18452": "AB890X", + "18453": "AB890X", + "18454": "AB890X", + "18455": "AB890X", + "18456": "AB890X", + "18457": "AB890X", + "18458": "AB890X", + "18459": "AB890X", + "18460": "AB890X", + "18461": "AB890X", + "18462": "AB890X", + "18463": "AB890X", + "18464": "AB890X", + "18465": "AB890X", + "18466": "AB890X", + "18469": "AB890X", + "18470": "AB890X", + "18471": "AB890X", + "18472": "AB890X", + "18473": "AB890X", + "18501": "AB890X", + "18502": "AB890X", + "18503": "AB890X", + "18504": "AB890X", + "18505": "AB890X", + "18507": "AB890X", + "18508": "AB890X", + "18509": "AB890X", + "18510": "AB890X", + "18512": "AB890X", + "18514": "AB890X", + "18515": "AB890X", + "18517": "AB890X", + "18518": "AB890X", + "18519": "AB890X", + "18522": "AB890X", + "18540": "AB890X", + "18577": "AB890X", + "18601": "AB890X", + "18602": "AB890X", + "18603": "AB890X", + "18610": "AB890X", + "18611": "AB890X", + "18612": "AB890X", + "18614": "AB890X", + "18615": "AB890X", + "18616": "AB890X", + "18617": "AB890X", + "18618": "AB890X", + "18619": "AB890X", + "18621": "AB890X", + "18622": "AB890X", + "18623": "AB890X", + "18624": "AB890X", + "18625": "AB890X", + "18626": "AB890X", + "18627": "AB890X", + "18628": "AB890X", + "18629": "AB890X", + "18630": "AB890X", + "18631": "AB890X", + "18632": "AB890X", + "18634": "AB890X", + "18635": "AB890X", + "18636": "AB890X", + "18640": "AB890X", + "18641": "AB890X", + "18642": "AB890X", + "18643": "AB890X", + "18644": "AB890X", + "18651": "AB890X", + "18653": "AB890X", + "18654": "AB890X", + "18655": "AB890X", + "18656": "AB890X", + "18657": "AB890X", + "18660": "AB890X", + "18661": "AB890X", + "18690": "AB890X", + "18701": "AB890X", + "18702": "AB890X", + "18703": "AB890X", + "18704": "AB890X", + "18705": "AB890X", + "18706": "AB890X", + "18707": "AB890X", + "18708": "AB890X", + "18709": "AB890X", + "18710": "AB890X", + "18711": "AB890X", + "18762": "AB890X", + "18764": "AB890X", + "18765": "AB890X", + "18766": "AB890X", + "18767": "AB890X", + "18769": "AB890X", + "18773": "AB890X", + "18801": "AB890X", + "18810": "AB890X", + "18812": "AB890X", + "18813": "AB890X", + "18814": "AB890X", + "18815": "AB890X", + "18816": "AB890X", + "18817": "AB890X", + "18818": "AB890X", + "18820": "AB890X", + "18821": "AB890X", + "18822": "AB890X", + "18823": "AB890X", + "18824": "AB890X", + "18825": "AB890X", + "18826": "AB890X", + "18827": "AB890X", + "18828": "AB890X", + "18829": "AB890X", + "18830": "AB890X", + "18831": "AB890X", + "18832": "AB890X", + "18833": "AB890X", + "18834": "AB890X", + "18837": "AB890X", + "18840": "AB890X", + "18842": "AB890X", + "18843": "AB890X", + "18844": "AB890X", + "18845": "AB890X", + "18846": "AB890X", + "18847": "AB890X", + "18848": "AB890X", + "18850": "AB890X", + "18851": "AB890X", + "18853": "AB890X", + "18854": "AB890X", + "18901": "AB890X", + "18902": "AB890X", + "18910": "AB890X", + "18911": "AB890X", + "18912": "AB890X", + "18913": "AB890X", + "18914": "AB890X", + "18915": "AB890X", + "18916": "AB890X", + "18917": "AB890X", + "18918": "AB890X", + "18920": "AB890X", + "18921": "AB890X", + "18922": "AB890X", + "18923": "AB890X", + "18924": "AB890X", + "18925": "AB890X", + "18926": "AB890X", + "18927": "AB890X", + "18928": "AB890X", + "18929": "AB890X", + "18930": "AB890X", + "18931": "AB890X", + "18932": "AB890X", + "18933": "AB890X", + "18934": "AB890X", + "18935": "AB890X", + "18936": "AB890X", + "18938": "AB890X", + "18940": "AB890X", + "18942": "AB890X", + "18943": "AB890X", + "18944": "AB890X", + "18946": "AB890X", + "18947": "AB890X", + "18949": "AB890X", + "18950": "AB890X", + "18951": "AB890X", + "18953": "AB890X", + "18954": "AB890X", + "18955": "AB890X", + "18956": "AB890X", + "18957": "AB890X", + "18958": "AB890X", + "18960": "AB890X", + "18962": "AB890X", + "18963": "AB890X", + "18964": "AB890X", + "18966": "AB890X", + "18968": "AB890X", + "18969": "AB890X", + "18970": "AB890X", + "18971": "AB890X", + "18972": "AB890X", + "18974": "AB890X", + "18976": "AB890X", + "18977": "AB890X", + "18979": "AB890X", + "18980": "AB890X", + "18981": "AB890X", + "18991": "AB890X", + "19001": "AB890X", + "19002": "AB890X", + "19003": "AB890X", + "19004": "AB890X", + "19006": "AB890X", + "19007": "AB890X", + "19008": "AB890X", + "19009": "AB890X", + "19010": "AB890X", + "19012": "AB890X", + "19013": "AB890X", + "19014": "AB890X", + "19015": "AB890X", + "19016": "AB890X", + "19017": "AB890X", + "19018": "AB890X", + "19019": "AB890X", + "19020": "AB890X", + "19021": "AB890X", + "19022": "AB890X", + "19023": "AB890X", + "19025": "AB890X", + "19026": "AB890X", + "19027": "AB890X", + "19028": "AB890X", + "19029": "AB890X", + "19030": "AB890X", + "19031": "AB890X", + "19032": "AB890X", + "19033": "AB890X", + "19034": "AB890X", + "19035": "AB890X", + "19036": "AB890X", + "19037": "AB890X", + "19038": "AB890X", + "19039": "AB890X", + "19040": "AB890X", + "19041": "AB890X", + "19043": "AB890X", + "19044": "AB890X", + "19046": "AB890X", + "19047": "AB890X", + "19048": "AB890X", + "19049": "AB890X", + "19050": "AB890X", + "19052": "AB890X", + "19053": "AB890X", + "19054": "AB890X", + "19055": "AB890X", + "19056": "AB890X", + "19057": "AB890X", + "19058": "AB890X", + "19061": "AB890X", + "19063": "AB890X", + "19064": "AB890X", + "19065": "AB890X", + "19066": "AB890X", + "19067": "AB890X", + "19070": "AB890X", + "19072": "AB890X", + "19073": "AB890X", + "19074": "AB890X", + "19075": "AB890X", + "19076": "AB890X", + "19078": "AB890X", + "19079": "AB890X", + "19080": "AB890X", + "19081": "AB890X", + "19082": "AB890X", + "19083": "AB890X", + "19085": "AB890X", + "19086": "AB890X", + "19087": "AB890X", + "19088": "AB890X", + "19089": "AB890X", + "19090": "AB890X", + "19091": "AB890X", + "19092": "AB890X", + "19093": "AB890X", + "19094": "AB890X", + "19095": "AB890X", + "19096": "AB890X", + "19098": "AB890X", + "19099": "AB890X", + "19101": "AB890X", + "19102": "AB890X", + "19103": "AB890X", + "19104": "AB890X", + "19105": "AB890X", + "19106": "AB890X", + "19107": "AB890X", + "19108": "AB890X", + "19109": "AB890X", + "19110": "AB890X", + "19111": "AB890X", + "19112": "AB890X", + "19113": "AB890X", + "19114": "AB890X", + "19115": "AB890X", + "19116": "AB890X", + "19118": "AB890X", + "19119": "AB890X", + "19120": "AB890X", + "19121": "AB890X", + "19122": "AB890X", + "19123": "AB890X", + "19124": "AB890X", + "19125": "AB890X", + "19126": "AB890X", + "19127": "AB890X", + "19128": "AB890X", + "19129": "AB890X", + "19130": "AB890X", + "19131": "AB890X", + "19132": "AB890X", + "19133": "AB890X", + "19134": "AB890X", + "19135": "AB890X", + "19136": "AB890X", + "19137": "AB890X", + "19138": "AB890X", + "19139": "AB890X", + "19140": "AB890X", + "19141": "AB890X", + "19142": "AB890X", + "19143": "AB890X", + "19144": "AB890X", + "19145": "AB890X", + "19146": "AB890X", + "19147": "AB890X", + "19148": "AB890X", + "19149": "AB890X", + "19150": "AB890X", + "19151": "AB890X", + "19152": "AB890X", + "19153": "AB890X", + "19154": "AB890X", + "19155": "AB890X", + "19160": "AB890X", + "19161": "AB890X", + "19162": "AB890X", + "19170": "AB890X", + "19171": "AB890X", + "19172": "AB890X", + "19173": "AB890X", + "19175": "AB890X", + "19176": "AB890X", + "19177": "AB890X", + "19178": "AB890X", + "19179": "AB890X", + "19181": "AB890X", + "19182": "AB890X", + "19183": "AB890X", + "19184": "AB890X", + "19185": "AB890X", + "19187": "AB890X", + "19188": "AB890X", + "19191": "AB890X", + "19192": "AB890X", + "19193": "AB890X", + "19194": "AB890X", + "19195": "AB890X", + "19196": "AB890X", + "19197": "AB890X", + "19244": "AB890X", + "19255": "AB890X", + "19301": "AB890X", + "19310": "AB890X", + "19311": "AB890X", + "19312": "AB890X", + "19316": "AB890X", + "19317": "AB890X", + "19318": "AB890X", + "19319": "AB890X", + "19320": "AB890X", + "19330": "AB890X", + "19331": "AB890X", + "19333": "AB890X", + "19335": "AB890X", + "19339": "AB890X", + "19340": "AB890X", + "19341": "AB890X", + "19342": "AB890X", + "19343": "AB890X", + "19344": "AB890X", + "19345": "AB890X", + "19346": "AB890X", + "19347": "AB890X", + "19348": "AB890X", + "19350": "AB890X", + "19351": "AB890X", + "19352": "AB890X", + "19353": "AB890X", + "19354": "AB890X", + "19355": "AB890X", + "19357": "AB890X", + "19358": "AB890X", + "19360": "AB890X", + "19362": "AB890X", + "19363": "AB890X", + "19365": "AB890X", + "19366": "AB890X", + "19367": "AB890X", + "19369": "AB890X", + "19371": "AB890X", + "19372": "AB890X", + "19373": "AB890X", + "19374": "AB890X", + "19375": "AB890X", + "19376": "AB890X", + "19380": "AB890X", + "19381": "AB890X", + "19382": "AB890X", + "19383": "AB890X", + "19390": "AB890X", + "19395": "AB890X", + "19397": "AB890X", + "19398": "AB890X", + "19399": "AB890X", + "19401": "AB890X", + "19403": "AB890X", + "19404": "AB890X", + "19405": "AB890X", + "19406": "AB890X", + "19407": "AB890X", + "19408": "AB890X", + "19409": "AB890X", + "19415": "AB890X", + "19420": "AB890X", + "19421": "AB890X", + "19422": "AB890X", + "19423": "AB890X", + "19424": "AB890X", + "19425": "AB890X", + "19426": "AB890X", + "19428": "AB890X", + "19429": "AB890X", + "19430": "AB890X", + "19432": "AB890X", + "19435": "AB890X", + "19436": "AB890X", + "19437": "AB890X", + "19438": "AB890X", + "19440": "AB890X", + "19441": "AB890X", + "19442": "AB890X", + "19443": "AB890X", + "19444": "AB890X", + "19446": "AB890X", + "19450": "AB890X", + "19451": "AB890X", + "19453": "AB890X", + "19454": "AB890X", + "19455": "AB890X", + "19456": "AB890X", + "19457": "AB890X", + "19460": "AB890X", + "19462": "AB890X", + "19464": "AB890X", + "19465": "AB887X", + "19468": "AB890X", + "19470": "AB890X", + "19472": "AB890X", + "19473": "AB890X", + "19474": "AB890X", + "19475": "AB890X", + "19477": "AB890X", + "19478": "AB890X", + "19479": "AB891X", + "19480": "AB890X", + "19481": "AB890X", + "19482": "AB890X", + "19483": "AB890X", + "19484": "AB890X", + "19485": "AB890X", + "19486": "AB890X", + "19487": "AB890X", + "19488": "AB890X", + "19489": "AB890X", + "19490": "AB890X", + "19492": "AB890X", + "19493": "AB890X", + "19494": "AB890X", + "19495": "AB890X", + "19496": "AB890X", + "19501": "AB892X", + "19503": "AB890X", + "19504": "AB890X", + "19505": "AB890X", + "19506": "AB890X", + "19507": "AB890X", + "19508": "AB890X", + "19510": "AB890X", + "19511": "AB890X", + "19512": "AB890X", + "19516": "AB890X", + "19518": "AB890X", + "19519": "AB890X", + "19520": "AB890X", + "19522": "AB890X", + "19523": "AB890X", + "19525": "AB890X", + "19526": "AB890X", + "19529": "AB890X", + "19530": "AB890X", + "19533": "AB890X", + "19534": "AB890X", + "19535": "AB890X", + "19536": "AB890X", + "19538": "AB890X", + "19539": "AB890X", + "19540": "AB890X", + "19541": "AB890X", + "19542": "AB890X", + "19543": "AB890X", + "19544": "AB890X", + "19545": "AB890X", + "19547": "AB890X", + "19548": "AB890X", + "19549": "AB890X", + "19550": "AB890X", + "19551": "AB890X", + "19554": "AB890X", + "19555": "AB890X", + "19559": "AB890X", + "19560": "AB890X", + "19562": "AB890X", + "19564": "AB890X", + "19565": "AB890X", + "19567": "AB890X", + "19601": "AB890X", + "19602": "AB890X", + "19603": "AB892X", + "19604": "AB890X", + "19605": "AB890X", + "19606": "AB890X", + "19607": "AB890X", + "19608": "AB890X", + "19609": "AB890X", + "19610": "AB890X", + "19611": "AB890X", + "19612": "AB890X", + "19640": "AB890X", + "19701": "AB890X", + "19702": "AB890X", + "19703": "AB890X", + "19706": "AB890X", + "19707": "AB890X", + "19708": "AB890X", + "19709": "AB890X", + "19710": "AB890X", + "19711": "AB890X", + "19712": "AB890X", + "19713": "AB890X", + "19714": "AB890X", + "19715": "AB890X", + "19716": "AB890X", + "19717": "AB890X", + "19718": "AB890X", + "19720": "AB890X", + "19721": "AB890X", + "19725": "AB890X", + "19726": "AB890X", + "19730": "AB890X", + "19731": "AB890X", + "19732": "AB890X", + "19733": "AB890X", + "19734": "AB890X", + "19735": "AB890X", + "19736": "AB890X", + "19801": "AB890X", + "19802": "AB890X", + "19803": "AB890X", + "19804": "AB890X", + "19805": "AB890X", + "19806": "AB890X", + "19807": "AB890X", + "19808": "AB890X", + "19809": "AB890X", + "19810": "AB890X", + "19850": "AB890X", + "19880": "AB890X", + "19884": "AB890X", + "19885": "AB890X", + "19886": "AB890X", + "19887": "AB890X", + "19889": "AB890X", + "19890": "AB890X", + "19891": "AB890X", + "19892": "AB890X", + "19893": "AB890X", + "19894": "AB890X", + "19895": "AB890X", + "19896": "AB890X", + "19897": "AB890X", + "19898": "AB890X", + "19899": "AB890X", + "19901": "AB890X", + "19902": "AB890X", + "19903": "AB890X", + "19904": "AB890X", + "19905": "AB890X", + "19906": "AB890X", + "19930": "AB890X", + "19931": "AB890X", + "19933": "AB890X", + "19934": "AB890X", + "19936": "AB890X", + "19938": "AB890X", + "19939": "AB890X", + "19940": "AB890X", + "19941": "AB890X", + "19943": "AB890X", + "19944": "AB890X", + "19945": "AB890X", + "19946": "AB890X", + "19947": "AB890X", + "19950": "AB890X", + "19951": "AB890X", + "19952": "AB890X", + "19953": "AB890X", + "19954": "AB890X", + "19955": "AB890X", + "19956": "AB890X", + "19958": "AB890X", + "19960": "AB890X", + "19961": "AB890X", + "19962": "AB890X", + "19963": "AB890X", + "19964": "AB890X", + "19966": "AB890X", + "19967": "AB890X", + "19968": "AB890X", + "19969": "AB890X", + "19970": "AB890X", + "19971": "AB890X", + "19973": "AB890X", + "19975": "AB890X", + "19977": "AB890X", + "19979": "AB890X", + "19980": "AB890X", + "20001": "AB892X", + "20002": "AB892X", + "20008": "AB892X", + "20011": "AB892X", + "20100": "AB890X", + "20101": "AB892X", + "20102": "AB892X", + "20103": "AB892X", + "20104": "AB892X", + "20105": "AB892X", + "20106": "AB892X", + "20107": "AB892X", + "20108": "AB892X", + "20109": "AB892X", + "20110": "AB892X", + "20111": "AB892X", + "20112": "AB892X", + "20113": "AB892X", + "20115": "AB892X", + "20116": "AB892X", + "20117": "AB892X", + "20118": "AB892X", + "20119": "AB892X", + "20120": "AB892X", + "20121": "AB892X", + "20122": "AB892X", + "20124": "AB892X", + "20128": "AB892X", + "20129": "AB892X", + "20130": "AB892X", + "20131": "AB892X", + "20132": "AB892X", + "20134": "AB892X", + "20135": "AB892X", + "20136": "AB892X", + "20137": "AB892X", + "20138": "AB892X", + "20139": "AB892X", + "20140": "AB892X", + "20141": "AB892X", + "20142": "AB892X", + "20143": "AB892X", + "20144": "AB892X", + "20146": "AB892X", + "20147": "AB892X", + "20148": "AB892X", + "20149": "AB892X", + "20151": "AB892X", + "20152": "AB892X", + "20153": "AB892X", + "20155": "AB892X", + "20156": "AB892X", + "20158": "AB892X", + "20159": "AB892X", + "20160": "AB892X", + "20163": "AB892X", + "20164": "AB892X", + "20165": "AB892X", + "20166": "AB892X", + "20167": "AB892X", + "20168": "AB892X", + "20169": "AB892X", + "20170": "AB892X", + "20171": "AB892X", + "20172": "AB892X", + "20175": "AB892X", + "20176": "AB892X", + "20177": "AB892X", + "20178": "AB892X", + "20180": "AB892X", + "20181": "AB892X", + "20182": "AB892X", + "20184": "AB892X", + "20185": "AB892X", + "20186": "AB892X", + "20187": "AB892X", + "20188": "AB892X", + "20189": "AB892X", + "20190": "AB892X", + "20191": "AB892X", + "20192": "AB892X", + "20193": "AB892X", + "20194": "AB892X", + "20195": "AB892X", + "20196": "AB892X", + "20197": "AB892X", + "20198": "AB892X", + "20199": "AB892X", + "20559": "AB892X", + "20601": "AB892X", + "20602": "AB892X", + "20603": "AB892X", + "20604": "AB892X", + "20606": "AB892X", + "20607": "AB892X", + "20608": "AB892X", + "20609": "AB892X", + "20610": "AB892X", + "20611": "AB892X", + "20612": "AB892X", + "20613": "AB892X", + "20615": "AB892X", + "20616": "AB892X", + "20617": "AB892X", + "20618": "AB892X", + "20619": "AB892X", + "20620": "AB892X", + "20621": "AB892X", + "20622": "AB892X", + "20623": "AB892X", + "20624": "AB892X", + "20625": "AB892X", + "20626": "AB892X", + "20627": "AB892X", + "20628": "AB892X", + "20629": "AB892X", + "20630": "AB892X", + "20632": "AB892X", + "20634": "AB892X", + "20635": "AB892X", + "20636": "AB892X", + "20637": "AB892X", + "20639": "AB892X", + "20640": "AB892X", + "20643": "AB892X", + "20645": "AB892X", + "20646": "AB892X", + "20650": "AB892X", + "20653": "AB892X", + "20656": "AB892X", + "20657": "AB892X", + "20658": "AB892X", + "20659": "AB892X", + "20660": "AB892X", + "20661": "AB892X", + "20662": "AB892X", + "20664": "AB892X", + "20667": "AB892X", + "20670": "AB892X", + "20674": "AB892X", + "20675": "AB892X", + "20676": "AB892X", + "20677": "AB892X", + "20678": "AB892X", + "20680": "AB892X", + "20682": "AB892X", + "20684": "AB892X", + "20685": "AB892X", + "20686": "AB892X", + "20687": "AB892X", + "20688": "AB892X", + "20689": "AB892X", + "20690": "AB892X", + "20692": "AB892X", + "20693": "AB892X", + "20695": "AB892X", + "20697": "AB892X", + "20701": "AB890X", + "20703": "AB892X", + "20704": "AB892X", + "20705": "AB892X", + "20706": "AB892X", + "20707": "AB892X", + "20708": "AB892X", + "20709": "AB892X", + "20710": "AB892X", + "20711": "AB890X", + "20712": "AB892X", + "20714": "AB892X", + "20715": "AB892X", + "20716": "AB892X", + "20717": "AB892X", + "20718": "AB892X", + "20719": "AB892X", + "20720": "AB892X", + "20721": "AB892X", + "20722": "AB892X", + "20723": "AB890X", + "20724": "AB890X", + "20725": "AB892X", + "20726": "AB892X", + "20731": "AB892X", + "20732": "AB892X", + "20733": "AB890X", + "20735": "AB892X", + "20736": "AB892X", + "20737": "AB892X", + "20738": "AB892X", + "20740": "AB892X", + "20741": "AB892X", + "20742": "AB892X", + "20743": "AB892X", + "20744": "AB892X", + "20745": "AB892X", + "20746": "AB892X", + "20747": "AB892X", + "20748": "AB892X", + "20749": "AB892X", + "20750": "AB892X", + "20751": "AB890X", + "20752": "AB892X", + "20753": "AB892X", + "20754": "AB892X", + "20755": "AB890X", + "20757": "AB892X", + "20758": "AB890X", + "20759": "AB890X", + "20762": "AB892X", + "20763": "AB890X", + "20764": "AB890X", + "20765": "AB890X", + "20768": "AB892X", + "20769": "AB892X", + "20770": "AB892X", + "20771": "AB892X", + "20772": "AB892X", + "20773": "AB892X", + "20774": "AB892X", + "20775": "AB892X", + "20776": "AB890X", + "20777": "AB890X", + "20778": "AB890X", + "20779": "AB890X", + "20781": "AB892X", + "20782": "AB892X", + "20783": "AB892X", + "20784": "AB892X", + "20785": "AB892X", + "20787": "AB892X", + "20788": "AB892X", + "20790": "AB892X", + "20791": "AB892X", + "20792": "AB892X", + "20794": "AB890X", + "20797": "AB892X", + "20799": "AB892X", + "20810": "AB892X", + "20811": "AB892X", + "20812": "AB892X", + "20813": "AB892X", + "20814": "AB892X", + "20815": "AB892X", + "20816": "AB892X", + "20817": "AB892X", + "20818": "AB892X", + "20824": "AB892X", + "20825": "AB892X", + "20827": "AB892X", + "20830": "AB892X", + "20832": "AB892X", + "20833": "AB892X", + "20837": "AB892X", + "20838": "AB892X", + "20839": "AB892X", + "20841": "AB892X", + "20842": "AB892X", + "20847": "AB892X", + "20848": "AB892X", + "20849": "AB892X", + "20850": "AB892X", + "20851": "AB892X", + "20852": "AB892X", + "20853": "AB892X", + "20854": "AB892X", + "20855": "AB892X", + "20857": "AB892X", + "20859": "AB892X", + "20860": "AB892X", + "20861": "AB892X", + "20862": "AB892X", + "20866": "AB892X", + "20868": "AB892X", + "20871": "AB892X", + "20872": "AB892X", + "20874": "AB892X", + "20875": "AB892X", + "20876": "AB892X", + "20877": "AB892X", + "20878": "AB892X", + "20879": "AB892X", + "20880": "AB892X", + "20882": "AB892X", + "20883": "AB892X", + "20884": "AB892X", + "20885": "AB892X", + "20886": "AB892X", + "20889": "AB892X", + "20891": "AB892X", + "20892": "AB892X", + "20894": "AB892X", + "20895": "AB892X", + "20896": "AB892X", + "20897": "AB892X", + "20898": "AB892X", + "20899": "AB892X", + "20901": "AB892X", + "20902": "AB892X", + "20903": "AB892X", + "20904": "AB892X", + "20905": "AB892X", + "20906": "AB892X", + "20907": "AB892X", + "20908": "AB892X", + "20910": "AB892X", + "20911": "AB892X", + "20912": "AB892X", + "20913": "AB892X", + "20914": "AB892X", + "20915": "AB892X", + "20916": "AB892X", + "20918": "AB892X", + "20993": "AB892X", + "20997": "AB892X", + "21001": "AB890X", + "21005": "AB890X", + "21009": "AB890X", + "21010": "AB890X", + "21012": "AB890X", + "21013": "AB890X", + "21014": "AB890X", + "21015": "AB890X", + "21017": "AB890X", + "21018": "AB890X", + "21020": "AB890X", + "21022": "AB890X", + "21023": "AB890X", + "21027": "AB890X", + "21028": "AB890X", + "21029": "AB890X", + "21030": "AB890X", + "21031": "AB890X", + "21032": "AB890X", + "21034": "AB890X", + "21035": "AB890X", + "21036": "AB890X", + "21037": "AB890X", + "21040": "AB890X", + "21041": "AB890X", + "21042": "AB890X", + "21043": "AB890X", + "21044": "AB890X", + "21045": "AB890X", + "21046": "AB890X", + "21047": "AB890X", + "21048": "AB890X", + "21050": "AB890X", + "21051": "AB890X", + "21052": "AB890X", + "21053": "AB890X", + "21054": "AB890X", + "21056": "AB890X", + "21057": "AB890X", + "21060": "AB890X", + "21061": "AB890X", + "21062": "AB890X", + "21065": "AB890X", + "21071": "AB890X", + "21074": "AB890X", + "21075": "AB890X", + "21076": "AB890X", + "21077": "AB890X", + "21078": "AB890X", + "21082": "AB890X", + "21084": "AB890X", + "21085": "AB890X", + "21087": "AB890X", + "21088": "AB890X", + "21090": "AB890X", + "21092": "AB890X", + "21093": "AB890X", + "21094": "AB890X", + "21098": "AB890X", + "21102": "AB890X", + "21104": "AB890X", + "21105": "AB890X", + "21106": "AB890X", + "21108": "AB890X", + "21111": "AB890X", + "21113": "AB890X", + "21114": "AB890X", + "21117": "AB890X", + "21120": "AB890X", + "21122": "AB890X", + "21123": "AB890X", + "21128": "AB890X", + "21130": "AB890X", + "21131": "AB890X", + "21132": "AB890X", + "21133": "AB890X", + "21136": "AB890X", + "21139": "AB890X", + "21140": "AB890X", + "21144": "AB890X", + "21146": "AB890X", + "21150": "AB890X", + "21152": "AB890X", + "21153": "AB890X", + "21154": "AB890X", + "21155": "AB890X", + "21156": "AB890X", + "21157": "AB890X", + "21158": "AB890X", + "21160": "AB890X", + "21161": "AB890X", + "21162": "AB890X", + "21163": "AB890X", + "21200": "AB890X", + "21201": "AB890X", + "21202": "AB890X", + "21203": "AB890X", + "21204": "AB890X", + "21205": "AB890X", + "21206": "AB890X", + "21207": "AB890X", + "21208": "AB890X", + "21209": "AB890X", + "21210": "AB890X", + "21211": "AB890X", + "21212": "AB890X", + "21213": "AB890X", + "21214": "AB890X", + "21215": "AB890X", + "21216": "AB890X", + "21217": "AB890X", + "21218": "AB890X", + "21219": "AB890X", + "21220": "AB890X", + "21221": "AB890X", + "21222": "AB890X", + "21223": "AB890X", + "21224": "AB890X", + "21225": "AB890X", + "21226": "AB890X", + "21227": "AB890X", + "21228": "AB890X", + "21229": "AB890X", + "21230": "AB890X", + "21231": "AB890X", + "21233": "AB890X", + } +) diff --git a/.vim/bundle/black/profiling/dict_huge.py b/.vim/bundle/black/profiling/dict_huge.py new file mode 100644 index 0000000..11c7fe1 --- /dev/null +++ b/.vim/bundle/black/profiling/dict_huge.py @@ -0,0 +1,41440 @@ +config = some.Structure( + some_mapping={ + "00501": "AB890X", + "00544": "AB890X", + "01001": "AB889X", + "01002": "AB889X", + "01003": "AB889X", + "01004": "AB889X", + "01005": "AB889X", + "01007": "AB889X", + "01008": "AB889X", + "01009": "AB889X", + "01010": "AB889X", + "01011": "AB889X", + "01012": "AB889X", + "01013": "AB889X", + "01014": "AB889X", + "01020": "AB889X", + "01021": "AB889X", + "01022": "AB889X", + "01026": "AB889X", + "01027": "AB889X", + "01028": "AB889X", + "01029": "AB889X", + "01030": "AB889X", + "01031": "AB889X", + "01032": "AB889X", + "01033": "AB889X", + "01034": "AB889X", + "01035": "AB889X", + "01036": "AB889X", + "01037": "AB889X", + "01038": "AB889X", + "01039": "AB889X", + "01040": "AB889X", + "01041": "AB889X", + "01050": "AB889X", + "01053": "AB889X", + "01054": "AB889X", + "01056": "AB889X", + "01057": "AB889X", + "01059": "AB889X", + "01060": "AB889X", + "01061": "AB889X", + "01062": "AB889X", + "01063": "AB889X", + "01066": "AB889X", + "01068": "AB889X", + "01069": "AB889X", + "01070": "AB889X", + "01071": "AB889X", + "01072": "AB889X", + "01073": "AB889X", + "01074": "AB889X", + "01075": "AB889X", + "01077": "AB889X", + "01079": "AB889X", + "01080": "AB889X", + "01081": "AB889X", + "01082": "AB889X", + "01083": "AB889X", + "01084": "AB889X", + "01085": "AB889X", + "01086": "AB889X", + "01088": "AB889X", + "01089": "AB889X", + "01090": "AB889X", + "01092": "AB889X", + "01093": "AB889X", + "01094": "AB889X", + "01095": "AB889X", + "01096": "AB889X", + "01097": "AB889X", + "01098": "AB889X", + "01101": "AB889X", + "01102": "AB889X", + "01103": "AB889X", + "01104": "AB889X", + "01105": "AB889X", + "01106": "AB889X", + "01107": "AB889X", + "01108": "AB889X", + "01109": "AB889X", + "01111": "AB889X", + "01115": "AB889X", + "01116": "AB889X", + "01118": "AB889X", + "01119": "AB889X", + "01128": "AB889X", + "01129": "AB889X", + "01133": "AB889X", + "01138": "AB889X", + "01139": "AB889X", + "01144": "AB889X", + "01151": "AB889X", + "01152": "AB889X", + "01195": "AB889X", + "01199": "AB889X", + "01201": "AB890X", + "01202": "AB889X", + "01203": "AB889X", + "01220": "AB890X", + "01222": "AB889X", + "01223": "AB889X", + "01224": "AB889X", + "01225": "AB889X", + "01226": "AB889X", + "01227": "AB889X", + "01229": "AB889X", + "01230": "AB889X", + "01235": "AB889X", + "01236": "AB889X", + "01237": "AB889X", + "01238": "AB889X", + "01240": "AB889X", + "01242": "AB889X", + "01243": "AB889X", + "01244": "AB889X", + "01245": "AB889X", + "01247": "AB890X", + "01252": "AB889X", + "01253": "AB889X", + "01254": "AB889X", + "01255": "AB889X", + "01256": "AB889X", + "01257": "AB890X", + "01258": "AB889X", + "01259": "AB889X", + "01260": "AB889X", + "01262": "AB889X", + "01263": "AB889X", + "01264": "AB889X", + "01266": "AB889X", + "01267": "AB890X", + "01270": "AB889X", + "01301": "AB889X", + "01302": "AB889X", + "01330": "AB889X", + "01331": "AB889X", + "01337": "AB889X", + "01338": "AB889X", + "01339": "AB889X", + "01340": "AB889X", + "01341": "AB889X", + "01342": "AB889X", + "01343": "AB889X", + "01344": "AB889X", + "01346": "AB889X", + "01347": "AB889X", + "01349": "AB889X", + "01350": "AB889X", + "01351": "AB889X", + "01354": "AB889X", + "01355": "AB889X", + "01360": "AB889X", + "01364": "AB889X", + "01366": "AB889X", + "01367": "AB890X", + "01368": "AB889X", + "01370": "AB889X", + "01373": "AB889X", + "01375": "AB889X", + "01376": "AB889X", + "01378": "AB889X", + "01379": "AB889X", + "01380": "AB889X", + "01420": "AB889X", + "01430": "AB889X", + "01431": "AB889X", + "01432": "AB889X", + "01434": "AB889X", + "01436": "AB889X", + "01438": "AB889X", + "01440": "AB889X", + "01441": "AB889X", + "01450": "AB889X", + "01451": "AB889X", + "01452": "AB889X", + "01453": "AB889X", + "01460": "AB889X", + "01462": "AB889X", + "01463": "AB889X", + "01464": "AB889X", + "01467": "AB889X", + "01468": "AB889X", + "01469": "AB889X", + "01470": "AB889X", + "01471": "AB889X", + "01472": "AB889X", + "01473": "AB889X", + "01474": "AB889X", + "01475": "AB889X", + "01477": "AB889X", + "01501": "AB889X", + "01503": "AB889X", + "01504": "AB889X", + "01505": "AB889X", + "01506": "AB889X", + "01507": "AB889X", + "01508": "AB889X", + "01509": "AB889X", + "01510": "AB889X", + "01515": "AB889X", + "01516": "AB889X", + "01517": "AB889X", + "01518": "AB889X", + "01519": "AB889X", + "01520": "AB889X", + "01521": "AB889X", + "01522": "AB889X", + "01523": "AB889X", + "01524": "AB889X", + "01525": "AB889X", + "01526": "AB889X", + "01527": "AB889X", + "01529": "AB889X", + "01531": "AB889X", + "01532": "AB889X", + "01534": "AB889X", + "01535": "AB889X", + "01536": "AB889X", + "01537": "AB889X", + "01538": "AB889X", + "01540": "AB889X", + "01541": "AB889X", + "01542": "AB889X", + "01543": "AB889X", + "01545": "AB889X", + "01546": "AB889X", + "01550": "AB889X", + "01560": "AB889X", + "01561": "AB889X", + "01562": "AB889X", + "01564": "AB889X", + "01566": "AB889X", + "01568": "AB889X", + "01569": "AB889X", + "01570": "AB889X", + "01571": "AB889X", + "01580": "AB889X", + "01581": "AB889X", + "01582": "AB889X", + "01583": "AB889X", + "01585": "AB889X", + "01586": "AB889X", + "01588": "AB889X", + "01590": "AB889X", + "01601": "AB889X", + "01602": "AB889X", + "01603": "AB889X", + "01604": "AB889X", + "01605": "AB889X", + "01606": "AB889X", + "01607": "AB889X", + "01608": "AB889X", + "01609": "AB889X", + "01610": "AB889X", + "01611": "AB889X", + "01612": "AB889X", + "01613": "AB889X", + "01614": "AB889X", + "01615": "AB889X", + "01653": "AB889X", + "01654": "AB889X", + "01655": "AB889X", + "01701": "AB889X", + "01702": "AB889X", + "01703": "AB889X", + "01704": "AB889X", + "01705": "AB889X", + "01718": "AB889X", + "01719": "AB889X", + "01720": "AB889X", + "01721": "AB889X", + "01730": "AB889X", + "01731": "AB889X", + "01740": "AB889X", + "01741": "AB889X", + "01742": "AB889X", + "01745": "AB889X", + "01746": "AB889X", + "01747": "AB889X", + "01748": "AB889X", + "01749": "AB889X", + "01752": "AB889X", + "01754": "AB889X", + "01756": "AB889X", + "01757": "AB889X", + "01760": "AB889X", + "01770": "AB889X", + "01772": "AB889X", + "01773": "AB889X", + "01775": "AB889X", + "01776": "AB889X", + "01778": "AB889X", + "01784": "AB889X", + "01801": "AB889X", + "01803": "AB889X", + "01805": "AB889X", + "01806": "AB889X", + "01807": "AB889X", + "01808": "AB889X", + "01810": "AB889X", + "01812": "AB889X", + "01813": "AB889X", + "01815": "AB889X", + "01821": "AB889X", + "01822": "AB889X", + "01824": "AB889X", + "01826": "AB889X", + "01827": "AB889X", + "01830": "AB889X", + "01831": "AB889X", + "01832": "AB889X", + "01833": "AB889X", + "01834": "AB889X", + "01835": "AB889X", + "01840": "AB889X", + "01841": "AB889X", + "01842": "AB889X", + "01843": "AB889X", + "01844": "AB889X", + "01845": "AB889X", + "01850": "AB889X", + "01851": "AB889X", + "01852": "AB889X", + "01853": "AB889X", + "01854": "AB889X", + "01860": "AB889X", + "01862": "AB889X", + "01863": "AB889X", + "01864": "AB889X", + "01865": "AB889X", + "01866": "AB889X", + "01867": "AB889X", + "01876": "AB889X", + "01879": "AB889X", + "01880": "AB889X", + "01885": "AB889X", + "01886": "AB889X", + "01887": "AB889X", + "01888": "AB889X", + "01889": "AB889X", + "01890": "AB889X", + "01899": "AB889X", + "01901": "AB889X", + "01902": "AB889X", + "01903": "AB889X", + "01904": "AB889X", + "01905": "AB889X", + "01906": "AB889X", + "01907": "AB889X", + "01908": "AB889X", + "01910": "AB889X", + "01913": "AB889X", + "01915": "AB889X", + "01921": "AB889X", + "01922": "AB889X", + "01923": "AB889X", + "01929": "AB889X", + "01930": "AB889X", + "01931": "AB889X", + "01936": "AB889X", + "01937": "AB889X", + "01938": "AB889X", + "01940": "AB889X", + "01944": "AB889X", + "01945": "AB889X", + "01949": "AB889X", + "01950": "AB889X", + "01951": "AB889X", + "01952": "AB889X", + "01960": "AB889X", + "01961": "AB889X", + "01965": "AB889X", + "01966": "AB889X", + "01969": "AB889X", + "01970": "AB889X", + "01971": "AB889X", + "01982": "AB889X", + "01983": "AB889X", + "01984": "AB889X", + "01985": "AB889X", + "02018": "AB889X", + "02019": "AB889X", + "02020": "AB889X", + "02021": "AB889X", + "02025": "AB889X", + "02026": "AB889X", + "02027": "AB889X", + "02030": "AB889X", + "02031": "AB889X", + "02032": "AB889X", + "02035": "AB889X", + "02038": "AB889X", + "02040": "AB889X", + "02041": "AB889X", + "02043": "AB889X", + "02044": "AB889X", + "02045": "AB889X", + "02047": "AB889X", + "02048": "AB889X", + "02050": "AB889X", + "02051": "AB889X", + "02052": "AB889X", + "02053": "AB889X", + "02054": "AB889X", + "02055": "AB889X", + "02056": "AB889X", + "02059": "AB889X", + "02060": "AB889X", + "02061": "AB889X", + "02062": "AB889X", + "02065": "AB889X", + "02066": "AB889X", + "02067": "AB889X", + "02070": "AB889X", + "02071": "AB889X", + "02072": "AB889X", + "02081": "AB889X", + "02090": "AB889X", + "02093": "AB889X", + "02108": "AB889X", + "02109": "AB889X", + "02110": "AB889X", + "02111": "AB889X", + "02112": "AB889X", + "02113": "AB889X", + "02114": "AB889X", + "02115": "AB889X", + "02116": "AB889X", + "02117": "AB889X", + "02118": "AB889X", + "02119": "AB889X", + "02120": "AB889X", + "02121": "AB889X", + "02122": "AB889X", + "02123": "AB889X", + "02124": "AB889X", + "02125": "AB889X", + "02126": "AB889X", + "02127": "AB889X", + "02128": "AB889X", + "02129": "AB889X", + "02130": "AB889X", + "02131": "AB889X", + "02132": "AB889X", + "02133": "AB889X", + "02134": "AB889X", + "02135": "AB889X", + "02136": "AB889X", + "02137": "AB889X", + "02138": "AB889X", + "02139": "AB889X", + "02140": "AB889X", + "02141": "AB889X", + "02142": "AB889X", + "02143": "AB889X", + "02144": "AB889X", + "02145": "AB889X", + "02148": "AB889X", + "02149": "AB889X", + "02150": "AB889X", + "02151": "AB889X", + "02152": "AB889X", + "02153": "AB889X", + "02155": "AB889X", + "02156": "AB889X", + "02163": "AB889X", + "02169": "AB889X", + "02170": "AB889X", + "02171": "AB889X", + "02176": "AB889X", + "02180": "AB889X", + "02184": "AB889X", + "02185": "AB889X", + "02186": "AB889X", + "02187": "AB889X", + "02188": "AB889X", + "02189": "AB889X", + "02190": "AB889X", + "02191": "AB889X", + "02196": "AB889X", + "02199": "AB889X", + "02201": "AB889X", + "02203": "AB889X", + "02204": "AB889X", + "02205": "AB889X", + "02206": "AB889X", + "02207": "AB889X", + "02210": "AB889X", + "02211": "AB889X", + "02212": "AB889X", + "02215": "AB889X", + "02216": "AB889X", + "02217": "AB889X", + "02222": "AB889X", + "02228": "AB889X", + "02238": "AB889X", + "02239": "AB889X", + "02241": "AB889X", + "02266": "AB889X", + "02269": "AB889X", + "02283": "AB889X", + "02284": "AB889X", + "02293": "AB889X", + "02295": "AB889X", + "02297": "AB889X", + "02298": "AB889X", + "02301": "AB889X", + "02302": "AB889X", + "02303": "AB889X", + "02304": "AB889X", + "02305": "AB889X", + "02322": "AB889X", + "02324": "AB889X", + "02325": "AB889X", + "02327": "AB889X", + "02330": "AB889X", + "02331": "AB889X", + "02332": "AB889X", + "02333": "AB889X", + "02334": "AB889X", + "02337": "AB889X", + "02338": "AB889X", + "02339": "AB889X", + "02340": "AB889X", + "02341": "AB889X", + "02343": "AB889X", + "02344": "AB889X", + "02345": "AB889X", + "02346": "AB889X", + "02347": "AB889X", + "02348": "AB889X", + "02349": "AB889X", + "02350": "AB889X", + "02351": "AB889X", + "02355": "AB889X", + "02356": "AB889X", + "02357": "AB889X", + "02358": "AB889X", + "02359": "AB889X", + "02360": "AB889X", + "02361": "AB889X", + "02362": "AB889X", + "02364": "AB889X", + "02366": "AB889X", + "02367": "AB889X", + "02368": "AB889X", + "02370": "AB889X", + "02375": "AB889X", + "02379": "AB889X", + "02381": "AB889X", + "02382": "AB889X", + "02420": "AB889X", + "02421": "AB889X", + "02445": "AB889X", + "02446": "AB889X", + "02447": "AB889X", + "02451": "AB889X", + "02452": "AB889X", + "02453": "AB889X", + "02454": "AB889X", + "02455": "AB889X", + "02456": "AB889X", + "02457": "AB889X", + "02458": "AB890X", + "02459": "AB889X", + "02460": "AB889X", + "02461": "AB889X", + "02462": "AB889X", + "02464": "AB889X", + "02465": "AB889X", + "02466": "AB889X", + "02467": "AB889X", + "02468": "AB889X", + "02471": "AB889X", + "02472": "AB889X", + "02474": "AB889X", + "02475": "AB889X", + "02476": "AB889X", + "02477": "AB889X", + "02478": "AB889X", + "02479": "AB889X", + "02481": "AB889X", + "02482": "AB889X", + "02492": "AB889X", + "02493": "AB889X", + "02494": "AB889X", + "02495": "AB889X", + "02532": "AB889X", + "02534": "AB889X", + "02535": "AB889X", + "02536": "AB889X", + "02537": "AB889X", + "02538": "AB889X", + "02539": "AB889X", + "02540": "AB889X", + "02541": "AB889X", + "02542": "AB889X", + "02543": "AB889X", + "02552": "AB889X", + "02553": "AB889X", + "02554": "AB889X", + "02556": "AB889X", + "02557": "AB889X", + "02558": "AB889X", + "02559": "AB889X", + "02561": "AB889X", + "02562": "AB889X", + "02563": "AB889X", + "02564": "AB889X", + "02565": "AB889X", + "02568": "AB889X", + "02571": "AB889X", + "02573": "AB889X", + "02574": "AB889X", + "02575": "AB889X", + "02576": "AB889X", + "02584": "AB889X", + "02601": "AB889X", + "02630": "AB889X", + "02631": "AB889X", + "02632": "AB889X", + "02633": "AB889X", + "02634": "AB889X", + "02635": "AB889X", + "02636": "AB889X", + "02637": "AB889X", + "02638": "AB889X", + "02639": "AB889X", + "02641": "AB889X", + "02642": "AB889X", + "02643": "AB889X", + "02644": "AB889X", + "02645": "AB889X", + "02646": "AB889X", + "02647": "AB889X", + "02648": "AB889X", + "02649": "AB889X", + "02650": "AB889X", + "02651": "AB889X", + "02652": "AB889X", + "02653": "AB889X", + "02655": "AB889X", + "02657": "AB889X", + "02659": "AB889X", + "02660": "AB889X", + "02661": "AB889X", + "02662": "AB889X", + "02663": "AB889X", + "02664": "AB889X", + "02666": "AB889X", + "02667": "AB889X", + "02668": "AB889X", + "02669": "AB889X", + "02670": "AB889X", + "02671": "AB889X", + "02672": "AB889X", + "02673": "AB889X", + "02675": "AB889X", + "02702": "AB889X", + "02703": "AB889X", + "02712": "AB889X", + "02713": "AB889X", + "02714": "AB889X", + "02715": "AB889X", + "02717": "AB889X", + "02718": "AB889X", + "02719": "AB889X", + "02720": "AB889X", + "02721": "AB889X", + "02722": "AB889X", + "02723": "AB889X", + "02724": "AB889X", + "02725": "AB889X", + "02726": "AB889X", + "02738": "AB889X", + "02739": "AB889X", + "02740": "AB889X", + "02741": "AB889X", + "02742": "AB889X", + "02743": "AB889X", + "02744": "AB889X", + "02745": "AB889X", + "02746": "AB889X", + "02747": "AB889X", + "02748": "AB889X", + "02760": "AB889X", + "02761": "AB889X", + "02762": "AB889X", + "02763": "AB889X", + "02764": "AB889X", + "02766": "AB889X", + "02767": "AB889X", + "02768": "AB889X", + "02769": "AB889X", + "02770": "AB889X", + "02771": "AB889X", + "02777": "AB889X", + "02779": "AB889X", + "02780": "AB889X", + "02783": "AB889X", + "02790": "AB889X", + "02791": "AB889X", + "02801": "AB889X", + "02802": "AB889X", + "02804": "AB889X", + "02806": "AB889X", + "02807": "AB889X", + "02808": "AB889X", + "02809": "AB889X", + "02812": "AB889X", + "02813": "AB889X", + "02814": "AB889X", + "02815": "AB889X", + "02816": "AB889X", + "02817": "AB889X", + "02818": "AB889X", + "02822": "AB889X", + "02823": "AB889X", + "02824": "AB889X", + "02825": "AB889X", + "02826": "AB889X", + "02827": "AB889X", + "02828": "AB889X", + "02829": "AB889X", + "02830": "AB889X", + "02831": "AB889X", + "02832": "AB889X", + "02833": "AB889X", + "02835": "AB889X", + "02836": "AB889X", + "02837": "AB889X", + "02838": "AB889X", + "02839": "AB889X", + "02840": "AB889X", + "02841": "AB889X", + "02842": "AB889X", + "02852": "AB889X", + "02854": "AB889X", + "02857": "AB889X", + "02858": "AB889X", + "02859": "AB889X", + "02860": "AB889X", + "02861": "AB889X", + "02862": "AB889X", + "02863": "AB889X", + "02864": "AB889X", + "02865": "AB889X", + "02871": "AB889X", + "02872": "AB889X", + "02873": "AB889X", + "02874": "AB889X", + "02875": "AB889X", + "02876": "AB889X", + "02877": "AB889X", + "02878": "AB889X", + "02879": "AB889X", + "02880": "AB889X", + "02881": "AB889X", + "02882": "AB889X", + "02883": "AB889X", + "02885": "AB889X", + "02886": "AB889X", + "02887": "AB889X", + "02888": "AB889X", + "02889": "AB889X", + "02891": "AB889X", + "02892": "AB889X", + "02893": "AB889X", + "02894": "AB889X", + "02895": "AB889X", + "02896": "AB889X", + "02898": "AB889X", + "02901": "AB889X", + "02902": "AB889X", + "02903": "AB889X", + "02904": "AB889X", + "02905": "AB889X", + "02906": "AB889X", + "02907": "AB889X", + "02908": "AB889X", + "02909": "AB889X", + "02910": "AB889X", + "02911": "AB889X", + "02912": "AB889X", + "02914": "AB889X", + "02915": "AB889X", + "02916": "AB889X", + "02917": "AB889X", + "02918": "AB889X", + "02919": "AB889X", + "02920": "AB889X", + "02921": "AB889X", + "02940": "AB889X", + "03031": "AB889X", + "03032": "AB889X", + "03033": "AB889X", + "03034": "AB889X", + "03036": "AB889X", + "03037": "AB889X", + "03038": "AB889X", + "03040": "AB889X", + "03041": "AB889X", + "03042": "AB889X", + "03043": "AB889X", + "03044": "AB889X", + "03045": "AB889X", + "03046": "AB889X", + "03047": "AB889X", + "03048": "AB889X", + "03049": "AB889X", + "03051": "AB889X", + "03052": "AB889X", + "03053": "AB889X", + "03054": "AB889X", + "03055": "AB889X", + "03057": "AB889X", + "03060": "AB889X", + "03061": "AB889X", + "03062": "AB889X", + "03063": "AB889X", + "03064": "AB889X", + "03070": "AB889X", + "03071": "AB889X", + "03073": "AB889X", + "03076": "AB889X", + "03077": "AB889X", + "03079": "AB889X", + "03082": "AB889X", + "03084": "AB889X", + "03086": "AB889X", + "03087": "AB889X", + "03101": "AB889X", + "03102": "AB889X", + "03103": "AB889X", + "03104": "AB889X", + "03105": "AB889X", + "03106": "AB889X", + "03107": "AB889X", + "03108": "AB889X", + "03109": "AB889X", + "03110": "AB889X", + "03111": "AB889X", + "03215": "AB889X", + "03216": "AB889X", + "03217": "AB889X", + "03218": "AB889X", + "03220": "AB889X", + "03221": "AB889X", + "03222": "AB889X", + "03223": "AB889X", + "03224": "AB889X", + "03225": "AB889X", + "03226": "AB889X", + "03227": "AB889X", + "03229": "AB889X", + "03230": "AB889X", + "03231": "AB889X", + "03233": "AB889X", + "03234": "AB889X", + "03235": "AB889X", + "03237": "AB889X", + "03238": "AB889X", + "03240": "AB889X", + "03241": "AB889X", + "03242": "AB889X", + "03243": "AB889X", + "03244": "AB889X", + "03245": "AB889X", + "03246": "AB889X", + "03247": "AB889X", + "03249": "AB889X", + "03251": "AB889X", + "03252": "AB889X", + "03253": "AB889X", + "03254": "AB889X", + "03255": "AB889X", + "03256": "AB889X", + "03257": "AB889X", + "03258": "AB889X", + "03259": "AB889X", + "03260": "AB889X", + "03261": "AB889X", + "03262": "AB889X", + "03263": "AB889X", + "03264": "AB889X", + "03266": "AB889X", + "03268": "AB889X", + "03269": "AB889X", + "03272": "AB889X", + "03273": "AB889X", + "03274": "AB889X", + "03275": "AB889X", + "03276": "AB889X", + "03278": "AB889X", + "03279": "AB889X", + "03280": "AB889X", + "03281": "AB889X", + "03282": "AB889X", + "03284": "AB889X", + "03287": "AB889X", + "03289": "AB889X", + "03290": "AB889X", + "03291": "AB889X", + "03293": "AB889X", + "03298": "AB889X", + "03299": "AB889X", + "03301": "AB889X", + "03302": "AB889X", + "03303": "AB889X", + "03304": "AB889X", + "03305": "AB889X", + "03307": "AB889X", + "03431": "AB889X", + "03435": "AB889X", + "03440": "AB889X", + "03441": "AB889X", + "03442": "AB889X", + "03443": "AB889X", + "03444": "AB889X", + "03445": "AB889X", + "03446": "AB889X", + "03447": "AB889X", + "03448": "AB889X", + "03449": "AB889X", + "03450": "AB889X", + "03451": "AB889X", + "03452": "AB889X", + "03455": "AB889X", + "03456": "AB889X", + "03457": "AB889X", + "03458": "AB889X", + "03461": "AB889X", + "03462": "AB889X", + "03464": "AB889X", + "03465": "AB889X", + "03466": "AB889X", + "03467": "AB889X", + "03468": "AB889X", + "03469": "AB889X", + "03470": "AB889X", + "03561": "AB889X", + "03570": "AB889X", + "03574": "AB889X", + "03575": "AB889X", + "03576": "AB889X", + "03579": "AB889X", + "03580": "AB889X", + "03581": "AB889X", + "03582": "AB889X", + "03583": "AB889X", + "03584": "AB889X", + "03585": "AB889X", + "03586": "AB889X", + "03588": "AB889X", + "03589": "AB889X", + "03590": "AB889X", + "03592": "AB889X", + "03593": "AB889X", + "03595": "AB889X", + "03597": "AB889X", + "03598": "AB889X", + "03601": "AB889X", + "03602": "AB889X", + "03603": "AB889X", + "03604": "AB889X", + "03605": "AB889X", + "03607": "AB889X", + "03608": "AB889X", + "03609": "AB889X", + "03740": "AB889X", + "03741": "AB889X", + "03743": "AB889X", + "03745": "AB889X", + "03746": "AB889X", + "03748": "AB889X", + "03749": "AB889X", + "03750": "AB889X", + "03751": "AB889X", + "03752": "AB889X", + "03753": "AB889X", + "03754": "AB889X", + "03755": "AB889X", + "03756": "AB889X", + "03765": "AB889X", + "03766": "AB889X", + "03768": "AB889X", + "03769": "AB889X", + "03770": "AB889X", + "03771": "AB889X", + "03773": "AB889X", + "03774": "AB889X", + "03777": "AB889X", + "03779": "AB889X", + "03780": "AB889X", + "03781": "AB889X", + "03782": "AB889X", + "03784": "AB889X", + "03785": "AB889X", + "03801": "AB889X", + "03802": "AB889X", + "03803": "AB889X", + "03804": "AB889X", + "03805": "AB889X", + "03809": "AB889X", + "03810": "AB889X", + "03811": "AB889X", + "03812": "AB889X", + "03813": "AB889X", + "03814": "AB889X", + "03815": "AB889X", + "03816": "AB889X", + "03817": "AB889X", + "03818": "AB889X", + "03819": "AB889X", + "03820": "AB889X", + "03821": "AB889X", + "03822": "AB889X", + "03823": "AB889X", + "03824": "AB889X", + "03825": "AB889X", + "03826": "AB889X", + "03827": "AB889X", + "03830": "AB889X", + "03832": "AB889X", + "03833": "AB889X", + "03835": "AB889X", + "03836": "AB889X", + "03837": "AB889X", + "03838": "AB889X", + "03839": "AB889X", + "03840": "AB889X", + "03841": "AB889X", + "03842": "AB889X", + "03843": "AB889X", + "03844": "AB889X", + "03845": "AB889X", + "03846": "AB889X", + "03847": "AB889X", + "03848": "AB889X", + "03849": "AB889X", + "03850": "AB889X", + "03851": "AB889X", + "03852": "AB889X", + "03853": "AB889X", + "03854": "AB889X", + "03855": "AB889X", + "03856": "AB889X", + "03857": "AB889X", + "03858": "AB889X", + "03859": "AB889X", + "03860": "AB889X", + "03861": "AB889X", + "03862": "AB889X", + "03864": "AB889X", + "03865": "AB889X", + "03866": "AB889X", + "03867": "AB889X", + "03868": "AB889X", + "03869": "AB889X", + "03870": "AB889X", + "03871": "AB889X", + "03872": "AB889X", + "03873": "AB889X", + "03874": "AB889X", + "03875": "AB889X", + "03878": "AB889X", + "03882": "AB889X", + "03883": "AB889X", + "03884": "AB889X", + "03885": "AB889X", + "03886": "AB889X", + "03887": "AB889X", + "03890": "AB889X", + "03894": "AB889X", + "03896": "AB889X", + "03897": "AB889X", + "03901": "AB889X", + "03902": "AB889X", + "03903": "AB889X", + "03904": "AB889X", + "03905": "AB889X", + "03906": "AB889X", + "03907": "AB889X", + "03908": "AB889X", + "03909": "AB889X", + "03910": "AB889X", + "03911": "AB889X", + "04001": "AB889X", + "04002": "AB889X", + "04003": "AB889X", + "04004": "AB889X", + "04005": "AB889X", + "04006": "AB889X", + "04007": "AB889X", + "04008": "AB889X", + "04009": "AB889X", + "04010": "AB889X", + "04011": "AB889X", + "04013": "AB889X", + "04014": "AB889X", + "04015": "AB889X", + "04016": "AB889X", + "04017": "AB889X", + "04019": "AB889X", + "04020": "AB889X", + "04021": "AB889X", + "04022": "AB889X", + "04024": "AB889X", + "04027": "AB889X", + "04028": "AB889X", + "04029": "AB889X", + "04030": "AB889X", + "04032": "AB889X", + "04033": "AB889X", + "04034": "AB889X", + "04037": "AB889X", + "04038": "AB889X", + "04039": "AB889X", + "04040": "AB889X", + "04041": "AB889X", + "04042": "AB889X", + "04043": "AB889X", + "04046": "AB889X", + "04047": "AB889X", + "04048": "AB889X", + "04049": "AB889X", + "04050": "AB889X", + "04051": "AB889X", + "04054": "AB889X", + "04055": "AB889X", + "04056": "AB889X", + "04057": "AB889X", + "04061": "AB889X", + "04062": "AB889X", + "04063": "AB889X", + "04064": "AB889X", + "04066": "AB889X", + "04068": "AB889X", + "04069": "AB889X", + "04070": "AB889X", + "04071": "AB889X", + "04072": "AB889X", + "04073": "AB889X", + "04074": "AB889X", + "04075": "AB889X", + "04076": "AB889X", + "04077": "AB889X", + "04078": "AB889X", + "04079": "AB889X", + "04082": "AB889X", + "04083": "AB889X", + "04084": "AB889X", + "04085": "AB889X", + "04086": "AB889X", + "04087": "AB889X", + "04088": "AB889X", + "04090": "AB889X", + "04091": "AB889X", + "04092": "AB889X", + "04093": "AB889X", + "04094": "AB889X", + "04095": "AB889X", + "04096": "AB889X", + "04097": "AB889X", + "04098": "AB889X", + "04101": "AB889X", + "04102": "AB889X", + "04103": "AB889X", + "04104": "AB889X", + "04105": "AB889X", + "04106": "AB889X", + "04107": "AB889X", + "04108": "AB889X", + "04109": "AB889X", + "04110": "AB889X", + "04112": "AB889X", + "04116": "AB889X", + "04122": "AB889X", + "04123": "AB889X", + "04124": "AB889X", + "04210": "AB889X", + "04211": "AB889X", + "04212": "AB889X", + "04216": "AB889X", + "04217": "AB889X", + "04219": "AB889X", + "04220": "AB889X", + "04221": "AB889X", + "04222": "AB889X", + "04223": "AB889X", + "04224": "AB889X", + "04225": "AB889X", + "04226": "AB889X", + "04227": "AB889X", + "04228": "AB889X", + "04230": "AB889X", + "04231": "AB889X", + "04234": "AB889X", + "04236": "AB889X", + "04237": "AB889X", + "04238": "AB889X", + "04239": "AB889X", + "04240": "AB889X", + "04241": "AB889X", + "04243": "AB889X", + "04250": "AB889X", + "04252": "AB889X", + "04253": "AB889X", + "04254": "AB889X", + "04255": "AB889X", + "04256": "AB889X", + "04257": "AB889X", + "04258": "AB889X", + "04259": "AB889X", + "04260": "AB889X", + "04261": "AB889X", + "04262": "AB889X", + "04263": "AB889X", + "04265": "AB889X", + "04266": "AB889X", + "04267": "AB889X", + "04268": "AB889X", + "04270": "AB889X", + "04271": "AB889X", + "04274": "AB889X", + "04275": "AB889X", + "04276": "AB889X", + "04278": "AB889X", + "04280": "AB889X", + "04281": "AB889X", + "04282": "AB889X", + "04284": "AB889X", + "04285": "AB889X", + "04286": "AB889X", + "04287": "AB889X", + "04288": "AB889X", + "04289": "AB889X", + "04290": "AB889X", + "04291": "AB889X", + "04292": "AB889X", + "04294": "AB889X", + "04330": "AB889X", + "04332": "AB889X", + "04333": "AB889X", + "04336": "AB889X", + "04338": "AB889X", + "04341": "AB889X", + "04342": "AB889X", + "04343": "AB889X", + "04344": "AB889X", + "04345": "AB889X", + "04346": "AB889X", + "04347": "AB889X", + "04348": "AB889X", + "04349": "AB889X", + "04350": "AB889X", + "04351": "AB889X", + "04352": "AB889X", + "04353": "AB889X", + "04354": "AB889X", + "04355": "AB889X", + "04357": "AB889X", + "04358": "AB889X", + "04359": "AB889X", + "04360": "AB889X", + "04363": "AB889X", + "04364": "AB889X", + "04401": "AB889X", + "04402": "AB889X", + "04406": "AB889X", + "04408": "AB889X", + "04410": "AB889X", + "04411": "AB889X", + "04412": "AB889X", + "04413": "AB889X", + "04414": "AB889X", + "04415": "AB889X", + "04416": "AB889X", + "04417": "AB889X", + "04418": "AB889X", + "04419": "AB889X", + "04420": "AB889X", + "04421": "AB889X", + "04422": "AB889X", + "04424": "AB889X", + "04426": "AB889X", + "04427": "AB889X", + "04428": "AB889X", + "04429": "AB889X", + "04430": "AB889X", + "04431": "AB889X", + "04434": "AB889X", + "04435": "AB889X", + "04438": "AB889X", + "04441": "AB889X", + "04442": "AB889X", + "04443": "AB889X", + "04444": "AB889X", + "04448": "AB889X", + "04449": "AB889X", + "04450": "AB889X", + "04451": "AB889X", + "04453": "AB889X", + "04454": "AB889X", + "04455": "AB889X", + "04456": "AB889X", + "04457": "AB889X", + "04459": "AB889X", + "04460": "AB889X", + "04461": "AB889X", + "04462": "AB889X", + "04463": "AB889X", + "04464": "AB889X", + "04467": "AB889X", + "04468": "AB889X", + "04469": "AB889X", + "04471": "AB889X", + "04472": "AB889X", + "04473": "AB889X", + "04474": "AB889X", + "04475": "AB889X", + "04476": "AB889X", + "04478": "AB889X", + "04479": "AB889X", + "04481": "AB889X", + "04485": "AB889X", + "04487": "AB889X", + "04488": "AB889X", + "04489": "AB889X", + "04490": "AB889X", + "04491": "AB889X", + "04492": "AB889X", + "04493": "AB889X", + "04495": "AB889X", + "04496": "AB889X", + "04497": "AB889X", + "04530": "AB889X", + "04535": "AB889X", + "04537": "AB889X", + "04538": "AB889X", + "04539": "AB889X", + "04541": "AB889X", + "04543": "AB889X", + "04544": "AB889X", + "04547": "AB889X", + "04548": "AB889X", + "04549": "AB889X", + "04551": "AB889X", + "04553": "AB889X", + "04554": "AB889X", + "04555": "AB889X", + "04556": "AB889X", + "04558": "AB889X", + "04562": "AB889X", + "04563": "AB889X", + "04564": "AB889X", + "04565": "AB889X", + "04568": "AB889X", + "04570": "AB889X", + "04571": "AB889X", + "04572": "AB889X", + "04573": "AB889X", + "04574": "AB889X", + "04575": "AB889X", + "04576": "AB889X", + "04578": "AB889X", + "04579": "AB889X", + "04605": "AB889X", + "04606": "AB889X", + "04607": "AB889X", + "04609": "AB889X", + "04611": "AB889X", + "04612": "AB889X", + "04613": "AB889X", + "04614": "AB889X", + "04616": "AB889X", + "04617": "AB889X", + "04619": "AB889X", + "04622": "AB889X", + "04623": "AB889X", + "04624": "AB889X", + "04625": "AB889X", + "04626": "AB889X", + "04627": "AB889X", + "04628": "AB889X", + "04629": "AB889X", + "04630": "AB889X", + "04631": "AB889X", + "04634": "AB889X", + "04635": "AB889X", + "04637": "AB889X", + "04640": "AB889X", + "04642": "AB889X", + "04643": "AB889X", + "04644": "AB889X", + "04645": "AB889X", + "04646": "AB889X", + "04648": "AB889X", + "04649": "AB889X", + "04650": "AB889X", + "04652": "AB889X", + "04653": "AB889X", + "04654": "AB889X", + "04655": "AB889X", + "04657": "AB889X", + "04658": "AB889X", + "04660": "AB889X", + "04662": "AB889X", + "04664": "AB889X", + "04666": "AB889X", + "04667": "AB889X", + "04668": "AB889X", + "04669": "AB889X", + "04671": "AB889X", + "04672": "AB889X", + "04673": "AB889X", + "04674": "AB889X", + "04675": "AB889X", + "04676": "AB889X", + "04677": "AB889X", + "04679": "AB889X", + "04680": "AB889X", + "04681": "AB889X", + "04683": "AB889X", + "04684": "AB889X", + "04685": "AB889X", + "04686": "AB889X", + "04691": "AB889X", + "04693": "AB889X", + "04694": "AB889X", + "04730": "AB889X", + "04732": "AB889X", + "04733": "AB889X", + "04734": "AB889X", + "04735": "AB889X", + "04736": "AB889X", + "04737": "AB889X", + "04738": "AB889X", + "04739": "AB889X", + "04740": "AB889X", + "04741": "AB889X", + "04742": "AB889X", + "04743": "AB889X", + "04744": "AB889X", + "04745": "AB889X", + "04746": "AB889X", + "04747": "AB889X", + "04750": "AB889X", + "04751": "AB889X", + "04756": "AB889X", + "04757": "AB889X", + "04758": "AB889X", + "04760": "AB889X", + "04761": "AB889X", + "04762": "AB889X", + "04763": "AB889X", + "04764": "AB889X", + "04765": "AB889X", + "04766": "AB889X", + "04768": "AB889X", + "04769": "AB889X", + "04772": "AB889X", + "04773": "AB889X", + "04774": "AB889X", + "04775": "AB889X", + "04776": "AB889X", + "04777": "AB889X", + "04779": "AB889X", + "04780": "AB889X", + "04781": "AB889X", + "04783": "AB889X", + "04785": "AB889X", + "04786": "AB889X", + "04787": "AB889X", + "04841": "AB889X", + "04843": "AB889X", + "04846": "AB889X", + "04847": "AB889X", + "04848": "AB889X", + "04849": "AB889X", + "04850": "AB889X", + "04851": "AB889X", + "04852": "AB889X", + "04853": "AB889X", + "04854": "AB889X", + "04855": "AB889X", + "04856": "AB889X", + "04858": "AB889X", + "04859": "AB889X", + "04860": "AB889X", + "04861": "AB889X", + "04862": "AB889X", + "04863": "AB889X", + "04864": "AB889X", + "04865": "AB889X", + "04901": "AB889X", + "04903": "AB889X", + "04910": "AB889X", + "04911": "AB889X", + "04912": "AB889X", + "04915": "AB889X", + "04917": "AB889X", + "04918": "AB889X", + "04920": "AB889X", + "04921": "AB889X", + "04922": "AB889X", + "04923": "AB889X", + "04924": "AB889X", + "04925": "AB889X", + "04926": "AB889X", + "04927": "AB889X", + "04928": "AB889X", + "04929": "AB889X", + "04930": "AB889X", + "04932": "AB889X", + "04933": "AB889X", + "04935": "AB889X", + "04936": "AB889X", + "04937": "AB889X", + "04938": "AB889X", + "04939": "AB889X", + "04940": "AB889X", + "04941": "AB889X", + "04942": "AB889X", + "04943": "AB889X", + "04944": "AB889X", + "04945": "AB889X", + "04947": "AB889X", + "04949": "AB889X", + "04950": "AB889X", + "04951": "AB889X", + "04952": "AB889X", + "04953": "AB889X", + "04954": "AB889X", + "04955": "AB889X", + "04956": "AB889X", + "04957": "AB889X", + "04958": "AB889X", + "04961": "AB889X", + "04962": "AB889X", + "04963": "AB889X", + "04964": "AB889X", + "04965": "AB889X", + "04966": "AB889X", + "04967": "AB889X", + "04969": "AB889X", + "04970": "AB889X", + "04971": "AB889X", + "04972": "AB889X", + "04973": "AB889X", + "04974": "AB889X", + "04975": "AB889X", + "04976": "AB889X", + "04978": "AB889X", + "04979": "AB889X", + "04981": "AB889X", + "04982": "AB889X", + "04983": "AB889X", + "04984": "AB889X", + "04985": "AB889X", + "04986": "AB889X", + "04987": "AB889X", + "04988": "AB889X", + "04989": "AB889X", + "04992": "AB889X", + "05001": "AB889X", + "05009": "AB889X", + "05030": "AB889X", + "05031": "AB889X", + "05032": "AB889X", + "05033": "AB889X", + "05034": "AB889X", + "05035": "AB889X", + "05036": "AB889X", + "05037": "AB889X", + "05038": "AB889X", + "05039": "AB889X", + "05040": "AB889X", + "05041": "AB889X", + "05042": "AB889X", + "05043": "AB889X", + "05045": "AB889X", + "05046": "AB889X", + "05047": "AB889X", + "05048": "AB889X", + "05049": "AB889X", + "05050": "AB889X", + "05051": "AB889X", + "05052": "AB889X", + "05053": "AB889X", + "05054": "AB889X", + "05055": "AB889X", + "05056": "AB889X", + "05058": "AB889X", + "05059": "AB889X", + "05060": "AB889X", + "05061": "AB889X", + "05062": "AB889X", + "05065": "AB889X", + "05067": "AB889X", + "05068": "AB889X", + "05069": "AB889X", + "05070": "AB889X", + "05071": "AB889X", + "05072": "AB889X", + "05073": "AB889X", + "05074": "AB889X", + "05075": "AB889X", + "05076": "AB889X", + "05077": "AB889X", + "05079": "AB889X", + "05081": "AB889X", + "05083": "AB889X", + "05084": "AB889X", + "05085": "AB889X", + "05086": "AB889X", + "05088": "AB889X", + "05089": "AB889X", + "05091": "AB889X", + "05101": "AB889X", + "05141": "AB889X", + "05142": "AB889X", + "05143": "AB889X", + "05144": "AB889X", + "05146": "AB889X", + "05148": "AB889X", + "05149": "AB889X", + "05150": "AB889X", + "05151": "AB889X", + "05152": "AB889X", + "05153": "AB889X", + "05154": "AB889X", + "05155": "AB889X", + "05156": "AB889X", + "05158": "AB889X", + "05159": "AB889X", + "05161": "AB889X", + "05201": "AB889X", + "05250": "AB889X", + "05251": "AB889X", + "05252": "AB889X", + "05253": "AB889X", + "05254": "AB889X", + "05255": "AB889X", + "05257": "AB889X", + "05260": "AB889X", + "05261": "AB889X", + "05262": "AB889X", + "05301": "AB889X", + "05302": "AB889X", + "05303": "AB889X", + "05304": "AB889X", + "05340": "AB889X", + "05341": "AB889X", + "05342": "AB889X", + "05343": "AB889X", + "05344": "AB889X", + "05345": "AB889X", + "05346": "AB889X", + "05350": "AB889X", + "05351": "AB889X", + "05352": "AB889X", + "05353": "AB889X", + "05354": "AB889X", + "05355": "AB889X", + "05356": "AB889X", + "05357": "AB889X", + "05358": "AB889X", + "05359": "AB889X", + "05360": "AB889X", + "05361": "AB889X", + "05362": "AB889X", + "05363": "AB889X", + "05401": "AB889X", + "05402": "AB889X", + "05403": "AB889X", + "05404": "AB889X", + "05405": "AB889X", + "05406": "AB889X", + "05407": "AB889X", + "05408": "AB889X", + "05439": "AB889X", + "05440": "AB889X", + "05441": "AB889X", + "05442": "AB889X", + "05443": "AB889X", + "05444": "AB889X", + "05445": "AB889X", + "05446": "AB889X", + "05447": "AB889X", + "05448": "AB889X", + "05449": "AB889X", + "05450": "AB889X", + "05451": "AB889X", + "05452": "AB889X", + "05453": "AB889X", + "05454": "AB889X", + "05455": "AB889X", + "05456": "AB889X", + "05457": "AB889X", + "05458": "AB889X", + "05459": "AB889X", + "05460": "AB889X", + "05461": "AB889X", + "05462": "AB889X", + "05463": "AB889X", + "05464": "AB889X", + "05465": "AB889X", + "05466": "AB889X", + "05468": "AB889X", + "05469": "AB889X", + "05470": "AB889X", + "05471": "AB889X", + "05472": "AB889X", + "05473": "AB889X", + "05474": "AB889X", + "05476": "AB889X", + "05477": "AB889X", + "05478": "AB889X", + "05479": "AB889X", + "05481": "AB889X", + "05482": "AB889X", + "05483": "AB889X", + "05485": "AB889X", + "05486": "AB889X", + "05487": "AB889X", + "05488": "AB889X", + "05489": "AB889X", + "05490": "AB889X", + "05491": "AB889X", + "05492": "AB889X", + "05494": "AB889X", + "05495": "AB889X", + "05501": "AB889X", + "05544": "AB889X", + "05601": "AB889X", + "05602": "AB889X", + "05603": "AB889X", + "05604": "AB889X", + "05609": "AB889X", + "05620": "AB889X", + "05633": "AB889X", + "05640": "AB889X", + "05641": "AB889X", + "05647": "AB889X", + "05648": "AB889X", + "05649": "AB889X", + "05650": "AB889X", + "05651": "AB889X", + "05652": "AB889X", + "05653": "AB889X", + "05654": "AB889X", + "05655": "AB889X", + "05656": "AB889X", + "05657": "AB889X", + "05658": "AB889X", + "05660": "AB889X", + "05661": "AB889X", + "05662": "AB889X", + "05663": "AB889X", + "05664": "AB889X", + "05665": "AB889X", + "05666": "AB889X", + "05667": "AB889X", + "05669": "AB889X", + "05670": "AB889X", + "05671": "AB889X", + "05672": "AB889X", + "05673": "AB889X", + "05674": "AB889X", + "05675": "AB889X", + "05676": "AB889X", + "05677": "AB889X", + "05678": "AB889X", + "05679": "AB889X", + "05680": "AB889X", + "05681": "AB889X", + "05682": "AB889X", + "05701": "AB889X", + "05702": "AB889X", + "05730": "AB889X", + "05731": "AB889X", + "05732": "AB889X", + "05733": "AB889X", + "05734": "AB889X", + "05735": "AB889X", + "05736": "AB889X", + "05737": "AB889X", + "05738": "AB889X", + "05739": "AB889X", + "05740": "AB889X", + "05741": "AB889X", + "05742": "AB889X", + "05743": "AB889X", + "05744": "AB889X", + "05745": "AB889X", + "05746": "AB889X", + "05747": "AB889X", + "05748": "AB889X", + "05750": "AB889X", + "05751": "AB889X", + "05753": "AB889X", + "05757": "AB889X", + "05758": "AB889X", + "05759": "AB889X", + "05760": "AB889X", + "05761": "AB889X", + "05762": "AB889X", + "05763": "AB889X", + "05764": "AB889X", + "05765": "AB889X", + "05766": "AB889X", + "05767": "AB889X", + "05768": "AB889X", + "05769": "AB889X", + "05770": "AB889X", + "05772": "AB889X", + "05773": "AB889X", + "05774": "AB889X", + "05775": "AB889X", + "05776": "AB889X", + "05777": "AB889X", + "05778": "AB889X", + "05819": "AB889X", + "05820": "AB889X", + "05821": "AB889X", + "05822": "AB889X", + "05823": "AB889X", + "05824": "AB889X", + "05825": "AB889X", + "05826": "AB889X", + "05827": "AB889X", + "05828": "AB889X", + "05829": "AB889X", + "05830": "AB889X", + "05832": "AB889X", + "05833": "AB889X", + "05836": "AB889X", + "05837": "AB889X", + "05838": "AB889X", + "05839": "AB889X", + "05840": "AB889X", + "05841": "AB889X", + "05842": "AB889X", + "05843": "AB889X", + "05845": "AB889X", + "05846": "AB889X", + "05847": "AB889X", + "05848": "AB889X", + "05849": "AB889X", + "05850": "AB889X", + "05851": "AB889X", + "05853": "AB889X", + "05855": "AB889X", + "05857": "AB889X", + "05858": "AB889X", + "05859": "AB889X", + "05860": "AB889X", + "05861": "AB889X", + "05862": "AB889X", + "05863": "AB889X", + "05866": "AB889X", + "05867": "AB889X", + "05868": "AB889X", + "05871": "AB889X", + "05872": "AB889X", + "05873": "AB889X", + "05874": "AB889X", + "05875": "AB889X", + "05901": "AB889X", + "05902": "AB889X", + "05903": "AB889X", + "05904": "AB889X", + "05905": "AB889X", + "05906": "AB889X", + "05907": "AB889X", + "06001": "AB890X", + "06002": "AB890X", + "06006": "AB890X", + "06010": "AB890X", + "06011": "AB890X", + "06013": "AB890X", + "06016": "AB890X", + "06018": "AB890X", + "06019": "AB890X", + "06020": "AB890X", + "06021": "AB890X", + "06022": "AB890X", + "06023": "AB890X", + "06024": "AB890X", + "06025": "AB890X", + "06026": "AB890X", + "06027": "AB890X", + "06028": "AB890X", + "06029": "AB890X", + "06030": "AB890X", + "06031": "AB890X", + "06032": "AB890X", + "06033": "AB890X", + "06034": "AB890X", + "06035": "AB890X", + "06037": "AB890X", + "06039": "AB890X", + "06040": "AB890X", + "06041": "AB890X", + "06042": "AB890X", + "06043": "AB890X", + "06045": "AB890X", + "06050": "AB890X", + "06051": "AB890X", + "06052": "AB890X", + "06053": "AB890X", + "06057": "AB890X", + "06058": "AB890X", + "06059": "AB890X", + "06060": "AB890X", + "06061": "AB890X", + "06062": "AB890X", + "06063": "AB890X", + "06064": "AB890X", + "06065": "AB890X", + "06066": "AB890X", + "06067": "AB890X", + "06068": "AB890X", + "06069": "AB890X", + "06070": "AB890X", + "06071": "AB890X", + "06072": "AB890X", + "06073": "AB890X", + "06074": "AB890X", + "06075": "AB890X", + "06076": "AB890X", + "06077": "AB890X", + "06078": "AB890X", + "06079": "AB890X", + "06080": "AB890X", + "06081": "AB890X", + "06082": "AB890X", + "06083": "AB890X", + "06084": "AB890X", + "06085": "AB890X", + "06087": "AB890X", + "06088": "AB890X", + "06089": "AB890X", + "06090": "AB890X", + "06091": "AB890X", + "06092": "AB890X", + "06093": "AB890X", + "06094": "AB890X", + "06095": "AB890X", + "06096": "AB890X", + "06098": "AB890X", + "06101": "AB890X", + "06102": "AB890X", + "06103": "AB890X", + "06104": "AB890X", + "06105": "AB890X", + "06106": "AB890X", + "06107": "AB890X", + "06108": "AB890X", + "06109": "AB890X", + "06110": "AB890X", + "06111": "AB890X", + "06112": "AB890X", + "06114": "AB890X", + "06115": "AB890X", + "06117": "AB890X", + "06118": "AB890X", + "06119": "AB890X", + "06120": "AB890X", + "06123": "AB890X", + "06126": "AB890X", + "06127": "AB890X", + "06128": "AB890X", + "06129": "AB890X", + "06131": "AB890X", + "06132": "AB890X", + "06133": "AB890X", + "06134": "AB890X", + "06137": "AB890X", + "06138": "AB890X", + "06140": "AB890X", + "06141": "AB890X", + "06142": "AB890X", + "06143": "AB890X", + "06144": "AB890X", + "06145": "AB890X", + "06146": "AB890X", + "06147": "AB890X", + "06150": "AB890X", + "06151": "AB890X", + "06152": "AB890X", + "06153": "AB890X", + "06154": "AB890X", + "06155": "AB890X", + "06156": "AB890X", + "06160": "AB890X", + "06161": "AB890X", + "06167": "AB890X", + "06176": "AB890X", + "06180": "AB890X", + "06183": "AB890X", + "06199": "AB890X", + "06226": "AB890X", + "06230": "AB890X", + "06231": "AB890X", + "06232": "AB890X", + "06233": "AB890X", + "06234": "AB890X", + "06235": "AB890X", + "06237": "AB890X", + "06238": "AB890X", + "06239": "AB890X", + "06241": "AB890X", + "06242": "AB890X", + "06243": "AB890X", + "06244": "AB890X", + "06245": "AB890X", + "06246": "AB890X", + "06247": "AB890X", + "06248": "AB890X", + "06249": "AB890X", + "06250": "AB890X", + "06251": "AB890X", + "06254": "AB890X", + "06255": "AB890X", + "06256": "AB890X", + "06258": "AB890X", + "06259": "AB890X", + "06260": "AB890X", + "06262": "AB890X", + "06263": "AB890X", + "06264": "AB890X", + "06265": "AB890X", + "06266": "AB890X", + "06267": "AB890X", + "06268": "AB890X", + "06269": "AB890X", + "06277": "AB890X", + "06278": "AB890X", + "06279": "AB890X", + "06280": "AB890X", + "06281": "AB890X", + "06282": "AB890X", + "06320": "AB890X", + "06330": "AB890X", + "06331": "AB890X", + "06332": "AB890X", + "06333": "AB890X", + "06334": "AB890X", + "06335": "AB890X", + "06336": "AB890X", + "06338": "AB890X", + "06339": "AB890X", + "06340": "AB890X", + "06349": "AB890X", + "06350": "AB890X", + "06351": "AB890X", + "06353": "AB890X", + "06354": "AB890X", + "06355": "AB890X", + "06357": "AB890X", + "06359": "AB890X", + "06360": "AB890X", + "06365": "AB890X", + "06370": "AB890X", + "06371": "AB890X", + "06372": "AB890X", + "06373": "AB890X", + "06374": "AB890X", + "06375": "AB890X", + "06376": "AB890X", + "06377": "AB890X", + "06378": "AB890X", + "06379": "AB890X", + "06380": "AB890X", + "06382": "AB890X", + "06383": "AB890X", + "06384": "AB890X", + "06385": "AB890X", + "06386": "AB890X", + "06387": "AB890X", + "06388": "AB890X", + "06389": "AB890X", + "06390": "AB890X", + "06401": "AB890X", + "06403": "AB890X", + "06404": "AB890X", + "06405": "AB890X", + "06408": "AB890X", + "06409": "AB890X", + "06410": "AB890X", + "06411": "AB890X", + "06412": "AB890X", + "06413": "AB890X", + "06414": "AB890X", + "06415": "AB890X", + "06416": "AB890X", + "06417": "AB890X", + "06418": "AB890X", + "06419": "AB890X", + "06420": "AB890X", + "06422": "AB890X", + "06423": "AB890X", + "06424": "AB890X", + "06426": "AB890X", + "06437": "AB890X", + "06438": "AB890X", + "06439": "AB890X", + "06440": "AB890X", + "06441": "AB890X", + "06442": "AB890X", + "06443": "AB890X", + "06444": "AB890X", + "06447": "AB890X", + "06450": "AB890X", + "06451": "AB890X", + "06454": "AB890X", + "06455": "AB890X", + "06456": "AB890X", + "06457": "AB890X", + "06459": "AB890X", + "06460": "AB890X", + "06461": "AB890X", + "06467": "AB890X", + "06468": "AB890X", + "06469": "AB890X", + "06470": "AB890X", + "06471": "AB890X", + "06472": "AB890X", + "06473": "AB890X", + "06474": "AB890X", + "06475": "AB890X", + "06477": "AB890X", + "06478": "AB890X", + "06479": "AB890X", + "06480": "AB890X", + "06481": "AB890X", + "06482": "AB890X", + "06483": "AB890X", + "06484": "AB890X", + "06487": "AB890X", + "06488": "AB890X", + "06489": "AB890X", + "06491": "AB890X", + "06492": "AB890X", + "06493": "AB890X", + "06494": "AB890X", + "06495": "AB890X", + "06497": "AB890X", + "06498": "AB890X", + "06501": "AB890X", + "06502": "AB890X", + "06503": "AB890X", + "06504": "AB890X", + "06505": "AB890X", + "06506": "AB890X", + "06507": "AB890X", + "06508": "AB890X", + "06509": "AB890X", + "06510": "AB890X", + "06511": "AB890X", + "06512": "AB890X", + "06513": "AB890X", + "06514": "AB890X", + "06515": "AB890X", + "06516": "AB890X", + "06517": "AB890X", + "06518": "AB890X", + "06519": "AB890X", + "06520": "AB890X", + "06521": "AB890X", + "06524": "AB890X", + "06525": "AB890X", + "06530": "AB890X", + "06531": "AB890X", + "06532": "AB890X", + "06533": "AB890X", + "06534": "AB890X", + "06535": "AB890X", + "06536": "AB890X", + "06537": "AB890X", + "06538": "AB890X", + "06540": "AB890X", + "06601": "AB890X", + "06602": "AB890X", + "06604": "AB890X", + "06605": "AB890X", + "06606": "AB890X", + "06607": "AB890X", + "06608": "AB890X", + "06610": "AB890X", + "06611": "AB890X", + "06612": "AB890X", + "06614": "AB890X", + "06615": "AB890X", + "06650": "AB890X", + "06673": "AB890X", + "06699": "AB890X", + "06701": "AB890X", + "06702": "AB890X", + "06703": "AB890X", + "06704": "AB890X", + "06705": "AB890X", + "06706": "AB890X", + "06708": "AB890X", + "06710": "AB890X", + "06712": "AB890X", + "06716": "AB890X", + "06720": "AB890X", + "06721": "AB890X", + "06722": "AB890X", + "06723": "AB890X", + "06724": "AB890X", + "06725": "AB890X", + "06726": "AB890X", + "06749": "AB890X", + "06750": "AB890X", + "06751": "AB890X", + "06752": "AB890X", + "06753": "AB890X", + "06754": "AB890X", + "06755": "AB890X", + "06756": "AB890X", + "06757": "AB890X", + "06758": "AB890X", + "06759": "AB890X", + "06762": "AB890X", + "06763": "AB890X", + "06770": "AB890X", + "06776": "AB890X", + "06777": "AB890X", + "06778": "AB890X", + "06779": "AB890X", + "06781": "AB890X", + "06782": "AB890X", + "06783": "AB890X", + "06784": "AB890X", + "06785": "AB890X", + "06786": "AB890X", + "06787": "AB890X", + "06790": "AB890X", + "06791": "AB890X", + "06792": "AB890X", + "06793": "AB890X", + "06794": "AB890X", + "06795": "AB890X", + "06796": "AB890X", + "06798": "AB890X", + "06801": "AB890X", + "06804": "AB890X", + "06807": "AB890X", + "06810": "AB890X", + "06811": "AB890X", + "06812": "AB890X", + "06813": "AB890X", + "06814": "AB890X", + "06816": "AB890X", + "06817": "AB890X", + "06820": "AB890X", + "06824": "AB890X", + "06825": "AB890X", + "06828": "AB890X", + "06829": "AB890X", + "06830": "AB890X", + "06831": "AB890X", + "06832": "AB890X", + "06836": "AB890X", + "06838": "AB890X", + "06840": "AB890X", + "06842": "AB890X", + "06850": "AB890X", + "06851": "AB890X", + "06852": "AB890X", + "06853": "AB890X", + "06854": "AB890X", + "06855": "AB890X", + "06856": "AB890X", + "06857": "AB890X", + "06858": "AB890X", + "06859": "AB890X", + "06860": "AB890X", + "06870": "AB890X", + "06875": "AB890X", + "06876": "AB890X", + "06877": "AB890X", + "06878": "AB890X", + "06879": "AB890X", + "06880": "AB890X", + "06881": "AB890X", + "06883": "AB890X", + "06888": "AB890X", + "06889": "AB890X", + "06890": "AB890X", + "06896": "AB890X", + "06897": "AB890X", + "06901": "AB890X", + "06902": "AB890X", + "06903": "AB890X", + "06904": "AB890X", + "06905": "AB890X", + "06906": "AB890X", + "06907": "AB890X", + "06910": "AB890X", + "06911": "AB890X", + "06912": "AB890X", + "06913": "AB890X", + "06914": "AB890X", + "06920": "AB890X", + "06921": "AB890X", + "06922": "AB890X", + "06925": "AB890X", + "06926": "AB890X", + "06927": "AB890X", + "06928": "AB890X", + "07001": "AB890X", + "07002": "AB890X", + "07003": "AB890X", + "07004": "AB890X", + "07005": "AB890X", + "07006": "AB890X", + "07007": "AB890X", + "07008": "AB890X", + "07009": "AB890X", + "07010": "AB890X", + "07011": "AB890X", + "07012": "AB890X", + "07013": "AB890X", + "07014": "AB890X", + "07015": "AB890X", + "07016": "AB890X", + "07017": "AB890X", + "07018": "AB890X", + "07019": "AB890X", + "07020": "AB890X", + "07021": "AB890X", + "07022": "AB890X", + "07023": "AB890X", + "07024": "AB890X", + "07026": "AB890X", + "07027": "AB890X", + "07028": "AB890X", + "07029": "AB890X", + "07030": "AB890X", + "07031": "AB890X", + "07032": "AB890X", + "07033": "AB890X", + "07034": "AB890X", + "07035": "AB890X", + "07036": "AB890X", + "07039": "AB890X", + "07040": "AB890X", + "07041": "AB890X", + "07042": "AB890X", + "07043": "AB890X", + "07044": "AB890X", + "07045": "AB890X", + "07046": "AB890X", + "07047": "AB890X", + "07050": "AB890X", + "07051": "AB890X", + "07052": "AB890X", + "07054": "AB890X", + "07055": "AB890X", + "07057": "AB890X", + "07058": "AB890X", + "07059": "AB890X", + "07060": "AB890X", + "07061": "AB890X", + "07062": "AB890X", + "07063": "AB890X", + "07064": "AB890X", + "07065": "AB890X", + "07066": "AB890X", + "07067": "AB890X", + "07068": "AB890X", + "07069": "AB890X", + "07070": "AB890X", + "07071": "AB890X", + "07072": "AB890X", + "07073": "AB890X", + "07074": "AB890X", + "07075": "AB890X", + "07076": "AB890X", + "07077": "AB890X", + "07078": "AB890X", + "07079": "AB890X", + "07080": "AB890X", + "07081": "AB890X", + "07082": "AB890X", + "07083": "AB890X", + "07086": "AB890X", + "07087": "AB890X", + "07088": "AB890X", + "07090": "AB890X", + "07091": "AB890X", + "07092": "AB890X", + "07093": "AB890X", + "07094": "AB890X", + "07095": "AB890X", + "07096": "AB890X", + "07097": "AB890X", + "07099": "AB890X", + "07101": "AB890X", + "07102": "AB890X", + "07103": "AB890X", + "07104": "AB890X", + "07105": "AB890X", + "07106": "AB890X", + "07107": "AB890X", + "07108": "AB890X", + "07109": "AB890X", + "07110": "AB890X", + "07111": "AB890X", + "07112": "AB890X", + "07114": "AB890X", + "07175": "AB890X", + "07182": "AB890X", + "07184": "AB890X", + "07188": "AB890X", + "07189": "AB890X", + "07191": "AB890X", + "07192": "AB890X", + "07193": "AB890X", + "07194": "AB890X", + "07195": "AB890X", + "07198": "AB890X", + "07199": "AB890X", + "07201": "AB890X", + "07202": "AB890X", + "07203": "AB890X", + "07204": "AB890X", + "07205": "AB890X", + "07206": "AB890X", + "07207": "AB890X", + "07208": "AB890X", + "07302": "AB890X", + "07303": "AB890X", + "07304": "AB890X", + "07305": "AB890X", + "07306": "AB890X", + "07307": "AB890X", + "07308": "AB890X", + "07309": "AB890X", + "07310": "AB890X", + "07311": "AB890X", + "07395": "AB890X", + "07399": "AB890X", + "07401": "AB890X", + "07403": "AB890X", + "07405": "AB890X", + "07407": "AB890X", + "07410": "AB890X", + "07416": "AB890X", + "07417": "AB890X", + "07418": "AB890X", + "07419": "AB890X", + "07420": "AB890X", + "07421": "AB890X", + "07422": "AB890X", + "07423": "AB890X", + "07424": "AB890X", + "07428": "AB890X", + "07430": "AB890X", + "07432": "AB890X", + "07435": "AB890X", + "07436": "AB890X", + "07438": "AB890X", + "07439": "AB890X", + "07440": "AB890X", + "07442": "AB890X", + "07444": "AB890X", + "07446": "AB890X", + "07450": "AB890X", + "07451": "AB890X", + "07452": "AB890X", + "07456": "AB890X", + "07457": "AB890X", + "07458": "AB890X", + "07460": "AB890X", + "07461": "AB890X", + "07462": "AB890X", + "07463": "AB890X", + "07465": "AB890X", + "07470": "AB890X", + "07474": "AB890X", + "07477": "AB890X", + "07480": "AB890X", + "07481": "AB890X", + "07495": "AB890X", + "07501": "AB890X", + "07502": "AB890X", + "07503": "AB890X", + "07504": "AB890X", + "07505": "AB890X", + "07506": "AB890X", + "07507": "AB890X", + "07508": "AB890X", + "07509": "AB890X", + "07510": "AB890X", + "07511": "AB890X", + "07512": "AB890X", + "07513": "AB890X", + "07514": "AB890X", + "07522": "AB890X", + "07524": "AB890X", + "07533": "AB890X", + "07538": "AB890X", + "07543": "AB890X", + "07544": "AB890X", + "07601": "AB890X", + "07602": "AB890X", + "07603": "AB890X", + "07604": "AB890X", + "07605": "AB890X", + "07606": "AB890X", + "07607": "AB890X", + "07608": "AB890X", + "07620": "AB890X", + "07621": "AB890X", + "07624": "AB890X", + "07626": "AB890X", + "07627": "AB890X", + "07628": "AB890X", + "07630": "AB890X", + "07631": "AB890X", + "07632": "AB890X", + "07640": "AB890X", + "07641": "AB890X", + "07642": "AB890X", + "07643": "AB890X", + "07644": "AB890X", + "07645": "AB890X", + "07646": "AB890X", + "07647": "AB890X", + "07648": "AB890X", + "07649": "AB890X", + "07650": "AB890X", + "07652": "AB890X", + "07653": "AB890X", + "07656": "AB890X", + "07657": "AB890X", + "07660": "AB890X", + "07661": "AB890X", + "07662": "AB890X", + "07663": "AB890X", + "07666": "AB890X", + "07670": "AB890X", + "07675": "AB890X", + "07676": "AB890X", + "07677": "AB890X", + "07699": "AB890X", + "07701": "AB890X", + "07702": "AB890X", + "07703": "AB890X", + "07704": "AB890X", + "07709": "AB890X", + "07710": "AB890X", + "07711": "AB890X", + "07712": "AB890X", + "07715": "AB890X", + "07716": "AB890X", + "07717": "AB890X", + "07718": "AB890X", + "07719": "AB890X", + "07720": "AB890X", + "07721": "AB890X", + "07722": "AB890X", + "07723": "AB890X", + "07724": "AB890X", + "07726": "AB890X", + "07727": "AB890X", + "07728": "AB890X", + "07730": "AB890X", + "07731": "AB890X", + "07732": "AB890X", + "07733": "AB890X", + "07734": "AB890X", + "07735": "AB890X", + "07737": "AB890X", + "07738": "AB890X", + "07739": "AB890X", + "07740": "AB890X", + "07746": "AB890X", + "07747": "AB890X", + "07748": "AB890X", + "07750": "AB890X", + "07751": "AB890X", + "07752": "AB890X", + "07753": "AB890X", + "07754": "AB890X", + "07755": "AB890X", + "07756": "AB890X", + "07757": "AB890X", + "07758": "AB890X", + "07760": "AB890X", + "07762": "AB890X", + "07763": "AB890X", + "07764": "AB890X", + "07765": "AB890X", + "07777": "AB890X", + "07799": "AB890X", + "07801": "AB890X", + "07802": "AB890X", + "07803": "AB890X", + "07806": "AB890X", + "07820": "AB890X", + "07821": "AB890X", + "07822": "AB890X", + "07823": "AB890X", + "07825": "AB890X", + "07826": "AB890X", + "07827": "AB890X", + "07828": "AB890X", + "07829": "AB890X", + "07830": "AB890X", + "07831": "AB890X", + "07832": "AB890X", + "07833": "AB890X", + "07834": "AB890X", + "07836": "AB890X", + "07837": "AB890X", + "07838": "AB890X", + "07839": "AB890X", + "07840": "AB890X", + "07842": "AB890X", + "07843": "AB890X", + "07844": "AB890X", + "07845": "AB890X", + "07846": "AB890X", + "07847": "AB890X", + "07848": "AB890X", + "07849": "AB890X", + "07850": "AB890X", + "07851": "AB890X", + "07852": "AB890X", + "07853": "AB890X", + "07855": "AB890X", + "07856": "AB890X", + "07857": "AB890X", + "07860": "AB890X", + "07863": "AB890X", + "07865": "AB890X", + "07866": "AB890X", + "07869": "AB890X", + "07870": "AB890X", + "07871": "AB890X", + "07874": "AB890X", + "07875": "AB890X", + "07876": "AB890X", + "07877": "AB890X", + "07878": "AB890X", + "07879": "AB890X", + "07880": "AB890X", + "07881": "AB890X", + "07882": "AB890X", + "07885": "AB890X", + "07890": "AB890X", + "07901": "AB890X", + "07902": "AB890X", + "07920": "AB890X", + "07921": "AB890X", + "07922": "AB890X", + "07924": "AB890X", + "07926": "AB890X", + "07927": "AB890X", + "07928": "AB890X", + "07930": "AB890X", + "07931": "AB890X", + "07932": "AB890X", + "07933": "AB890X", + "07934": "AB890X", + "07935": "AB890X", + "07936": "AB890X", + "07938": "AB890X", + "07939": "AB890X", + "07940": "AB890X", + "07945": "AB890X", + "07946": "AB890X", + "07950": "AB890X", + "07960": "AB890X", + "07961": "AB890X", + "07962": "AB890X", + "07963": "AB890X", + "07970": "AB890X", + "07974": "AB890X", + "07976": "AB890X", + "07977": "AB890X", + "07978": "AB890X", + "07979": "AB890X", + "07980": "AB890X", + "07981": "AB890X", + "07983": "AB890X", + "07999": "AB890X", + "08001": "AB890X", + "08002": "AB890X", + "08003": "AB890X", + "08004": "AB890X", + "08005": "AB890X", + "08006": "AB890X", + "08007": "AB890X", + "08008": "AB890X", + "08009": "AB890X", + "08010": "AB890X", + "08011": "AB890X", + "08012": "AB890X", + "08014": "AB890X", + "08015": "AB890X", + "08016": "AB890X", + "08018": "AB890X", + "08019": "AB890X", + "08020": "AB890X", + "08021": "AB890X", + "08022": "AB890X", + "08023": "AB890X", + "08025": "AB890X", + "08026": "AB890X", + "08027": "AB890X", + "08028": "AB890X", + "08029": "AB890X", + "08030": "AB890X", + "08031": "AB890X", + "08032": "AB890X", + "08033": "AB890X", + "08034": "AB890X", + "08035": "AB890X", + "08036": "AB890X", + "08037": "AB890X", + "08038": "AB890X", + "08039": "AB890X", + "08041": "AB890X", + "08042": "AB890X", + "08043": "AB890X", + "08045": "AB890X", + "08046": "AB890X", + "08048": "AB890X", + "08049": "AB890X", + "08050": "AB890X", + "08051": "AB890X", + "08052": "AB890X", + "08053": "AB890X", + "08054": "AB890X", + "08055": "AB890X", + "08056": "AB890X", + "08057": "AB890X", + "08059": "AB890X", + "08060": "AB890X", + "08061": "AB890X", + "08062": "AB890X", + "08063": "AB890X", + "08064": "AB890X", + "08065": "AB890X", + "08066": "AB890X", + "08067": "AB890X", + "08068": "AB890X", + "08069": "AB890X", + "08070": "AB890X", + "08071": "AB890X", + "08072": "AB890X", + "08073": "AB890X", + "08074": "AB890X", + "08075": "AB890X", + "08076": "AB890X", + "08077": "AB890X", + "08078": "AB890X", + "08079": "AB890X", + "08080": "AB890X", + "08081": "AB890X", + "08083": "AB890X", + "08084": "AB890X", + "08085": "AB890X", + "08086": "AB890X", + "08087": "AB890X", + "08088": "AB890X", + "08089": "AB890X", + "08090": "AB890X", + "08091": "AB890X", + "08092": "AB890X", + "08093": "AB890X", + "08094": "AB890X", + "08095": "AB890X", + "08096": "AB890X", + "08097": "AB890X", + "08098": "AB890X", + "08099": "AB890X", + "08101": "AB890X", + "08102": "AB890X", + "08103": "AB890X", + "08104": "AB890X", + "08105": "AB890X", + "08106": "AB890X", + "08107": "AB890X", + "08108": "AB890X", + "08109": "AB890X", + "08110": "AB890X", + "08201": "AB890X", + "08202": "AB890X", + "08203": "AB890X", + "08204": "AB890X", + "08205": "AB890X", + "08210": "AB890X", + "08212": "AB890X", + "08213": "AB890X", + "08214": "AB890X", + "08215": "AB890X", + "08217": "AB890X", + "08218": "AB890X", + "08219": "AB890X", + "08220": "AB890X", + "08221": "AB890X", + "08223": "AB890X", + "08224": "AB890X", + "08225": "AB890X", + "08226": "AB890X", + "08230": "AB890X", + "08231": "AB890X", + "08232": "AB890X", + "08234": "AB890X", + "08240": "AB890X", + "08241": "AB890X", + "08242": "AB890X", + "08243": "AB890X", + "08244": "AB890X", + "08245": "AB890X", + "08246": "AB890X", + "08247": "AB890X", + "08248": "AB890X", + "08250": "AB890X", + "08251": "AB890X", + "08252": "AB890X", + "08260": "AB890X", + "08270": "AB890X", + "08302": "AB890X", + "08310": "AB890X", + "08311": "AB890X", + "08312": "AB890X", + "08313": "AB890X", + "08314": "AB890X", + "08315": "AB890X", + "08316": "AB890X", + "08317": "AB890X", + "08318": "AB890X", + "08319": "AB890X", + "08320": "AB890X", + "08321": "AB890X", + "08322": "AB890X", + "08323": "AB890X", + "08324": "AB890X", + "08326": "AB890X", + "08327": "AB890X", + "08328": "AB890X", + "08329": "AB890X", + "08330": "AB890X", + "08332": "AB890X", + "08340": "AB890X", + "08341": "AB890X", + "08342": "AB890X", + "08343": "AB890X", + "08344": "AB890X", + "08345": "AB890X", + "08346": "AB890X", + "08347": "AB890X", + "08348": "AB890X", + "08349": "AB890X", + "08350": "AB890X", + "08352": "AB890X", + "08353": "AB890X", + "08360": "AB890X", + "08361": "AB890X", + "08362": "AB890X", + "08401": "AB890X", + "08402": "AB890X", + "08403": "AB890X", + "08404": "AB890X", + "08405": "AB890X", + "08406": "AB890X", + "08501": "AB890X", + "08502": "AB890X", + "08504": "AB890X", + "08505": "AB890X", + "08510": "AB890X", + "08511": "AB890X", + "08512": "AB890X", + "08514": "AB890X", + "08515": "AB890X", + "08518": "AB890X", + "08520": "AB890X", + "08525": "AB890X", + "08526": "AB890X", + "08527": "AB890X", + "08528": "AB890X", + "08530": "AB890X", + "08533": "AB890X", + "08534": "AB890X", + "08535": "AB890X", + "08536": "AB890X", + "08540": "AB890X", + "08541": "AB890X", + "08542": "AB890X", + "08543": "AB890X", + "08544": "AB890X", + "08550": "AB890X", + "08551": "AB890X", + "08553": "AB890X", + "08554": "AB890X", + "08555": "AB890X", + "08556": "AB890X", + "08557": "AB890X", + "08558": "AB890X", + "08559": "AB890X", + "08560": "AB890X", + "08561": "AB890X", + "08562": "AB890X", + "08601": "AB890X", + "08602": "AB890X", + "08603": "AB890X", + "08604": "AB890X", + "08605": "AB890X", + "08606": "AB890X", + "08607": "AB890X", + "08608": "AB890X", + "08609": "AB890X", + "08610": "AB890X", + "08611": "AB890X", + "08618": "AB890X", + "08619": "AB890X", + "08620": "AB890X", + "08625": "AB890X", + "08628": "AB890X", + "08629": "AB890X", + "08638": "AB890X", + "08640": "AB890X", + "08641": "AB890X", + "08645": "AB890X", + "08646": "AB890X", + "08647": "AB890X", + "08648": "AB890X", + "08650": "AB890X", + "08666": "AB890X", + "08677": "AB890X", + "08690": "AB890X", + "08691": "AB890X", + "08695": "AB890X", + "08701": "AB890X", + "08720": "AB890X", + "08721": "AB890X", + "08722": "AB890X", + "08723": "AB890X", + "08724": "AB890X", + "08730": "AB890X", + "08731": "AB890X", + "08732": "AB890X", + "08733": "AB890X", + "08734": "AB890X", + "08735": "AB890X", + "08736": "AB890X", + "08738": "AB890X", + "08739": "AB890X", + "08740": "AB890X", + "08741": "AB890X", + "08742": "AB890X", + "08750": "AB890X", + "08751": "AB890X", + "08752": "AB890X", + "08753": "AB890X", + "08754": "AB890X", + "08755": "AB890X", + "08756": "AB890X", + "08757": "AB890X", + "08758": "AB890X", + "08759": "AB890X", + "08801": "AB890X", + "08802": "AB890X", + "08803": "AB890X", + "08804": "AB890X", + "08805": "AB890X", + "08807": "AB890X", + "08808": "AB890X", + "08809": "AB890X", + "08810": "AB890X", + "08812": "AB890X", + "08816": "AB890X", + "08817": "AB890X", + "08818": "AB890X", + "08820": "AB890X", + "08821": "AB890X", + "08822": "AB890X", + "08823": "AB890X", + "08824": "AB890X", + "08825": "AB890X", + "08826": "AB890X", + "08827": "AB890X", + "08828": "AB890X", + "08829": "AB890X", + "08830": "AB890X", + "08831": "AB890X", + "08832": "AB890X", + "08833": "AB890X", + "08834": "AB890X", + "08835": "AB890X", + "08836": "AB890X", + "08837": "AB890X", + "08840": "AB890X", + "08844": "AB890X", + "08846": "AB890X", + "08848": "AB890X", + "08850": "AB890X", + "08852": "AB890X", + "08853": "AB890X", + "08854": "AB890X", + "08855": "AB890X", + "08857": "AB890X", + "08858": "AB890X", + "08859": "AB890X", + "08861": "AB890X", + "08862": "AB890X", + "08863": "AB890X", + "08865": "AB890X", + "08867": "AB890X", + "08868": "AB890X", + "08869": "AB890X", + "08870": "AB890X", + "08871": "AB890X", + "08872": "AB890X", + "08873": "AB890X", + "08875": "AB890X", + "08876": "AB890X", + "08879": "AB890X", + "08880": "AB890X", + "08882": "AB890X", + "08884": "AB890X", + "08885": "AB890X", + "08886": "AB890X", + "08887": "AB890X", + "08888": "AB890X", + "08889": "AB890X", + "08890": "AB890X", + "08896": "AB890X", + "08899": "AB890X", + "08901": "AB890X", + "08902": "AB890X", + "08903": "AB890X", + "08904": "AB890X", + "08905": "AB890X", + "08906": "AB890X", + "08922": "AB890X", + "08933": "AB890X", + "08988": "AB890X", + "08989": "AB890X", + "10001": "AB890X", + "10002": "AB890X", + "10003": "AB890X", + "10004": "AB890X", + "10005": "AB890X", + "10006": "AB890X", + "10007": "AB890X", + "10008": "AB890X", + "10009": "AB890X", + "10010": "AB890X", + "10011": "AB890X", + "10012": "AB890X", + "10013": "AB890X", + "10014": "AB890X", + "10015": "AB890X", + "10016": "AB890X", + "10017": "AB890X", + "10018": "AB890X", + "10019": "AB890X", + "10020": "AB890X", + "10021": "AB890X", + "10022": "AB890X", + "10023": "AB890X", + "10024": "AB890X", + "10025": "AB890X", + "10026": "AB890X", + "10027": "AB890X", + "10028": "AB890X", + "10029": "AB890X", + "10030": "AB890X", + "10031": "AB890X", + "10032": "AB890X", + "10033": "AB890X", + "10034": "AB890X", + "10035": "AB890X", + "10036": "AB890X", + "10037": "AB890X", + "10038": "AB890X", + "10039": "AB890X", + "10040": "AB890X", + "10041": "AB890X", + "10043": "AB890X", + "10044": "AB890X", + "10045": "AB890X", + "10046": "AB890X", + "10047": "AB890X", + "10048": "AB890X", + "10055": "AB890X", + "10060": "AB890X", + "10069": "AB890X", + "10072": "AB890X", + "10079": "AB890X", + "10080": "AB890X", + "10081": "AB890X", + "10082": "AB890X", + "10087": "AB890X", + "10090": "AB890X", + "10094": "AB890X", + "10095": "AB890X", + "10096": "AB890X", + "10098": "AB890X", + "10099": "AB890X", + "10101": "AB890X", + "10102": "AB890X", + "10103": "AB890X", + "10104": "AB890X", + "10105": "AB890X", + "10106": "AB890X", + "10107": "AB890X", + "10108": "AB890X", + "10109": "AB890X", + "10110": "AB890X", + "10111": "AB890X", + "10112": "AB890X", + "10113": "AB890X", + "10114": "AB890X", + "10115": "AB890X", + "10116": "AB890X", + "10117": "AB890X", + "10118": "AB890X", + "10119": "AB890X", + "10120": "AB890X", + "10121": "AB890X", + "10122": "AB890X", + "10123": "AB890X", + "10124": "AB890X", + "10125": "AB890X", + "10126": "AB890X", + "10128": "AB890X", + "10129": "AB890X", + "10130": "AB890X", + "10131": "AB890X", + "10132": "AB890X", + "10133": "AB890X", + "10138": "AB890X", + "10149": "AB890X", + "10150": "AB890X", + "10151": "AB890X", + "10152": "AB890X", + "10153": "AB890X", + "10154": "AB890X", + "10155": "AB890X", + "10156": "AB890X", + "10157": "AB890X", + "10158": "AB890X", + "10159": "AB890X", + "10160": "AB890X", + "10161": "AB890X", + "10162": "AB890X", + "10163": "AB890X", + "10164": "AB890X", + "10165": "AB890X", + "10166": "AB890X", + "10167": "AB890X", + "10168": "AB890X", + "10169": "AB890X", + "10170": "AB890X", + "10171": "AB890X", + "10172": "AB890X", + "10173": "AB890X", + "10174": "AB890X", + "10175": "AB890X", + "10176": "AB890X", + "10177": "AB890X", + "10178": "AB890X", + "10179": "AB890X", + "10184": "AB890X", + "10185": "AB890X", + "10196": "AB890X", + "10197": "AB890X", + "10199": "AB890X", + "10203": "AB890X", + "10211": "AB890X", + "10212": "AB890X", + "10213": "AB890X", + "10242": "AB890X", + "10249": "AB890X", + "10256": "AB890X", + "10257": "AB890X", + "10258": "AB890X", + "10259": "AB890X", + "10260": "AB890X", + "10261": "AB890X", + "10265": "AB890X", + "10268": "AB890X", + "10269": "AB890X", + "10270": "AB890X", + "10271": "AB890X", + "10272": "AB890X", + "10273": "AB890X", + "10274": "AB890X", + "10275": "AB890X", + "10276": "AB890X", + "10277": "AB890X", + "10278": "AB890X", + "10279": "AB890X", + "10280": "AB890X", + "10281": "AB890X", + "10282": "AB890X", + "10285": "AB890X", + "10286": "AB890X", + "10292": "AB890X", + "10301": "AB890X", + "10302": "AB890X", + "10303": "AB890X", + "10304": "AB890X", + "10305": "AB890X", + "10306": "AB890X", + "10307": "AB890X", + "10308": "AB890X", + "10309": "AB890X", + "10310": "AB890X", + "10311": "AB890X", + "10312": "AB890X", + "10313": "AB890X", + "10314": "AB890X", + "10451": "AB890X", + "10452": "AB890X", + "10453": "AB890X", + "10454": "AB890X", + "10455": "AB890X", + "10456": "AB890X", + "10457": "AB890X", + "10458": "AB890X", + "10459": "AB890X", + "10460": "AB890X", + "10461": "AB890X", + "10462": "AB890X", + "10463": "AB890X", + "10464": "AB890X", + "10465": "AB890X", + "10466": "AB890X", + "10467": "AB890X", + "10468": "AB890X", + "10469": "AB890X", + "10470": "AB890X", + "10471": "AB890X", + "10472": "AB890X", + "10473": "AB890X", + "10474": "AB890X", + "10475": "AB890X", + "10499": "AB890X", + "10501": "AB890X", + "10502": "AB890X", + "10503": "AB890X", + "10504": "AB890X", + "10505": "AB890X", + "10506": "AB890X", + "10507": "AB890X", + "10509": "AB890X", + "10510": "AB890X", + "10511": "AB890X", + "10512": "AB890X", + "10514": "AB890X", + "10516": "AB890X", + "10517": "AB890X", + "10518": "AB890X", + "10519": "AB890X", + "10520": "AB890X", + "10521": "AB890X", + "10522": "AB890X", + "10523": "AB890X", + "10524": "AB890X", + "10526": "AB890X", + "10527": "AB890X", + "10528": "AB890X", + "10530": "AB890X", + "10532": "AB890X", + "10533": "AB890X", + "10535": "AB890X", + "10536": "AB890X", + "10537": "AB890X", + "10538": "AB890X", + "10540": "AB890X", + "10541": "AB890X", + "10542": "AB890X", + "10543": "AB890X", + "10545": "AB890X", + "10546": "AB890X", + "10547": "AB890X", + "10548": "AB890X", + "10549": "AB890X", + "10550": "AB890X", + "10551": "AB890X", + "10552": "AB890X", + "10553": "AB890X", + "10557": "AB890X", + "10558": "AB890X", + "10560": "AB890X", + "10562": "AB890X", + "10566": "AB890X", + "10567": "AB890X", + "10570": "AB890X", + "10571": "AB890X", + "10572": "AB890X", + "10573": "AB890X", + "10576": "AB890X", + "10577": "AB890X", + "10578": "AB890X", + "10579": "AB890X", + "10580": "AB890X", + "10583": "AB890X", + "10587": "AB890X", + "10588": "AB890X", + "10589": "AB890X", + "10590": "AB890X", + "10591": "AB890X", + "10594": "AB890X", + "10595": "AB890X", + "10596": "AB890X", + "10597": "AB890X", + "10598": "AB890X", + "10601": "AB890X", + "10602": "AB890X", + "10603": "AB890X", + "10604": "AB890X", + "10605": "AB890X", + "10606": "AB890X", + "10607": "AB890X", + "10610": "AB890X", + "10701": "AB890X", + "10702": "AB890X", + "10703": "AB890X", + "10704": "AB890X", + "10705": "AB890X", + "10706": "AB890X", + "10707": "AB890X", + "10708": "AB890X", + "10709": "AB890X", + "10710": "AB890X", + "10801": "AB890X", + "10802": "AB890X", + "10803": "AB890X", + "10804": "AB890X", + "10805": "AB890X", + "10901": "AB890X", + "10910": "AB890X", + "10911": "AB890X", + "10912": "AB890X", + "10913": "AB890X", + "10914": "AB890X", + "10915": "AB890X", + "10916": "AB890X", + "10917": "AB890X", + "10918": "AB890X", + "10919": "AB890X", + "10920": "AB890X", + "10921": "AB890X", + "10922": "AB890X", + "10923": "AB890X", + "10924": "AB890X", + "10925": "AB890X", + "10926": "AB890X", + "10927": "AB890X", + "10928": "AB890X", + "10930": "AB890X", + "10931": "AB890X", + "10932": "AB890X", + "10933": "AB890X", + "10940": "AB890X", + "10941": "AB890X", + "10943": "AB890X", + "10949": "AB890X", + "10950": "AB890X", + "10952": "AB890X", + "10953": "AB890X", + "10954": "AB890X", + "10956": "AB890X", + "10958": "AB890X", + "10959": "AB890X", + "10960": "AB890X", + "10962": "AB890X", + "10963": "AB890X", + "10964": "AB890X", + "10965": "AB890X", + "10968": "AB890X", + "10969": "AB890X", + "10970": "AB890X", + "10973": "AB890X", + "10974": "AB890X", + "10975": "AB890X", + "10976": "AB890X", + "10977": "AB890X", + "10979": "AB890X", + "10980": "AB890X", + "10981": "AB890X", + "10982": "AB890X", + "10983": "AB890X", + "10984": "AB890X", + "10985": "AB890X", + "10986": "AB890X", + "10987": "AB890X", + "10988": "AB890X", + "10989": "AB890X", + "10990": "AB890X", + "10992": "AB890X", + "10993": "AB890X", + "10994": "AB890X", + "10996": "AB890X", + "10997": "AB890X", + "10998": "AB890X", + "11001": "AB890X", + "11002": "AB890X", + "11003": "AB890X", + "11004": "AB890X", + "11005": "AB890X", + "11010": "AB890X", + "11020": "AB890X", + "11021": "AB890X", + "11022": "AB890X", + "11023": "AB890X", + "11024": "AB890X", + "11025": "AB890X", + "11026": "AB890X", + "11027": "AB890X", + "11030": "AB890X", + "11040": "AB890X", + "11041": "AB890X", + "11042": "AB890X", + "11043": "AB890X", + "11044": "AB890X", + "11050": "AB890X", + "11051": "AB890X", + "11052": "AB890X", + "11053": "AB890X", + "11054": "AB890X", + "11055": "AB890X", + "11096": "AB890X", + "11099": "AB890X", + "11101": "AB890X", + "11102": "AB890X", + "11103": "AB890X", + "11104": "AB890X", + "11105": "AB890X", + "11106": "AB890X", + "11109": "AB890X", + "11120": "AB890X", + "11201": "AB890X", + "11202": "AB890X", + "11203": "AB890X", + "11204": "AB890X", + "11205": "AB890X", + "11206": "AB890X", + "11207": "AB890X", + "11208": "AB890X", + "11209": "AB890X", + "11210": "AB890X", + "11211": "AB890X", + "11212": "AB890X", + "11213": "AB890X", + "11214": "AB890X", + "11215": "AB890X", + "11216": "AB890X", + "11217": "AB890X", + "11218": "AB890X", + "11219": "AB890X", + "11220": "AB890X", + "11221": "AB890X", + "11222": "AB890X", + "11223": "AB890X", + "11224": "AB890X", + "11225": "AB890X", + "11226": "AB890X", + "11228": "AB890X", + "11229": "AB890X", + "11230": "AB890X", + "11231": "AB890X", + "11232": "AB890X", + "11233": "AB890X", + "11234": "AB890X", + "11235": "AB890X", + "11236": "AB890X", + "11237": "AB890X", + "11238": "AB890X", + "11239": "AB890X", + "11240": "AB890X", + "11241": "AB890X", + "11242": "AB890X", + "11243": "AB890X", + "11244": "AB890X", + "11245": "AB890X", + "11247": "AB890X", + "11248": "AB890X", + "11249": "AB890X", + "11251": "AB890X", + "11252": "AB890X", + "11254": "AB890X", + "11255": "AB890X", + "11256": "AB890X", + "11351": "AB890X", + "11352": "AB890X", + "11354": "AB890X", + "11355": "AB890X", + "11356": "AB890X", + "11357": "AB890X", + "11358": "AB890X", + "11359": "AB890X", + "11360": "AB890X", + "11361": "AB890X", + "11362": "AB890X", + "11363": "AB890X", + "11364": "AB890X", + "11365": "AB890X", + "11366": "AB890X", + "11367": "AB890X", + "11368": "AB890X", + "11369": "AB890X", + "11370": "AB890X", + "11371": "AB890X", + "11372": "AB890X", + "11373": "AB890X", + "11374": "AB890X", + "11375": "AB890X", + "11377": "AB890X", + "11378": "AB890X", + "11379": "AB890X", + "11380": "AB890X", + "11381": "AB890X", + "11385": "AB890X", + "11386": "AB890X", + "11390": "AB890X", + "11405": "AB890X", + "11411": "AB890X", + "11412": "AB890X", + "11413": "AB890X", + "11414": "AB890X", + "11415": "AB890X", + "11416": "AB890X", + "11417": "AB890X", + "11418": "AB890X", + "11419": "AB890X", + "11420": "AB890X", + "11421": "AB890X", + "11422": "AB890X", + "11423": "AB890X", + "11424": "AB890X", + "11425": "AB890X", + "11426": "AB890X", + "11427": "AB890X", + "11428": "AB890X", + "11429": "AB890X", + "11430": "AB890X", + "11431": "AB890X", + "11432": "AB890X", + "11433": "AB890X", + "11434": "AB890X", + "11435": "AB890X", + "11436": "AB890X", + "11439": "AB890X", + "11451": "AB890X", + "11499": "AB890X", + "11501": "AB890X", + "11507": "AB890X", + "11509": "AB890X", + "11510": "AB890X", + "11514": "AB890X", + "11516": "AB890X", + "11518": "AB890X", + "11520": "AB890X", + "11530": "AB890X", + "11531": "AB890X", + "11535": "AB890X", + "11536": "AB890X", + "11542": "AB890X", + "11545": "AB890X", + "11547": "AB890X", + "11548": "AB890X", + "11549": "AB890X", + "11550": "AB890X", + "11551": "AB890X", + "11552": "AB890X", + "11553": "AB890X", + "11554": "AB890X", + "11555": "AB890X", + "11556": "AB890X", + "11557": "AB890X", + "11558": "AB890X", + "11559": "AB890X", + "11560": "AB890X", + "11561": "AB890X", + "11563": "AB890X", + "11565": "AB890X", + "11566": "AB890X", + "11568": "AB890X", + "11569": "AB890X", + "11570": "AB890X", + "11571": "AB890X", + "11572": "AB890X", + "11575": "AB890X", + "11576": "AB890X", + "11577": "AB890X", + "11579": "AB890X", + "11580": "AB890X", + "11581": "AB890X", + "11582": "AB890X", + "11590": "AB890X", + "11592": "AB890X", + "11594": "AB890X", + "11595": "AB890X", + "11596": "AB890X", + "11597": "AB890X", + "11598": "AB890X", + "11599": "AB890X", + "11690": "AB890X", + "11691": "AB890X", + "11692": "AB890X", + "11693": "AB890X", + "11694": "AB890X", + "11695": "AB890X", + "11697": "AB890X", + "11701": "AB890X", + "11702": "AB890X", + "11703": "AB890X", + "11704": "AB890X", + "11705": "AB890X", + "11706": "AB890X", + "11707": "AB890X", + "11708": "AB890X", + "11709": "AB890X", + "11710": "AB890X", + "11713": "AB890X", + "11714": "AB890X", + "11715": "AB890X", + "11716": "AB890X", + "11717": "AB890X", + "11718": "AB890X", + "11719": "AB890X", + "11720": "AB890X", + "11721": "AB890X", + "11722": "AB890X", + "11724": "AB890X", + "11725": "AB890X", + "11726": "AB890X", + "11727": "AB890X", + "11729": "AB890X", + "11730": "AB890X", + "11731": "AB890X", + "11732": "AB890X", + "11733": "AB890X", + "11735": "AB890X", + "11736": "AB890X", + "11737": "AB890X", + "11738": "AB890X", + "11739": "AB890X", + "11740": "AB890X", + "11741": "AB890X", + "11742": "AB890X", + "11743": "AB890X", + "11746": "AB890X", + "11747": "AB890X", + "11749": "AB890X", + "11750": "AB890X", + "11751": "AB890X", + "11752": "AB890X", + "11753": "AB890X", + "11754": "AB890X", + "11755": "AB890X", + "11756": "AB890X", + "11757": "AB890X", + "11758": "AB890X", + "11760": "AB890X", + "11762": "AB890X", + "11763": "AB890X", + "11764": "AB890X", + "11765": "AB890X", + "11766": "AB890X", + "11767": "AB890X", + "11768": "AB890X", + "11769": "AB890X", + "11770": "AB890X", + "11771": "AB890X", + "11772": "AB890X", + "11773": "AB890X", + "11774": "AB890X", + "11775": "AB890X", + "11776": "AB890X", + "11777": "AB890X", + "11778": "AB890X", + "11779": "AB890X", + "11780": "AB890X", + "11782": "AB890X", + "11783": "AB890X", + "11784": "AB890X", + "11786": "AB890X", + "11787": "AB890X", + "11788": "AB890X", + "11789": "AB890X", + "11790": "AB890X", + "11791": "AB890X", + "11792": "AB890X", + "11793": "AB890X", + "11794": "AB890X", + "11795": "AB890X", + "11796": "AB890X", + "11797": "AB890X", + "11798": "AB890X", + "11801": "AB890X", + "11802": "AB890X", + "11803": "AB890X", + "11804": "AB890X", + "11815": "AB890X", + "11819": "AB890X", + "11853": "AB890X", + "11854": "AB890X", + "11855": "AB890X", + "11901": "AB890X", + "11930": "AB890X", + "11931": "AB890X", + "11932": "AB890X", + "11933": "AB890X", + "11934": "AB890X", + "11935": "AB890X", + "11937": "AB890X", + "11939": "AB890X", + "11940": "AB890X", + "11941": "AB890X", + "11942": "AB890X", + "11944": "AB890X", + "11946": "AB890X", + "11947": "AB890X", + "11948": "AB890X", + "11949": "AB890X", + "11950": "AB890X", + "11951": "AB890X", + "11952": "AB890X", + "11953": "AB890X", + "11954": "AB890X", + "11955": "AB890X", + "11956": "AB890X", + "11957": "AB890X", + "11958": "AB890X", + "11959": "AB890X", + "11960": "AB890X", + "11961": "AB890X", + "11962": "AB890X", + "11963": "AB890X", + "11964": "AB890X", + "11965": "AB890X", + "11967": "AB890X", + "11968": "AB890X", + "11969": "AB890X", + "11970": "AB890X", + "11971": "AB890X", + "11972": "AB890X", + "11973": "AB890X", + "11975": "AB890X", + "11976": "AB890X", + "11977": "AB890X", + "11978": "AB890X", + "11980": "AB890X", + "12007": "AB890X", + "12008": "AB890X", + "12009": "AB890X", + "12010": "AB890X", + "12015": "AB890X", + "12016": "AB890X", + "12017": "AB890X", + "12018": "AB890X", + "12019": "AB890X", + "12020": "AB890X", + "12022": "AB890X", + "12023": "AB890X", + "12024": "AB890X", + "12025": "AB890X", + "12027": "AB890X", + "12028": "AB890X", + "12029": "AB890X", + "12031": "AB890X", + "12032": "AB890X", + "12033": "AB890X", + "12035": "AB890X", + "12036": "AB890X", + "12037": "AB890X", + "12040": "AB890X", + "12041": "AB890X", + "12042": "AB890X", + "12043": "AB890X", + "12045": "AB890X", + "12046": "AB890X", + "12047": "AB890X", + "12050": "AB890X", + "12051": "AB890X", + "12052": "AB890X", + "12053": "AB890X", + "12054": "AB890X", + "12055": "AB890X", + "12056": "AB890X", + "12057": "AB890X", + "12058": "AB890X", + "12059": "AB890X", + "12060": "AB890X", + "12061": "AB890X", + "12062": "AB890X", + "12063": "AB890X", + "12064": "AB900X", + "12065": "AB890X", + "12066": "AB890X", + "12067": "AB890X", + "12068": "AB890X", + "12069": "AB890X", + "12070": "AB890X", + "12071": "AB890X", + "12072": "AB890X", + "12073": "AB890X", + "12074": "AB890X", + "12075": "AB890X", + "12076": "AB890X", + "12077": "AB890X", + "12078": "AB890X", + "12082": "AB890X", + "12083": "AB890X", + "12084": "AB890X", + "12085": "AB890X", + "12086": "AB890X", + "12087": "AB890X", + "12089": "AB890X", + "12090": "AB890X", + "12092": "AB890X", + "12093": "AB900X", + "12094": "AB890X", + "12095": "AB890X", + "12106": "AB890X", + "12107": "AB890X", + "12108": "AB890X", + "12110": "AB890X", + "12115": "AB890X", + "12116": "AB900X", + "12117": "AB890X", + "12118": "AB890X", + "12120": "AB890X", + "12121": "AB890X", + "12122": "AB890X", + "12123": "AB890X", + "12124": "AB890X", + "12125": "AB890X", + "12128": "AB890X", + "12130": "AB890X", + "12131": "AB890X", + "12132": "AB890X", + "12133": "AB890X", + "12134": "AB890X", + "12136": "AB890X", + "12137": "AB890X", + "12138": "AB890X", + "12139": "AB900X", + "12140": "AB890X", + "12141": "AB890X", + "12143": "AB890X", + "12144": "AB890X", + "12147": "AB890X", + "12148": "AB890X", + "12149": "AB890X", + "12150": "AB890X", + "12151": "AB890X", + "12153": "AB890X", + "12154": "AB890X", + "12155": "AB900X", + "12156": "AB890X", + "12157": "AB890X", + "12158": "AB890X", + "12159": "AB890X", + "12160": "AB890X", + "12161": "AB890X", + "12164": "AB890X", + "12165": "AB890X", + "12166": "AB890X", + "12167": "AB900X", + "12168": "AB890X", + "12169": "AB890X", + "12170": "AB890X", + "12172": "AB890X", + "12173": "AB890X", + "12174": "AB890X", + "12175": "AB890X", + "12176": "AB890X", + "12177": "AB890X", + "12180": "AB890X", + "12181": "AB890X", + "12182": "AB890X", + "12183": "AB890X", + "12184": "AB890X", + "12185": "AB890X", + "12186": "AB890X", + "12187": "AB890X", + "12188": "AB890X", + "12189": "AB890X", + "12190": "AB890X", + "12192": "AB890X", + "12193": "AB890X", + "12194": "AB890X", + "12195": "AB890X", + "12196": "AB890X", + "12197": "AB900X", + "12198": "AB890X", + "12201": "AB890X", + "12202": "AB890X", + "12203": "AB890X", + "12204": "AB890X", + "12205": "AB890X", + "12206": "AB890X", + "12207": "AB890X", + "12208": "AB890X", + "12209": "AB890X", + "12210": "AB890X", + "12211": "AB890X", + "12212": "AB890X", + "12214": "AB890X", + "12220": "AB890X", + "12222": "AB890X", + "12223": "AB890X", + "12224": "AB890X", + "12225": "AB890X", + "12226": "AB890X", + "12227": "AB890X", + "12228": "AB890X", + "12229": "AB890X", + "12230": "AB890X", + "12231": "AB890X", + "12232": "AB890X", + "12233": "AB890X", + "12234": "AB890X", + "12235": "AB890X", + "12236": "AB890X", + "12237": "AB890X", + "12238": "AB890X", + "12239": "AB890X", + "12240": "AB890X", + "12241": "AB890X", + "12242": "AB890X", + "12243": "AB890X", + "12244": "AB890X", + "12245": "AB890X", + "12246": "AB890X", + "12247": "AB890X", + "12248": "AB890X", + "12249": "AB890X", + "12250": "AB890X", + "12252": "AB890X", + "12255": "AB890X", + "12256": "AB890X", + "12257": "AB890X", + "12260": "AB890X", + "12261": "AB890X", + "12288": "AB890X", + "12301": "AB890X", + "12302": "AB890X", + "12303": "AB890X", + "12304": "AB890X", + "12305": "AB890X", + "12306": "AB890X", + "12307": "AB890X", + "12308": "AB890X", + "12309": "AB890X", + "12325": "AB890X", + "12345": "AB890X", + "12401": "AB890X", + "12402": "AB890X", + "12404": "AB890X", + "12405": "AB890X", + "12406": "AB900X", + "12407": "AB890X", + "12409": "AB890X", + "12410": "AB890X", + "12411": "AB890X", + "12412": "AB890X", + "12413": "AB890X", + "12414": "AB890X", + "12416": "AB890X", + "12417": "AB890X", + "12418": "AB890X", + "12419": "AB890X", + "12420": "AB890X", + "12421": "AB900X", + "12422": "AB890X", + "12423": "AB890X", + "12424": "AB890X", + "12427": "AB890X", + "12428": "AB890X", + "12429": "AB890X", + "12430": "AB900X", + "12431": "AB890X", + "12432": "AB890X", + "12433": "AB890X", + "12434": "AB900X", + "12435": "AB890X", + "12436": "AB890X", + "12438": "AB900X", + "12439": "AB890X", + "12440": "AB890X", + "12441": "AB890X", + "12442": "AB890X", + "12443": "AB890X", + "12444": "AB890X", + "12446": "AB890X", + "12448": "AB890X", + "12449": "AB890X", + "12450": "AB890X", + "12451": "AB890X", + "12452": "AB890X", + "12453": "AB890X", + "12454": "AB890X", + "12455": "AB900X", + "12456": "AB890X", + "12457": "AB890X", + "12458": "AB890X", + "12459": "AB900X", + "12460": "AB890X", + "12461": "AB890X", + "12463": "AB890X", + "12464": "AB890X", + "12465": "AB890X", + "12466": "AB890X", + "12468": "AB900X", + "12469": "AB890X", + "12470": "AB890X", + "12471": "AB890X", + "12472": "AB890X", + "12473": "AB890X", + "12474": "AB900X", + "12475": "AB890X", + "12477": "AB890X", + "12480": "AB890X", + "12481": "AB890X", + "12482": "AB890X", + "12483": "AB890X", + "12484": "AB890X", + "12485": "AB890X", + "12486": "AB890X", + "12487": "AB890X", + "12489": "AB890X", + "12490": "AB890X", + "12491": "AB890X", + "12492": "AB890X", + "12493": "AB890X", + "12494": "AB890X", + "12495": "AB890X", + "12496": "AB890X", + "12498": "AB890X", + "12501": "AB890X", + "12502": "AB890X", + "12503": "AB890X", + "12504": "AB890X", + "12506": "AB890X", + "12507": "AB890X", + "12508": "AB890X", + "12510": "AB890X", + "12511": "AB890X", + "12512": "AB890X", + "12513": "AB890X", + "12514": "AB890X", + "12515": "AB890X", + "12516": "AB890X", + "12517": "AB890X", + "12518": "AB890X", + "12520": "AB890X", + "12521": "AB890X", + "12522": "AB890X", + "12523": "AB890X", + "12524": "AB890X", + "12525": "AB890X", + "12526": "AB890X", + "12527": "AB890X", + "12528": "AB890X", + "12529": "AB890X", + "12530": "AB890X", + "12531": "AB890X", + "12533": "AB890X", + "12534": "AB890X", + "12537": "AB890X", + "12538": "AB890X", + "12540": "AB890X", + "12541": "AB890X", + "12542": "AB890X", + "12543": "AB890X", + "12544": "AB890X", + "12545": "AB890X", + "12546": "AB890X", + "12547": "AB890X", + "12548": "AB890X", + "12549": "AB890X", + "12550": "AB890X", + "12551": "AB890X", + "12552": "AB890X", + "12553": "AB890X", + "12555": "AB890X", + "12561": "AB890X", + "12563": "AB890X", + "12564": "AB890X", + "12565": "AB890X", + "12566": "AB890X", + "12567": "AB890X", + "12568": "AB890X", + "12569": "AB890X", + "12570": "AB890X", + "12571": "AB890X", + "12572": "AB890X", + "12574": "AB890X", + "12575": "AB890X", + "12577": "AB890X", + "12578": "AB890X", + "12580": "AB890X", + "12581": "AB890X", + "12582": "AB890X", + "12583": "AB890X", + "12584": "AB890X", + "12585": "AB890X", + "12586": "AB890X", + "12588": "AB890X", + "12589": "AB890X", + "12590": "AB890X", + "12592": "AB890X", + "12593": "AB890X", + "12594": "AB890X", + "12601": "AB890X", + "12602": "AB890X", + "12603": "AB890X", + "12604": "AB890X", + "12701": "AB890X", + "12719": "AB890X", + "12720": "AB890X", + "12721": "AB890X", + "12722": "AB890X", + "12723": "AB890X", + "12724": "AB890X", + "12725": "AB890X", + "12726": "AB890X", + "12727": "AB890X", + "12729": "AB890X", + "12732": "AB890X", + "12733": "AB890X", + "12734": "AB890X", + "12736": "AB890X", + "12737": "AB890X", + "12738": "AB890X", + "12740": "AB890X", + "12741": "AB890X", + "12742": "AB890X", + "12743": "AB890X", + "12745": "AB890X", + "12746": "AB890X", + "12747": "AB890X", + "12748": "AB890X", + "12749": "AB890X", + "12750": "AB890X", + "12751": "AB890X", + "12752": "AB890X", + "12754": "AB890X", + "12758": "AB890X", + "12759": "AB890X", + "12760": "AB890X", + "12762": "AB890X", + "12763": "AB890X", + "12764": "AB890X", + "12765": "AB890X", + "12766": "AB890X", + "12767": "AB890X", + "12768": "AB890X", + "12769": "AB890X", + "12770": "AB890X", + "12771": "AB890X", + "12775": "AB890X", + "12776": "AB890X", + "12777": "AB890X", + "12778": "AB890X", + "12779": "AB890X", + "12780": "AB890X", + "12781": "AB890X", + "12783": "AB890X", + "12784": "AB890X", + "12785": "AB890X", + "12786": "AB890X", + "12787": "AB890X", + "12788": "AB890X", + "12789": "AB890X", + "12790": "AB890X", + "12791": "AB890X", + "12792": "AB890X", + "12801": "AB890X", + "12803": "AB890X", + "12804": "AB890X", + "12808": "AB890X", + "12809": "AB890X", + "12810": "AB890X", + "12811": "AB890X", + "12812": "AB890X", + "12814": "AB890X", + "12815": "AB890X", + "12816": "AB890X", + "12817": "AB890X", + "12819": "AB890X", + "12820": "AB890X", + "12821": "AB890X", + "12822": "AB890X", + "12823": "AB890X", + "12824": "AB890X", + "12827": "AB890X", + "12828": "AB890X", + "12831": "AB890X", + "12832": "AB890X", + "12833": "AB890X", + "12834": "AB890X", + "12835": "AB890X", + "12836": "AB890X", + "12837": "AB890X", + "12838": "AB890X", + "12839": "AB890X", + "12841": "AB890X", + "12842": "AB890X", + "12843": "AB890X", + "12844": "AB890X", + "12845": "AB890X", + "12846": "AB890X", + "12847": "AB890X", + "12848": "AB890X", + "12849": "AB890X", + "12850": "AB890X", + "12851": "AB890X", + "12852": "AB890X", + "12853": "AB890X", + "12854": "AB890X", + "12855": "AB889X", + "12856": "AB890X", + "12857": "AB890X", + "12858": "AB889X", + "12859": "AB890X", + "12860": "AB890X", + "12861": "AB890X", + "12862": "AB890X", + "12863": "AB890X", + "12864": "AB890X", + "12865": "AB890X", + "12866": "AB890X", + "12870": "AB889X", + "12871": "AB890X", + "12872": "AB889X", + "12873": "AB890X", + "12874": "AB890X", + "12878": "AB890X", + "12879": "AB889X", + "12883": "AB889X", + "12884": "AB890X", + "12885": "AB890X", + "12886": "AB890X", + "12887": "AB890X", + "12901": "AB889X", + "12903": "AB889X", + "12910": "AB889X", + "12911": "AB889X", + "12912": "AB889X", + "12913": "AB889X", + "12914": "AB889X", + "12915": "AB889X", + "12916": "AB889X", + "12917": "AB889X", + "12918": "AB890X", + "12919": "AB889X", + "12920": "AB889X", + "12921": "AB889X", + "12922": "AB889X", + "12923": "AB889X", + "12924": "AB889X", + "12926": "AB889X", + "12927": "AB900X", + "12928": "AB889X", + "12929": "AB889X", + "12930": "AB889X", + "12932": "AB889X", + "12933": "AB889X", + "12934": "AB889X", + "12935": "AB889X", + "12936": "AB889X", + "12937": "AB889X", + "12939": "AB889X", + "12941": "AB889X", + "12942": "AB889X", + "12943": "AB889X", + "12944": "AB889X", + "12945": "AB889X", + "12946": "AB889X", + "12949": "AB889X", + "12950": "AB889X", + "12952": "AB889X", + "12953": "AB889X", + "12955": "AB889X", + "12956": "AB889X", + "12957": "AB889X", + "12958": "AB889X", + "12959": "AB889X", + "12960": "AB889X", + "12961": "AB889X", + "12962": "AB889X", + "12964": "AB889X", + "12965": "AB900X", + "12966": "AB889X", + "12967": "AB900X", + "12969": "AB889X", + "12970": "AB889X", + "12972": "AB889X", + "12973": "AB889X", + "12974": "AB889X", + "12975": "AB889X", + "12976": "AB889X", + "12977": "AB889X", + "12978": "AB889X", + "12979": "AB889X", + "12980": "AB889X", + "12981": "AB889X", + "12983": "AB889X", + "12985": "AB889X", + "12986": "AB900X", + "12987": "AB889X", + "12989": "AB889X", + "12992": "AB889X", + "12993": "AB889X", + "12995": "AB889X", + "12996": "AB889X", + "12997": "AB889X", + "12998": "AB889X", + "13020": "AB900X", + "13021": "AB900X", + "13022": "AB900X", + "13024": "AB900X", + "13026": "AB900X", + "13027": "AB900X", + "13028": "AB900X", + "13029": "AB900X", + "13030": "AB900X", + "13031": "AB900X", + "13032": "AB900X", + "13033": "AB900X", + "13034": "AB900X", + "13035": "AB900X", + "13036": "AB900X", + "13037": "AB900X", + "13039": "AB900X", + "13040": "AB890X", + "13041": "AB900X", + "13042": "AB900X", + "13043": "AB900X", + "13044": "AB900X", + "13045": "AB900X", + "13051": "AB900X", + "13052": "AB900X", + "13053": "AB900X", + "13054": "AB900X", + "13056": "AB890X", + "13057": "AB900X", + "13060": "AB900X", + "13061": "AB900X", + "13062": "AB900X", + "13063": "AB900X", + "13064": "AB900X", + "13065": "AB900X", + "13066": "AB900X", + "13068": "AB900X", + "13069": "AB900X", + "13071": "AB900X", + "13072": "AB900X", + "13073": "AB900X", + "13074": "AB900X", + "13076": "AB900X", + "13077": "AB890X", + "13078": "AB900X", + "13080": "AB900X", + "13081": "AB900X", + "13082": "AB900X", + "13083": "AB900X", + "13084": "AB900X", + "13087": "AB890X", + "13088": "AB900X", + "13089": "AB900X", + "13090": "AB900X", + "13092": "AB900X", + "13093": "AB900X", + "13101": "AB890X", + "13102": "AB900X", + "13103": "AB900X", + "13104": "AB900X", + "13107": "AB900X", + "13108": "AB900X", + "13110": "AB900X", + "13111": "AB900X", + "13112": "AB900X", + "13113": "AB900X", + "13114": "AB900X", + "13115": "AB900X", + "13116": "AB900X", + "13117": "AB900X", + "13118": "AB900X", + "13119": "AB900X", + "13120": "AB900X", + "13121": "AB900X", + "13122": "AB900X", + "13123": "AB900X", + "13124": "AB900X", + "13126": "AB900X", + "13131": "AB900X", + "13132": "AB900X", + "13134": "AB900X", + "13135": "AB900X", + "13136": "AB900X", + "13137": "AB900X", + "13138": "AB900X", + "13139": "AB900X", + "13140": "AB900X", + "13141": "AB890X", + "13142": "AB900X", + "13143": "AB900X", + "13144": "AB900X", + "13145": "AB900X", + "13146": "AB900X", + "13147": "AB900X", + "13148": "AB900X", + "13152": "AB900X", + "13153": "AB900X", + "13154": "AB900X", + "13155": "AB900X", + "13156": "AB900X", + "13157": "AB900X", + "13158": "AB900X", + "13159": "AB900X", + "13160": "AB900X", + "13162": "AB900X", + "13163": "AB900X", + "13164": "AB900X", + "13165": "AB900X", + "13166": "AB900X", + "13167": "AB900X", + "13201": "AB900X", + "13202": "AB900X", + "13203": "AB900X", + "13204": "AB900X", + "13205": "AB900X", + "13206": "AB900X", + "13207": "AB900X", + "13208": "AB900X", + "13209": "AB900X", + "13210": "AB900X", + "13211": "AB900X", + "13212": "AB900X", + "13214": "AB900X", + "13215": "AB900X", + "13217": "AB900X", + "13218": "AB900X", + "13219": "AB900X", + "13220": "AB900X", + "13221": "AB900X", + "13224": "AB900X", + "13225": "AB900X", + "13235": "AB900X", + "13244": "AB900X", + "13250": "AB900X", + "13251": "AB900X", + "13252": "AB900X", + "13261": "AB900X", + "13290": "AB900X", + "13301": "AB900X", + "13302": "AB900X", + "13303": "AB900X", + "13304": "AB900X", + "13305": "AB900X", + "13308": "AB900X", + "13309": "AB900X", + "13310": "AB900X", + "13312": "AB900X", + "13313": "AB900X", + "13314": "AB900X", + "13315": "AB900X", + "13316": "AB900X", + "13317": "AB890X", + "13318": "AB900X", + "13319": "AB900X", + "13320": "AB900X", + "13321": "AB900X", + "13322": "AB900X", + "13323": "AB900X", + "13324": "AB900X", + "13325": "AB900X", + "13326": "AB900X", + "13327": "AB900X", + "13328": "AB900X", + "13329": "AB900X", + "13331": "AB900X", + "13332": "AB890X", + "13333": "AB900X", + "13334": "AB900X", + "13335": "AB900X", + "13337": "AB900X", + "13338": "AB900X", + "13339": "AB890X", + "13340": "AB900X", + "13341": "AB900X", + "13342": "AB900X", + "13343": "AB900X", + "13345": "AB900X", + "13346": "AB900X", + "13348": "AB900X", + "13350": "AB900X", + "13352": "AB900X", + "13353": "AB890X", + "13354": "AB900X", + "13355": "AB900X", + "13357": "AB900X", + "13360": "AB900X", + "13361": "AB900X", + "13362": "AB900X", + "13363": "AB900X", + "13364": "AB900X", + "13365": "AB900X", + "13367": "AB900X", + "13368": "AB900X", + "13401": "AB900X", + "13402": "AB900X", + "13403": "AB900X", + "13404": "AB900X", + "13406": "AB900X", + "13407": "AB900X", + "13408": "AB900X", + "13409": "AB900X", + "13410": "AB900X", + "13411": "AB900X", + "13413": "AB900X", + "13415": "AB900X", + "13416": "AB900X", + "13417": "AB900X", + "13418": "AB900X", + "13420": "AB900X", + "13421": "AB900X", + "13424": "AB900X", + "13425": "AB900X", + "13426": "AB900X", + "13428": "AB890X", + "13431": "AB900X", + "13433": "AB900X", + "13435": "AB900X", + "13436": "AB890X", + "13437": "AB900X", + "13438": "AB900X", + "13439": "AB900X", + "13440": "AB900X", + "13441": "AB900X", + "13442": "AB900X", + "13449": "AB900X", + "13450": "AB900X", + "13452": "AB890X", + "13454": "AB900X", + "13455": "AB900X", + "13456": "AB900X", + "13457": "AB900X", + "13459": "AB890X", + "13460": "AB890X", + "13461": "AB900X", + "13464": "AB890X", + "13465": "AB900X", + "13468": "AB900X", + "13469": "AB900X", + "13470": "AB900X", + "13471": "AB900X", + "13472": "AB900X", + "13473": "AB900X", + "13475": "AB900X", + "13476": "AB900X", + "13477": "AB900X", + "13478": "AB900X", + "13479": "AB900X", + "13480": "AB900X", + "13482": "AB900X", + "13483": "AB900X", + "13484": "AB900X", + "13485": "AB900X", + "13486": "AB900X", + "13488": "AB900X", + "13489": "AB900X", + "13490": "AB900X", + "13491": "AB900X", + "13492": "AB900X", + "13493": "AB900X", + "13494": "AB900X", + "13495": "AB900X", + "13501": "AB900X", + "13502": "AB900X", + "13503": "AB900X", + "13504": "AB900X", + "13505": "AB900X", + "13599": "AB900X", + "13601": "AB900X", + "13602": "AB900X", + "13603": "AB900X", + "13605": "AB900X", + "13606": "AB900X", + "13607": "AB900X", + "13608": "AB900X", + "13611": "AB900X", + "13612": "AB900X", + "13613": "AB900X", + "13614": "AB900X", + "13615": "AB900X", + "13616": "AB900X", + "13617": "AB900X", + "13618": "AB900X", + "13619": "AB900X", + "13620": "AB900X", + "13621": "AB900X", + "13622": "AB900X", + "13623": "AB900X", + "13624": "AB900X", + "13625": "AB900X", + "13626": "AB900X", + "13627": "AB900X", + "13628": "AB900X", + "13630": "AB900X", + "13631": "AB900X", + "13632": "AB900X", + "13633": "AB900X", + "13634": "AB900X", + "13635": "AB900X", + "13636": "AB900X", + "13637": "AB900X", + "13638": "AB900X", + "13639": "AB900X", + "13640": "AB900X", + "13641": "AB900X", + "13642": "AB900X", + "13643": "AB900X", + "13645": "AB900X", + "13646": "AB900X", + "13647": "AB900X", + "13648": "AB900X", + "13649": "AB900X", + "13650": "AB900X", + "13651": "AB900X", + "13652": "AB900X", + "13654": "AB900X", + "13655": "AB900X", + "13656": "AB900X", + "13657": "AB900X", + "13658": "AB900X", + "13659": "AB900X", + "13660": "AB900X", + "13661": "AB900X", + "13662": "AB900X", + "13664": "AB900X", + "13665": "AB900X", + "13666": "AB900X", + "13667": "AB900X", + "13668": "AB900X", + "13669": "AB900X", + "13670": "AB900X", + "13671": "AB900X", + "13672": "AB900X", + "13673": "AB900X", + "13674": "AB900X", + "13675": "AB900X", + "13676": "AB900X", + "13677": "AB900X", + "13678": "AB900X", + "13679": "AB900X", + "13680": "AB900X", + "13681": "AB900X", + "13682": "AB900X", + "13683": "AB900X", + "13684": "AB900X", + "13685": "AB900X", + "13687": "AB900X", + "13690": "AB900X", + "13691": "AB900X", + "13692": "AB900X", + "13693": "AB900X", + "13694": "AB900X", + "13695": "AB900X", + "13696": "AB900X", + "13697": "AB900X", + "13699": "AB900X", + "13730": "AB890X", + "13731": "AB900X", + "13732": "AB890X", + "13733": "AB890X", + "13734": "AB890X", + "13736": "AB890X", + "13737": "AB890X", + "13738": "AB890X", + "13739": "AB900X", + "13740": "AB900X", + "13743": "AB890X", + "13744": "AB890X", + "13745": "AB890X", + "13746": "AB890X", + "13747": "AB900X", + "13748": "AB890X", + "13749": "AB890X", + "13750": "AB900X", + "13751": "AB900X", + "13752": "AB900X", + "13753": "AB900X", + "13754": "AB890X", + "13755": "AB890X", + "13756": "AB890X", + "13757": "AB900X", + "13758": "AB890X", + "13760": "AB890X", + "13761": "AB890X", + "13762": "AB890X", + "13763": "AB890X", + "13774": "AB900X", + "13775": "AB900X", + "13776": "AB900X", + "13777": "AB890X", + "13778": "AB890X", + "13780": "AB890X", + "13782": "AB900X", + "13783": "AB890X", + "13784": "AB890X", + "13786": "AB900X", + "13787": "AB890X", + "13788": "AB900X", + "13790": "AB890X", + "13794": "AB890X", + "13795": "AB890X", + "13796": "AB900X", + "13797": "AB890X", + "13801": "AB890X", + "13802": "AB890X", + "13803": "AB890X", + "13804": "AB900X", + "13806": "AB900X", + "13807": "AB900X", + "13808": "AB900X", + "13809": "AB900X", + "13810": "AB900X", + "13811": "AB890X", + "13812": "AB890X", + "13813": "AB890X", + "13814": "AB890X", + "13815": "AB890X", + "13820": "AB900X", + "13825": "AB900X", + "13826": "AB890X", + "13827": "AB890X", + "13830": "AB890X", + "13832": "AB890X", + "13833": "AB890X", + "13834": "AB900X", + "13835": "AB890X", + "13837": "AB900X", + "13838": "AB900X", + "13839": "AB900X", + "13840": "AB890X", + "13841": "AB890X", + "13842": "AB900X", + "13843": "AB900X", + "13844": "AB890X", + "13845": "AB890X", + "13846": "AB900X", + "13847": "AB900X", + "13848": "AB890X", + "13849": "AB900X", + "13850": "AB890X", + "13851": "AB890X", + "13856": "AB900X", + "13859": "AB900X", + "13860": "AB900X", + "13861": "AB900X", + "13862": "AB890X", + "13863": "AB890X", + "13864": "AB890X", + "13865": "AB890X", + "13901": "AB890X", + "13902": "AB890X", + "13903": "AB890X", + "13904": "AB890X", + "13905": "AB890X", + "14001": "AB900X", + "14004": "AB900X", + "14005": "AB900X", + "14006": "AB900X", + "14008": "AB900X", + "14009": "AB900X", + "14010": "AB900X", + "14011": "AB900X", + "14012": "AB900X", + "14013": "AB900X", + "14020": "AB900X", + "14021": "AB900X", + "14024": "AB900X", + "14025": "AB900X", + "14026": "AB900X", + "14027": "AB900X", + "14028": "AB900X", + "14029": "AB900X", + "14030": "AB900X", + "14031": "AB900X", + "14032": "AB900X", + "14033": "AB900X", + "14034": "AB900X", + "14035": "AB900X", + "14036": "AB900X", + "14037": "AB900X", + "14038": "AB900X", + "14039": "AB900X", + "14040": "AB900X", + "14041": "AB900X", + "14042": "AB900X", + "14043": "AB900X", + "14047": "AB900X", + "14048": "AB900X", + "14051": "AB900X", + "14052": "AB900X", + "14054": "AB900X", + "14055": "AB900X", + "14056": "AB900X", + "14057": "AB900X", + "14058": "AB900X", + "14059": "AB900X", + "14060": "AB900X", + "14061": "AB900X", + "14062": "AB900X", + "14063": "AB900X", + "14065": "AB900X", + "14066": "AB900X", + "14067": "AB900X", + "14068": "AB900X", + "14069": "AB900X", + "14070": "AB900X", + "14072": "AB900X", + "14075": "AB900X", + "14080": "AB900X", + "14081": "AB900X", + "14082": "AB900X", + "14083": "AB900X", + "14085": "AB900X", + "14086": "AB900X", + "14091": "AB900X", + "14092": "AB900X", + "14094": "AB900X", + "14095": "AB900X", + "14098": "AB900X", + "14101": "AB900X", + "14102": "AB900X", + "14103": "AB900X", + "14105": "AB900X", + "14107": "AB900X", + "14108": "AB900X", + "14109": "AB900X", + "14110": "AB900X", + "14111": "AB900X", + "14112": "AB900X", + "14113": "AB900X", + "14120": "AB900X", + "14125": "AB900X", + "14126": "AB900X", + "14127": "AB900X", + "14129": "AB900X", + "14130": "AB900X", + "14131": "AB900X", + "14132": "AB900X", + "14133": "AB900X", + "14134": "AB900X", + "14135": "AB900X", + "14136": "AB900X", + "14138": "AB900X", + "14139": "AB900X", + "14140": "AB900X", + "14141": "AB900X", + "14143": "AB900X", + "14144": "AB900X", + "14145": "AB900X", + "14150": "AB900X", + "14151": "AB900X", + "14166": "AB900X", + "14167": "AB900X", + "14168": "AB900X", + "14169": "AB900X", + "14170": "AB900X", + "14171": "AB900X", + "14172": "AB900X", + "14173": "AB900X", + "14174": "AB900X", + "14201": "AB900X", + "14202": "AB900X", + "14203": "AB900X", + "14204": "AB900X", + "14205": "AB900X", + "14206": "AB900X", + "14207": "AB900X", + "14208": "AB900X", + "14209": "AB900X", + "14210": "AB900X", + "14211": "AB900X", + "14212": "AB900X", + "14213": "AB900X", + "14214": "AB900X", + "14215": "AB900X", + "14216": "AB900X", + "14217": "AB900X", + "14218": "AB900X", + "14219": "AB900X", + "14220": "AB900X", + "14221": "AB900X", + "14222": "AB900X", + "14223": "AB900X", + "14224": "AB900X", + "14225": "AB900X", + "14226": "AB900X", + "14227": "AB900X", + "14228": "AB900X", + "14231": "AB900X", + "14233": "AB900X", + "14240": "AB900X", + "14241": "AB900X", + "14260": "AB900X", + "14261": "AB900X", + "14263": "AB900X", + "14264": "AB900X", + "14265": "AB900X", + "14267": "AB900X", + "14269": "AB900X", + "14270": "AB900X", + "14272": "AB900X", + "14273": "AB900X", + "14276": "AB900X", + "14280": "AB900X", + "14301": "AB900X", + "14302": "AB900X", + "14303": "AB900X", + "14304": "AB900X", + "14305": "AB900X", + "14410": "AB900X", + "14411": "AB900X", + "14413": "AB900X", + "14414": "AB900X", + "14415": "AB900X", + "14416": "AB900X", + "14418": "AB900X", + "14420": "AB900X", + "14422": "AB900X", + "14423": "AB900X", + "14424": "AB900X", + "14425": "AB900X", + "14427": "AB900X", + "14428": "AB900X", + "14429": "AB900X", + "14430": "AB900X", + "14432": "AB900X", + "14433": "AB900X", + "14435": "AB900X", + "14437": "AB900X", + "14441": "AB900X", + "14443": "AB900X", + "14445": "AB900X", + "14449": "AB900X", + "14450": "AB900X", + "14452": "AB900X", + "14453": "AB900X", + "14454": "AB900X", + "14456": "AB900X", + "14461": "AB900X", + "14462": "AB900X", + "14463": "AB900X", + "14464": "AB900X", + "14466": "AB900X", + "14467": "AB900X", + "14468": "AB900X", + "14469": "AB900X", + "14470": "AB900X", + "14471": "AB900X", + "14472": "AB900X", + "14475": "AB900X", + "14476": "AB900X", + "14477": "AB900X", + "14478": "AB900X", + "14479": "AB900X", + "14480": "AB900X", + "14481": "AB900X", + "14482": "AB900X", + "14485": "AB900X", + "14486": "AB900X", + "14487": "AB900X", + "14488": "AB900X", + "14489": "AB900X", + "14502": "AB900X", + "14504": "AB900X", + "14505": "AB900X", + "14506": "AB900X", + "14507": "AB900X", + "14508": "AB900X", + "14510": "AB900X", + "14511": "AB900X", + "14512": "AB900X", + "14513": "AB900X", + "14514": "AB900X", + "14515": "AB900X", + "14516": "AB900X", + "14517": "AB900X", + "14518": "AB900X", + "14519": "AB900X", + "14520": "AB900X", + "14521": "AB900X", + "14522": "AB900X", + "14525": "AB900X", + "14526": "AB900X", + "14527": "AB900X", + "14529": "AB890X", + "14530": "AB900X", + "14532": "AB900X", + "14533": "AB900X", + "14534": "AB900X", + "14536": "AB900X", + "14537": "AB900X", + "14538": "AB900X", + "14539": "AB900X", + "14541": "AB900X", + "14542": "AB900X", + "14543": "AB900X", + "14544": "AB900X", + "14545": "AB900X", + "14546": "AB900X", + "14547": "AB900X", + "14548": "AB900X", + "14549": "AB900X", + "14550": "AB900X", + "14551": "AB900X", + "14555": "AB900X", + "14556": "AB900X", + "14557": "AB900X", + "14558": "AB900X", + "14559": "AB900X", + "14560": "AB900X", + "14561": "AB900X", + "14563": "AB900X", + "14564": "AB900X", + "14568": "AB900X", + "14569": "AB900X", + "14571": "AB900X", + "14572": "AB900X", + "14580": "AB900X", + "14585": "AB900X", + "14586": "AB900X", + "14588": "AB900X", + "14589": "AB900X", + "14590": "AB900X", + "14591": "AB900X", + "14592": "AB900X", + "14602": "AB900X", + "14603": "AB900X", + "14604": "AB900X", + "14605": "AB900X", + "14606": "AB900X", + "14607": "AB900X", + "14608": "AB900X", + "14609": "AB900X", + "14610": "AB900X", + "14611": "AB900X", + "14612": "AB900X", + "14613": "AB900X", + "14614": "AB900X", + "14615": "AB900X", + "14616": "AB900X", + "14617": "AB900X", + "14618": "AB900X", + "14619": "AB900X", + "14620": "AB900X", + "14621": "AB900X", + "14622": "AB900X", + "14623": "AB900X", + "14624": "AB900X", + "14625": "AB900X", + "14626": "AB900X", + "14627": "AB900X", + "14638": "AB900X", + "14639": "AB900X", + "14642": "AB900X", + "14643": "AB900X", + "14644": "AB900X", + "14645": "AB900X", + "14646": "AB900X", + "14647": "AB900X", + "14649": "AB900X", + "14650": "AB900X", + "14651": "AB900X", + "14652": "AB900X", + "14653": "AB900X", + "14664": "AB900X", + "14673": "AB900X", + "14683": "AB900X", + "14692": "AB900X", + "14694": "AB900X", + "14701": "AB900X", + "14702": "AB900X", + "14706": "AB900X", + "14707": "AB900X", + "14708": "AB900X", + "14709": "AB900X", + "14710": "AB900X", + "14711": "AB900X", + "14712": "AB900X", + "14714": "AB900X", + "14715": "AB900X", + "14716": "AB900X", + "14717": "AB900X", + "14718": "AB900X", + "14719": "AB900X", + "14720": "AB900X", + "14721": "AB900X", + "14722": "AB900X", + "14723": "AB900X", + "14724": "AB900X", + "14726": "AB900X", + "14727": "AB900X", + "14728": "AB900X", + "14729": "AB900X", + "14730": "AB900X", + "14731": "AB900X", + "14732": "AB900X", + "14733": "AB900X", + "14735": "AB900X", + "14736": "AB900X", + "14737": "AB900X", + "14738": "AB900X", + "14739": "AB900X", + "14740": "AB900X", + "14741": "AB900X", + "14742": "AB900X", + "14743": "AB900X", + "14744": "AB900X", + "14745": "AB900X", + "14747": "AB900X", + "14748": "AB900X", + "14750": "AB900X", + "14751": "AB900X", + "14752": "AB900X", + "14753": "AB900X", + "14754": "AB900X", + "14755": "AB900X", + "14756": "AB900X", + "14757": "AB900X", + "14758": "AB900X", + "14760": "AB900X", + "14762": "AB900X", + "14766": "AB900X", + "14767": "AB900X", + "14769": "AB900X", + "14770": "AB900X", + "14772": "AB900X", + "14774": "AB900X", + "14775": "AB900X", + "14777": "AB900X", + "14778": "AB900X", + "14779": "AB900X", + "14781": "AB900X", + "14782": "AB900X", + "14783": "AB900X", + "14784": "AB900X", + "14785": "AB900X", + "14786": "AB900X", + "14787": "AB900X", + "14788": "AB900X", + "14801": "AB890X", + "14802": "AB900X", + "14803": "AB900X", + "14804": "AB900X", + "14805": "AB890X", + "14806": "AB900X", + "14807": "AB900X", + "14808": "AB900X", + "14809": "AB900X", + "14810": "AB890X", + "14812": "AB890X", + "14813": "AB900X", + "14814": "AB890X", + "14815": "AB890X", + "14816": "AB890X", + "14817": "AB900X", + "14818": "AB890X", + "14819": "AB890X", + "14820": "AB890X", + "14821": "AB890X", + "14822": "AB900X", + "14823": "AB890X", + "14824": "AB890X", + "14825": "AB890X", + "14826": "AB900X", + "14827": "AB890X", + "14830": "AB890X", + "14831": "AB890X", + "14836": "AB900X", + "14837": "AB900X", + "14838": "AB890X", + "14839": "AB890X", + "14840": "AB890X", + "14841": "AB890X", + "14842": "AB900X", + "14843": "AB890X", + "14845": "AB890X", + "14846": "AB900X", + "14847": "AB900X", + "14850": "AB900X", + "14851": "AB900X", + "14852": "AB900X", + "14853": "AB900X", + "14854": "AB900X", + "14855": "AB890X", + "14856": "AB890X", + "14857": "AB900X", + "14858": "AB890X", + "14859": "AB890X", + "14860": "AB900X", + "14861": "AB890X", + "14863": "AB890X", + "14864": "AB890X", + "14865": "AB890X", + "14867": "AB900X", + "14869": "AB890X", + "14870": "AB890X", + "14871": "AB890X", + "14872": "AB890X", + "14873": "AB890X", + "14874": "AB890X", + "14876": "AB890X", + "14877": "AB890X", + "14878": "AB900X", + "14879": "AB890X", + "14880": "AB900X", + "14881": "AB900X", + "14882": "AB900X", + "14883": "AB890X", + "14884": "AB900X", + "14885": "AB890X", + "14886": "AB900X", + "14887": "AB890X", + "14889": "AB890X", + "14891": "AB890X", + "14892": "AB890X", + "14893": "AB890X", + "14894": "AB890X", + "14895": "AB900X", + "14897": "AB900X", + "14898": "AB890X", + "14901": "AB890X", + "14902": "AB890X", + "14903": "AB890X", + "14904": "AB890X", + "14905": "AB890X", + "14925": "AB890X", + "15001": "AB900X", + "15003": "AB900X", + "15004": "AB900X", + "15005": "AB900X", + "15006": "AB900X", + "15007": "AB900X", + "15009": "AB900X", + "15010": "AB900X", + "15012": "AB900X", + "15014": "AB900X", + "15015": "AB900X", + "15017": "AB900X", + "15018": "AB900X", + "15019": "AB900X", + "15020": "AB900X", + "15021": "AB900X", + "15022": "AB900X", + "15024": "AB900X", + "15025": "AB900X", + "15026": "AB900X", + "15027": "AB900X", + "15028": "AB900X", + "15030": "AB900X", + "15031": "AB900X", + "15032": "AB900X", + "15033": "AB900X", + "15034": "AB900X", + "15035": "AB900X", + "15037": "AB900X", + "15038": "AB900X", + "15042": "AB900X", + "15043": "AB900X", + "15044": "AB900X", + "15045": "AB900X", + "15046": "AB900X", + "15047": "AB900X", + "15049": "AB900X", + "15050": "AB900X", + "15051": "AB900X", + "15052": "AB900X", + "15053": "AB900X", + "15054": "AB900X", + "15055": "AB900X", + "15056": "AB900X", + "15057": "AB900X", + "15059": "AB900X", + "15060": "AB900X", + "15061": "AB900X", + "15062": "AB900X", + "15063": "AB900X", + "15064": "AB900X", + "15065": "AB900X", + "15066": "AB900X", + "15067": "AB900X", + "15068": "AB900X", + "15069": "AB900X", + "15071": "AB900X", + "15072": "AB900X", + "15074": "AB900X", + "15075": "AB900X", + "15076": "AB900X", + "15077": "AB900X", + "15078": "AB900X", + "15081": "AB900X", + "15082": "AB900X", + "15083": "AB900X", + "15084": "AB900X", + "15085": "AB900X", + "15086": "AB900X", + "15087": "AB900X", + "15088": "AB900X", + "15089": "AB900X", + "15090": "AB900X", + "15091": "AB900X", + "15095": "AB900X", + "15096": "AB900X", + "15101": "AB900X", + "15102": "AB900X", + "15104": "AB900X", + "15106": "AB900X", + "15108": "AB900X", + "15110": "AB900X", + "15112": "AB900X", + "15116": "AB900X", + "15120": "AB900X", + "15122": "AB900X", + "15123": "AB900X", + "15126": "AB900X", + "15127": "AB900X", + "15129": "AB900X", + "15131": "AB900X", + "15132": "AB900X", + "15133": "AB900X", + "15134": "AB900X", + "15135": "AB900X", + "15136": "AB900X", + "15137": "AB900X", + "15139": "AB900X", + "15140": "AB900X", + "15142": "AB900X", + "15143": "AB900X", + "15144": "AB900X", + "15145": "AB900X", + "15146": "AB900X", + "15147": "AB900X", + "15148": "AB900X", + "15201": "AB900X", + "15202": "AB900X", + "15203": "AB900X", + "15204": "AB900X", + "15205": "AB900X", + "15206": "AB900X", + "15207": "AB900X", + "15208": "AB900X", + "15209": "AB900X", + "15210": "AB900X", + "15211": "AB900X", + "15212": "AB900X", + "15213": "AB900X", + "15214": "AB900X", + "15215": "AB900X", + "15216": "AB900X", + "15217": "AB900X", + "15218": "AB900X", + "15219": "AB900X", + "15220": "AB900X", + "15221": "AB900X", + "15222": "AB900X", + "15223": "AB900X", + "15224": "AB900X", + "15225": "AB900X", + "15226": "AB900X", + "15227": "AB900X", + "15228": "AB900X", + "15229": "AB900X", + "15230": "AB900X", + "15231": "AB900X", + "15232": "AB900X", + "15233": "AB900X", + "15234": "AB900X", + "15235": "AB900X", + "15236": "AB900X", + "15237": "AB900X", + "15238": "AB900X", + "15239": "AB900X", + "15240": "AB900X", + "15241": "AB900X", + "15242": "AB900X", + "15243": "AB900X", + "15244": "AB900X", + "15250": "AB900X", + "15251": "AB900X", + "15252": "AB900X", + "15253": "AB900X", + "15254": "AB900X", + "15255": "AB900X", + "15257": "AB900X", + "15258": "AB900X", + "15259": "AB900X", + "15260": "AB900X", + "15261": "AB900X", + "15262": "AB900X", + "15263": "AB900X", + "15264": "AB900X", + "15265": "AB900X", + "15267": "AB900X", + "15268": "AB900X", + "15270": "AB900X", + "15272": "AB900X", + "15274": "AB900X", + "15275": "AB900X", + "15276": "AB900X", + "15277": "AB900X", + "15278": "AB900X", + "15279": "AB900X", + "15281": "AB900X", + "15282": "AB900X", + "15283": "AB900X", + "15285": "AB900X", + "15286": "AB900X", + "15289": "AB900X", + "15290": "AB900X", + "15295": "AB900X", + "15301": "AB900X", + "15310": "AB900X", + "15311": "AB900X", + "15312": "AB900X", + "15313": "AB900X", + "15314": "AB900X", + "15315": "AB900X", + "15316": "AB900X", + "15317": "AB900X", + "15320": "AB900X", + "15321": "AB900X", + "15322": "AB900X", + "15323": "AB900X", + "15324": "AB900X", + "15325": "AB900X", + "15327": "AB900X", + "15329": "AB900X", + "15330": "AB900X", + "15331": "AB900X", + "15332": "AB900X", + "15333": "AB900X", + "15334": "AB900X", + "15336": "AB900X", + "15337": "AB900X", + "15338": "AB900X", + "15339": "AB900X", + "15340": "AB900X", + "15341": "AB900X", + "15342": "AB900X", + "15344": "AB900X", + "15345": "AB900X", + "15346": "AB900X", + "15347": "AB900X", + "15348": "AB900X", + "15349": "AB900X", + "15350": "AB900X", + "15351": "AB900X", + "15352": "AB900X", + "15353": "AB900X", + "15357": "AB900X", + "15358": "AB900X", + "15359": "AB900X", + "15360": "AB900X", + "15361": "AB900X", + "15362": "AB900X", + "15363": "AB900X", + "15364": "AB900X", + "15365": "AB900X", + "15366": "AB900X", + "15367": "AB900X", + "15368": "AB900X", + "15370": "AB900X", + "15376": "AB900X", + "15377": "AB900X", + "15378": "AB900X", + "15379": "AB900X", + "15380": "AB900X", + "15401": "AB900X", + "15410": "AB900X", + "15411": "AB900X", + "15412": "AB900X", + "15413": "AB900X", + "15415": "AB900X", + "15416": "AB900X", + "15417": "AB900X", + "15419": "AB900X", + "15420": "AB900X", + "15421": "AB900X", + "15422": "AB900X", + "15423": "AB900X", + "15424": "AB900X", + "15425": "AB900X", + "15427": "AB900X", + "15428": "AB900X", + "15429": "AB900X", + "15430": "AB900X", + "15431": "AB900X", + "15432": "AB900X", + "15433": "AB900X", + "15434": "AB900X", + "15435": "AB900X", + "15436": "AB900X", + "15437": "AB900X", + "15438": "AB900X", + "15439": "AB900X", + "15440": "AB900X", + "15442": "AB900X", + "15443": "AB900X", + "15444": "AB900X", + "15445": "AB900X", + "15446": "AB900X", + "15447": "AB900X", + "15448": "AB900X", + "15449": "AB900X", + "15450": "AB900X", + "15451": "AB900X", + "15454": "AB900X", + "15455": "AB900X", + "15456": "AB900X", + "15458": "AB900X", + "15459": "AB900X", + "15460": "AB900X", + "15461": "AB900X", + "15462": "AB900X", + "15463": "AB900X", + "15464": "AB900X", + "15465": "AB900X", + "15466": "AB900X", + "15467": "AB900X", + "15468": "AB900X", + "15469": "AB900X", + "15470": "AB900X", + "15472": "AB900X", + "15473": "AB900X", + "15474": "AB900X", + "15475": "AB900X", + "15476": "AB900X", + "15477": "AB900X", + "15478": "AB900X", + "15479": "AB900X", + "15480": "AB900X", + "15482": "AB900X", + "15483": "AB900X", + "15484": "AB900X", + "15485": "AB900X", + "15486": "AB900X", + "15488": "AB900X", + "15489": "AB900X", + "15490": "AB900X", + "15492": "AB900X", + "15501": "AB900X", + "15502": "AB900X", + "15510": "AB900X", + "15520": "AB900X", + "15521": "AB900X", + "15522": "AB900X", + "15530": "AB900X", + "15531": "AB900X", + "15532": "AB900X", + "15533": "AB900X", + "15534": "AB900X", + "15535": "AB900X", + "15536": "AB892X", + "15537": "AB900X", + "15538": "AB900X", + "15539": "AB900X", + "15540": "AB900X", + "15541": "AB900X", + "15542": "AB900X", + "15544": "AB900X", + "15545": "AB900X", + "15546": "AB900X", + "15547": "AB900X", + "15548": "AB900X", + "15549": "AB900X", + "15550": "AB900X", + "15551": "AB900X", + "15552": "AB900X", + "15553": "AB900X", + "15554": "AB900X", + "15555": "AB900X", + "15557": "AB900X", + "15558": "AB900X", + "15559": "AB900X", + "15560": "AB900X", + "15561": "AB900X", + "15562": "AB900X", + "15563": "AB900X", + "15564": "AB900X", + "15565": "AB900X", + "15601": "AB900X", + "15605": "AB900X", + "15606": "AB900X", + "15610": "AB900X", + "15611": "AB900X", + "15612": "AB900X", + "15613": "AB900X", + "15615": "AB900X", + "15616": "AB900X", + "15617": "AB900X", + "15618": "AB900X", + "15619": "AB900X", + "15620": "AB900X", + "15621": "AB900X", + "15622": "AB900X", + "15623": "AB900X", + "15624": "AB900X", + "15625": "AB900X", + "15626": "AB900X", + "15627": "AB900X", + "15628": "AB900X", + "15629": "AB900X", + "15631": "AB900X", + "15632": "AB900X", + "15633": "AB900X", + "15634": "AB900X", + "15635": "AB900X", + "15636": "AB900X", + "15637": "AB900X", + "15638": "AB900X", + "15639": "AB900X", + "15640": "AB900X", + "15641": "AB900X", + "15642": "AB900X", + "15644": "AB900X", + "15646": "AB900X", + "15647": "AB900X", + "15650": "AB900X", + "15655": "AB900X", + "15656": "AB900X", + "15658": "AB900X", + "15660": "AB900X", + "15661": "AB900X", + "15662": "AB900X", + "15663": "AB900X", + "15664": "AB900X", + "15665": "AB900X", + "15666": "AB900X", + "15668": "AB900X", + "15670": "AB900X", + "15671": "AB900X", + "15672": "AB900X", + "15673": "AB900X", + "15674": "AB900X", + "15675": "AB900X", + "15676": "AB900X", + "15677": "AB900X", + "15678": "AB900X", + "15679": "AB900X", + "15680": "AB900X", + "15681": "AB900X", + "15682": "AB900X", + "15683": "AB900X", + "15684": "AB900X", + "15685": "AB900X", + "15686": "AB900X", + "15687": "AB900X", + "15688": "AB900X", + "15689": "AB900X", + "15690": "AB900X", + "15691": "AB900X", + "15692": "AB900X", + "15693": "AB900X", + "15695": "AB900X", + "15696": "AB900X", + "15697": "AB900X", + "15698": "AB900X", + "15701": "AB900X", + "15705": "AB900X", + "15710": "AB900X", + "15711": "AB900X", + "15712": "AB900X", + "15713": "AB900X", + "15714": "AB900X", + "15715": "AB900X", + "15716": "AB900X", + "15717": "AB900X", + "15720": "AB900X", + "15721": "AB900X", + "15722": "AB900X", + "15723": "AB900X", + "15724": "AB900X", + "15725": "AB900X", + "15727": "AB900X", + "15728": "AB900X", + "15729": "AB900X", + "15730": "AB900X", + "15731": "AB900X", + "15732": "AB900X", + "15733": "AB900X", + "15734": "AB900X", + "15736": "AB900X", + "15737": "AB900X", + "15738": "AB900X", + "15739": "AB900X", + "15740": "AB900X", + "15741": "AB900X", + "15742": "AB900X", + "15744": "AB900X", + "15745": "AB900X", + "15746": "AB900X", + "15747": "AB900X", + "15748": "AB900X", + "15750": "AB900X", + "15752": "AB900X", + "15753": "AB900X", + "15754": "AB900X", + "15756": "AB900X", + "15757": "AB900X", + "15758": "AB900X", + "15759": "AB900X", + "15760": "AB900X", + "15761": "AB900X", + "15762": "AB900X", + "15763": "AB900X", + "15764": "AB900X", + "15765": "AB900X", + "15767": "AB900X", + "15770": "AB900X", + "15771": "AB900X", + "15772": "AB900X", + "15773": "AB900X", + "15774": "AB900X", + "15775": "AB900X", + "15776": "AB900X", + "15777": "AB900X", + "15778": "AB900X", + "15779": "AB900X", + "15780": "AB900X", + "15781": "AB900X", + "15783": "AB900X", + "15784": "AB900X", + "15801": "AB900X", + "15821": "AB900X", + "15822": "AB900X", + "15823": "AB900X", + "15824": "AB900X", + "15825": "AB900X", + "15827": "AB900X", + "15828": "AB900X", + "15829": "AB900X", + "15831": "AB900X", + "15832": "AB900X", + "15834": "AB900X", + "15840": "AB900X", + "15841": "AB900X", + "15845": "AB900X", + "15846": "AB900X", + "15847": "AB900X", + "15848": "AB900X", + "15849": "AB900X", + "15851": "AB900X", + "15853": "AB900X", + "15856": "AB900X", + "15857": "AB900X", + "15860": "AB900X", + "15861": "AB900X", + "15863": "AB900X", + "15864": "AB900X", + "15865": "AB900X", + "15866": "AB900X", + "15868": "AB900X", + "15870": "AB900X", + "15901": "AB900X", + "15902": "AB900X", + "15904": "AB900X", + "15905": "AB900X", + "15906": "AB900X", + "15907": "AB900X", + "15909": "AB900X", + "15915": "AB900X", + "15920": "AB900X", + "15921": "AB900X", + "15922": "AB900X", + "15923": "AB900X", + "15924": "AB900X", + "15925": "AB900X", + "15926": "AB900X", + "15927": "AB900X", + "15928": "AB900X", + "15929": "AB900X", + "15930": "AB900X", + "15931": "AB900X", + "15934": "AB900X", + "15935": "AB900X", + "15936": "AB900X", + "15937": "AB900X", + "15938": "AB900X", + "15940": "AB900X", + "15942": "AB900X", + "15943": "AB900X", + "15944": "AB900X", + "15945": "AB900X", + "15946": "AB900X", + "15948": "AB900X", + "15949": "AB900X", + "15951": "AB900X", + "15952": "AB900X", + "15953": "AB900X", + "15954": "AB900X", + "15955": "AB900X", + "15956": "AB900X", + "15957": "AB900X", + "15958": "AB900X", + "15959": "AB900X", + "15960": "AB900X", + "15961": "AB900X", + "15962": "AB900X", + "15963": "AB900X", + "15989": "AB900X", + "16001": "AB900X", + "16002": "AB900X", + "16003": "AB900X", + "16016": "AB900X", + "16017": "AB900X", + "16018": "AB900X", + "16020": "AB900X", + "16021": "AB900X", + "16022": "AB900X", + "16023": "AB900X", + "16024": "AB900X", + "16025": "AB900X", + "16027": "AB900X", + "16028": "AB900X", + "16029": "AB900X", + "16030": "AB900X", + "16033": "AB900X", + "16034": "AB900X", + "16035": "AB900X", + "16036": "AB900X", + "16037": "AB900X", + "16038": "AB900X", + "16039": "AB900X", + "16040": "AB900X", + "16041": "AB900X", + "16045": "AB900X", + "16046": "AB900X", + "16048": "AB900X", + "16049": "AB900X", + "16050": "AB900X", + "16051": "AB900X", + "16052": "AB900X", + "16053": "AB900X", + "16054": "AB900X", + "16055": "AB900X", + "16056": "AB900X", + "16057": "AB900X", + "16058": "AB900X", + "16059": "AB900X", + "16061": "AB900X", + "16063": "AB900X", + "16066": "AB900X", + "16101": "AB900X", + "16102": "AB900X", + "16103": "AB900X", + "16105": "AB900X", + "16107": "AB900X", + "16108": "AB900X", + "16110": "AB900X", + "16111": "AB900X", + "16112": "AB900X", + "16113": "AB900X", + "16114": "AB900X", + "16115": "AB900X", + "16116": "AB900X", + "16117": "AB900X", + "16120": "AB900X", + "16121": "AB900X", + "16123": "AB900X", + "16124": "AB900X", + "16125": "AB900X", + "16127": "AB900X", + "16130": "AB900X", + "16131": "AB900X", + "16132": "AB900X", + "16133": "AB900X", + "16134": "AB900X", + "16136": "AB900X", + "16137": "AB900X", + "16140": "AB900X", + "16141": "AB900X", + "16142": "AB900X", + "16143": "AB900X", + "16145": "AB900X", + "16146": "AB900X", + "16148": "AB900X", + "16150": "AB900X", + "16151": "AB900X", + "16153": "AB900X", + "16154": "AB900X", + "16155": "AB900X", + "16156": "AB900X", + "16157": "AB900X", + "16159": "AB900X", + "16160": "AB900X", + "16161": "AB900X", + "16172": "AB900X", + "16201": "AB900X", + "16210": "AB900X", + "16211": "AB900X", + "16212": "AB900X", + "16213": "AB900X", + "16214": "AB900X", + "16215": "AB900X", + "16217": "AB900X", + "16218": "AB900X", + "16220": "AB900X", + "16221": "AB900X", + "16222": "AB900X", + "16223": "AB900X", + "16224": "AB900X", + "16225": "AB900X", + "16226": "AB900X", + "16228": "AB900X", + "16229": "AB900X", + "16230": "AB900X", + "16232": "AB900X", + "16233": "AB900X", + "16234": "AB900X", + "16235": "AB900X", + "16236": "AB900X", + "16238": "AB900X", + "16239": "AB900X", + "16240": "AB900X", + "16242": "AB900X", + "16244": "AB900X", + "16245": "AB900X", + "16246": "AB900X", + "16248": "AB900X", + "16249": "AB900X", + "16250": "AB900X", + "16253": "AB900X", + "16254": "AB900X", + "16255": "AB900X", + "16256": "AB900X", + "16257": "AB900X", + "16258": "AB900X", + "16259": "AB900X", + "16260": "AB900X", + "16261": "AB900X", + "16262": "AB900X", + "16263": "AB900X", + "16301": "AB900X", + "16311": "AB900X", + "16312": "AB900X", + "16313": "AB900X", + "16314": "AB900X", + "16316": "AB900X", + "16317": "AB900X", + "16319": "AB900X", + "16321": "AB900X", + "16322": "AB900X", + "16323": "AB900X", + "16326": "AB900X", + "16327": "AB900X", + "16328": "AB900X", + "16329": "AB900X", + "16331": "AB900X", + "16332": "AB900X", + "16333": "AB900X", + "16334": "AB900X", + "16335": "AB900X", + "16340": "AB900X", + "16341": "AB900X", + "16342": "AB900X", + "16343": "AB900X", + "16344": "AB900X", + "16345": "AB900X", + "16346": "AB900X", + "16347": "AB900X", + "16350": "AB900X", + "16351": "AB900X", + "16352": "AB900X", + "16353": "AB900X", + "16354": "AB900X", + "16360": "AB900X", + "16361": "AB900X", + "16362": "AB900X", + "16364": "AB900X", + "16365": "AB900X", + "16366": "AB900X", + "16367": "AB900X", + "16368": "AB900X", + "16369": "AB900X", + "16370": "AB900X", + "16371": "AB900X", + "16372": "AB900X", + "16373": "AB900X", + "16374": "AB900X", + "16375": "AB900X", + "16388": "AB900X", + "16401": "AB900X", + "16402": "AB900X", + "16403": "AB900X", + "16404": "AB900X", + "16405": "AB900X", + "16406": "AB900X", + "16407": "AB900X", + "16410": "AB900X", + "16411": "AB900X", + "16412": "AB900X", + "16413": "AB900X", + "16415": "AB900X", + "16416": "AB900X", + "16417": "AB900X", + "16420": "AB900X", + "16421": "AB900X", + "16422": "AB900X", + "16423": "AB900X", + "16424": "AB900X", + "16426": "AB900X", + "16427": "AB900X", + "16428": "AB900X", + "16430": "AB900X", + "16432": "AB900X", + "16433": "AB900X", + "16434": "AB900X", + "16435": "AB900X", + "16436": "AB900X", + "16438": "AB900X", + "16440": "AB900X", + "16441": "AB900X", + "16442": "AB900X", + "16443": "AB900X", + "16444": "AB900X", + "16475": "AB900X", + "16501": "AB900X", + "16502": "AB900X", + "16503": "AB900X", + "16504": "AB900X", + "16505": "AB900X", + "16506": "AB900X", + "16507": "AB900X", + "16508": "AB900X", + "16509": "AB900X", + "16510": "AB900X", + "16511": "AB900X", + "16512": "AB900X", + "16514": "AB900X", + "16515": "AB900X", + "16522": "AB900X", + "16530": "AB900X", + "16531": "AB900X", + "16532": "AB900X", + "16533": "AB900X", + "16534": "AB900X", + "16538": "AB900X", + "16541": "AB900X", + "16544": "AB900X", + "16546": "AB900X", + "16550": "AB900X", + "16553": "AB900X", + "16554": "AB900X", + "16563": "AB900X", + "16565": "AB900X", + "16601": "AB900X", + "16602": "AB900X", + "16603": "AB900X", + "16611": "AB900X", + "16613": "AB900X", + "16616": "AB900X", + "16617": "AB900X", + "16619": "AB900X", + "16620": "AB900X", + "16621": "AB900X", + "16622": "AB900X", + "16623": "AB900X", + "16624": "AB900X", + "16625": "AB900X", + "16627": "AB900X", + "16629": "AB900X", + "16630": "AB900X", + "16631": "AB900X", + "16633": "AB900X", + "16634": "AB900X", + "16635": "AB900X", + "16636": "AB900X", + "16637": "AB900X", + "16638": "AB900X", + "16639": "AB900X", + "16640": "AB900X", + "16641": "AB900X", + "16644": "AB900X", + "16645": "AB900X", + "16646": "AB900X", + "16647": "AB900X", + "16648": "AB900X", + "16650": "AB900X", + "16651": "AB900X", + "16652": "AB900X", + "16654": "AB900X", + "16655": "AB900X", + "16656": "AB900X", + "16657": "AB900X", + "16659": "AB900X", + "16660": "AB900X", + "16661": "AB900X", + "16662": "AB900X", + "16663": "AB900X", + "16664": "AB900X", + "16665": "AB900X", + "16666": "AB900X", + "16667": "AB900X", + "16668": "AB900X", + "16669": "AB900X", + "16670": "AB900X", + "16671": "AB900X", + "16672": "AB900X", + "16673": "AB900X", + "16674": "AB900X", + "16675": "AB900X", + "16677": "AB900X", + "16678": "AB900X", + "16679": "AB900X", + "16680": "AB900X", + "16681": "AB900X", + "16682": "AB900X", + "16683": "AB900X", + "16684": "AB900X", + "16685": "AB900X", + "16686": "AB900X", + "16689": "AB892X", + "16691": "AB892X", + "16692": "AB900X", + "16693": "AB900X", + "16694": "AB900X", + "16695": "AB900X", + "16698": "AB900X", + "16699": "AB900X", + "16701": "AB900X", + "16720": "AB900X", + "16724": "AB900X", + "16725": "AB900X", + "16726": "AB900X", + "16727": "AB900X", + "16728": "AB900X", + "16729": "AB900X", + "16730": "AB900X", + "16731": "AB900X", + "16732": "AB900X", + "16733": "AB900X", + "16734": "AB900X", + "16735": "AB900X", + "16738": "AB900X", + "16740": "AB900X", + "16743": "AB900X", + "16744": "AB900X", + "16745": "AB900X", + "16746": "AB900X", + "16748": "AB900X", + "16749": "AB900X", + "16750": "AB900X", + "16801": "AB900X", + "16802": "AB900X", + "16803": "AB900X", + "16804": "AB900X", + "16805": "AB900X", + "16820": "AB900X", + "16821": "AB900X", + "16822": "AB890X", + "16823": "AB900X", + "16825": "AB900X", + "16826": "AB890X", + "16827": "AB900X", + "16828": "AB890X", + "16829": "AB900X", + "16830": "AB900X", + "16832": "AB900X", + "16833": "AB900X", + "16834": "AB900X", + "16835": "AB900X", + "16836": "AB900X", + "16837": "AB900X", + "16838": "AB900X", + "16839": "AB900X", + "16840": "AB900X", + "16841": "AB890X", + "16843": "AB900X", + "16844": "AB890X", + "16845": "AB900X", + "16847": "AB900X", + "16848": "AB890X", + "16849": "AB900X", + "16850": "AB900X", + "16851": "AB900X", + "16852": "AB900X", + "16853": "AB890X", + "16854": "AB900X", + "16855": "AB900X", + "16856": "AB900X", + "16858": "AB900X", + "16859": "AB900X", + "16860": "AB900X", + "16861": "AB900X", + "16863": "AB900X", + "16864": "AB900X", + "16865": "AB900X", + "16866": "AB900X", + "16868": "AB900X", + "16870": "AB900X", + "16871": "AB900X", + "16872": "AB890X", + "16873": "AB900X", + "16874": "AB900X", + "16875": "AB900X", + "16876": "AB900X", + "16877": "AB900X", + "16878": "AB900X", + "16879": "AB900X", + "16881": "AB900X", + "16882": "AB900X", + "16901": "AB890X", + "16910": "AB890X", + "16911": "AB890X", + "16912": "AB890X", + "16914": "AB890X", + "16915": "AB900X", + "16917": "AB890X", + "16918": "AB890X", + "16920": "AB890X", + "16921": "AB890X", + "16922": "AB900X", + "16923": "AB900X", + "16925": "AB890X", + "16926": "AB890X", + "16927": "AB890X", + "16928": "AB890X", + "16929": "AB890X", + "16930": "AB890X", + "16932": "AB890X", + "16933": "AB890X", + "16935": "AB890X", + "16936": "AB890X", + "16937": "AB900X", + "16938": "AB890X", + "16939": "AB890X", + "16940": "AB890X", + "16941": "AB900X", + "16942": "AB890X", + "16943": "AB890X", + "16945": "AB890X", + "16946": "AB890X", + "16947": "AB890X", + "16948": "AB890X", + "16950": "AB890X", + "17001": "AB892X", + "17002": "AB892X", + "17003": "AB892X", + "17004": "AB892X", + "17005": "AB892X", + "17006": "AB892X", + "17007": "AB892X", + "17008": "AB892X", + "17009": "AB892X", + "17010": "AB892X", + "17011": "AB892X", + "17012": "AB892X", + "17013": "AB892X", + "17014": "AB892X", + "17015": "AB892X", + "17016": "AB892X", + "17017": "AB892X", + "17018": "AB892X", + "17019": "AB892X", + "17020": "AB892X", + "17021": "AB892X", + "17022": "AB892X", + "17023": "AB892X", + "17024": "AB892X", + "17025": "AB892X", + "17026": "AB892X", + "17027": "AB892X", + "17028": "AB892X", + "17029": "AB892X", + "17030": "AB892X", + "17032": "AB892X", + "17033": "AB892X", + "17034": "AB892X", + "17035": "AB892X", + "17036": "AB892X", + "17037": "AB892X", + "17038": "AB892X", + "17039": "AB892X", + "17040": "AB892X", + "17041": "AB892X", + "17042": "AB892X", + "17043": "AB892X", + "17044": "AB892X", + "17045": "AB890X", + "17046": "AB892X", + "17047": "AB892X", + "17048": "AB892X", + "17049": "AB892X", + "17050": "AB892X", + "17051": "AB892X", + "17052": "AB900X", + "17053": "AB892X", + "17054": "AB892X", + "17055": "AB892X", + "17056": "AB892X", + "17057": "AB892X", + "17058": "AB892X", + "17059": "AB892X", + "17060": "AB900X", + "17061": "AB892X", + "17062": "AB892X", + "17063": "AB892X", + "17064": "AB892X", + "17065": "AB892X", + "17066": "AB892X", + "17067": "AB892X", + "17068": "AB892X", + "17069": "AB892X", + "17070": "AB892X", + "17071": "AB892X", + "17072": "AB892X", + "17073": "AB892X", + "17074": "AB892X", + "17075": "AB892X", + "17076": "AB892X", + "17077": "AB892X", + "17078": "AB892X", + "17080": "AB892X", + "17081": "AB892X", + "17082": "AB892X", + "17083": "AB892X", + "17084": "AB892X", + "17085": "AB892X", + "17086": "AB892X", + "17087": "AB892X", + "17088": "AB892X", + "17089": "AB892X", + "17090": "AB892X", + "17091": "AB892X", + "17093": "AB892X", + "17094": "AB892X", + "17097": "AB892X", + "17098": "AB892X", + "17099": "AB892X", + "17101": "AB892X", + "17102": "AB892X", + "17103": "AB892X", + "17104": "AB892X", + "17105": "AB892X", + "17106": "AB892X", + "17107": "AB892X", + "17108": "AB892X", + "17109": "AB892X", + "17110": "AB892X", + "17111": "AB892X", + "17112": "AB892X", + "17113": "AB892X", + "17120": "AB892X", + "17121": "AB892X", + "17122": "AB892X", + "17123": "AB892X", + "17124": "AB892X", + "17125": "AB892X", + "17126": "AB892X", + "17127": "AB892X", + "17128": "AB892X", + "17129": "AB892X", + "17130": "AB892X", + "17140": "AB892X", + "17177": "AB892X", + "17201": "AB892X", + "17202": "AB892X", + "17210": "AB892X", + "17211": "AB900X", + "17212": "AB892X", + "17213": "AB900X", + "17214": "AB892X", + "17215": "AB892X", + "17217": "AB892X", + "17219": "AB892X", + "17220": "AB892X", + "17221": "AB892X", + "17222": "AB892X", + "17223": "AB892X", + "17224": "AB892X", + "17225": "AB892X", + "17228": "AB892X", + "17229": "AB892X", + "17231": "AB892X", + "17232": "AB892X", + "17233": "AB892X", + "17235": "AB892X", + "17236": "AB892X", + "17237": "AB892X", + "17238": "AB892X", + "17239": "AB900X", + "17240": "AB892X", + "17241": "AB892X", + "17243": "AB900X", + "17244": "AB892X", + "17246": "AB892X", + "17247": "AB892X", + "17249": "AB900X", + "17250": "AB892X", + "17251": "AB892X", + "17252": "AB892X", + "17253": "AB900X", + "17254": "AB892X", + "17255": "AB900X", + "17256": "AB892X", + "17257": "AB892X", + "17260": "AB900X", + "17261": "AB892X", + "17262": "AB892X", + "17263": "AB892X", + "17264": "AB900X", + "17265": "AB892X", + "17266": "AB892X", + "17267": "AB892X", + "17268": "AB892X", + "17270": "AB892X", + "17271": "AB892X", + "17272": "AB892X", + "17301": "AB892X", + "17302": "AB892X", + "17303": "AB892X", + "17304": "AB892X", + "17306": "AB892X", + "17307": "AB892X", + "17309": "AB892X", + "17310": "AB892X", + "17311": "AB892X", + "17312": "AB892X", + "17313": "AB892X", + "17314": "AB892X", + "17315": "AB892X", + "17316": "AB892X", + "17317": "AB892X", + "17318": "AB892X", + "17319": "AB892X", + "17320": "AB892X", + "17321": "AB892X", + "17322": "AB892X", + "17323": "AB892X", + "17324": "AB892X", + "17325": "AB892X", + "17326": "AB892X", + "17327": "AB892X", + "17329": "AB892X", + "17331": "AB892X", + "17332": "AB892X", + "17333": "AB892X", + "17334": "AB892X", + "17337": "AB892X", + "17339": "AB892X", + "17340": "AB892X", + "17342": "AB892X", + "17343": "AB892X", + "17344": "AB892X", + "17345": "AB892X", + "17347": "AB892X", + "17349": "AB892X", + "17350": "AB892X", + "17352": "AB892X", + "17353": "AB892X", + "17354": "AB892X", + "17355": "AB892X", + "17356": "AB892X", + "17358": "AB892X", + "17360": "AB892X", + "17361": "AB892X", + "17362": "AB892X", + "17363": "AB892X", + "17364": "AB892X", + "17365": "AB892X", + "17366": "AB892X", + "17368": "AB892X", + "17370": "AB892X", + "17371": "AB892X", + "17372": "AB892X", + "17375": "AB892X", + "17401": "AB892X", + "17402": "AB892X", + "17403": "AB892X", + "17404": "AB892X", + "17405": "AB892X", + "17406": "AB892X", + "17407": "AB892X", + "17408": "AB892X", + "17415": "AB892X", + "17501": "AB892X", + "17502": "AB892X", + "17503": "AB892X", + "17504": "AB892X", + "17505": "AB892X", + "17506": "AB892X", + "17507": "AB892X", + "17508": "AB892X", + "17509": "AB892X", + "17512": "AB892X", + "17516": "AB892X", + "17517": "AB892X", + "17518": "AB892X", + "17519": "AB892X", + "17520": "AB892X", + "17521": "AB892X", + "17522": "AB892X", + "17527": "AB892X", + "17528": "AB892X", + "17529": "AB892X", + "17532": "AB892X", + "17533": "AB892X", + "17534": "AB892X", + "17535": "AB892X", + "17536": "AB892X", + "17537": "AB892X", + "17538": "AB892X", + "17540": "AB892X", + "17543": "AB892X", + "17545": "AB892X", + "17547": "AB892X", + "17549": "AB892X", + "17550": "AB892X", + "17551": "AB892X", + "17552": "AB892X", + "17554": "AB892X", + "17555": "AB892X", + "17557": "AB892X", + "17560": "AB892X", + "17562": "AB892X", + "17563": "AB892X", + "17564": "AB892X", + "17565": "AB892X", + "17566": "AB892X", + "17567": "AB892X", + "17568": "AB892X", + "17569": "AB892X", + "17570": "AB892X", + "17572": "AB892X", + "17573": "AB892X", + "17575": "AB892X", + "17576": "AB892X", + "17578": "AB892X", + "17579": "AB892X", + "17580": "AB892X", + "17581": "AB892X", + "17582": "AB892X", + "17583": "AB892X", + "17584": "AB892X", + "17585": "AB892X", + "17601": "AB892X", + "17602": "AB892X", + "17603": "AB892X", + "17604": "AB892X", + "17605": "AB892X", + "17606": "AB892X", + "17607": "AB892X", + "17608": "AB892X", + "17611": "AB892X", + "17699": "AB892X", + "17701": "AB890X", + "17702": "AB890X", + "17703": "AB890X", + "17705": "AB890X", + "17720": "AB890X", + "17721": "AB890X", + "17723": "AB890X", + "17724": "AB890X", + "17726": "AB890X", + "17727": "AB890X", + "17728": "AB890X", + "17729": "AB900X", + "17730": "AB890X", + "17731": "AB890X", + "17735": "AB890X", + "17737": "AB890X", + "17738": "AB890X", + "17739": "AB890X", + "17740": "AB890X", + "17742": "AB890X", + "17744": "AB890X", + "17745": "AB890X", + "17747": "AB890X", + "17748": "AB890X", + "17749": "AB890X", + "17750": "AB890X", + "17751": "AB890X", + "17752": "AB890X", + "17754": "AB890X", + "17756": "AB890X", + "17758": "AB890X", + "17760": "AB890X", + "17762": "AB890X", + "17763": "AB890X", + "17764": "AB890X", + "17765": "AB890X", + "17767": "AB890X", + "17768": "AB890X", + "17769": "AB890X", + "17771": "AB890X", + "17772": "AB890X", + "17773": "AB890X", + "17774": "AB890X", + "17776": "AB890X", + "17777": "AB890X", + "17778": "AB890X", + "17779": "AB890X", + "17801": "AB890X", + "17810": "AB890X", + "17812": "AB892X", + "17813": "AB890X", + "17814": "AB890X", + "17815": "AB890X", + "17820": "AB890X", + "17821": "AB890X", + "17822": "AB890X", + "17823": "AB892X", + "17824": "AB890X", + "17827": "AB890X", + "17829": "AB890X", + "17830": "AB892X", + "17831": "AB890X", + "17832": "AB890X", + "17833": "AB890X", + "17834": "AB890X", + "17835": "AB890X", + "17836": "AB890X", + "17837": "AB890X", + "17839": "AB890X", + "17840": "AB890X", + "17841": "AB892X", + "17842": "AB890X", + "17843": "AB890X", + "17844": "AB890X", + "17845": "AB890X", + "17846": "AB890X", + "17847": "AB890X", + "17850": "AB890X", + "17851": "AB890X", + "17853": "AB890X", + "17855": "AB890X", + "17856": "AB890X", + "17857": "AB890X", + "17858": "AB890X", + "17859": "AB890X", + "17860": "AB890X", + "17861": "AB890X", + "17862": "AB890X", + "17864": "AB890X", + "17865": "AB890X", + "17866": "AB890X", + "17867": "AB890X", + "17868": "AB890X", + "17870": "AB890X", + "17872": "AB890X", + "17876": "AB890X", + "17877": "AB890X", + "17878": "AB890X", + "17880": "AB890X", + "17881": "AB890X", + "17882": "AB890X", + "17883": "AB890X", + "17884": "AB890X", + "17885": "AB890X", + "17886": "AB890X", + "17887": "AB890X", + "17888": "AB890X", + "17889": "AB890X", + "17901": "AB890X", + "17920": "AB890X", + "17921": "AB890X", + "17922": "AB890X", + "17923": "AB890X", + "17925": "AB890X", + "17929": "AB890X", + "17930": "AB890X", + "17931": "AB890X", + "17932": "AB890X", + "17933": "AB890X", + "17934": "AB890X", + "17935": "AB890X", + "17936": "AB890X", + "17938": "AB892X", + "17941": "AB892X", + "17942": "AB890X", + "17943": "AB890X", + "17944": "AB890X", + "17945": "AB890X", + "17946": "AB890X", + "17948": "AB890X", + "17949": "AB890X", + "17951": "AB890X", + "17952": "AB890X", + "17953": "AB890X", + "17954": "AB890X", + "17957": "AB892X", + "17959": "AB890X", + "17960": "AB890X", + "17961": "AB890X", + "17963": "AB890X", + "17964": "AB890X", + "17965": "AB890X", + "17966": "AB890X", + "17967": "AB890X", + "17968": "AB892X", + "17970": "AB890X", + "17972": "AB890X", + "17974": "AB890X", + "17976": "AB890X", + "17978": "AB892X", + "17979": "AB890X", + "17980": "AB892X", + "17981": "AB890X", + "17982": "AB890X", + "17983": "AB892X", + "17985": "AB890X", + "18001": "AB890X", + "18002": "AB890X", + "18003": "AB890X", + "18010": "AB890X", + "18011": "AB890X", + "18012": "AB890X", + "18013": "AB890X", + "18014": "AB890X", + "18015": "AB890X", + "18016": "AB890X", + "18017": "AB890X", + "18018": "AB890X", + "18020": "AB890X", + "18025": "AB890X", + "18030": "AB890X", + "18031": "AB890X", + "18032": "AB890X", + "18034": "AB890X", + "18035": "AB890X", + "18036": "AB890X", + "18037": "AB890X", + "18038": "AB890X", + "18039": "AB890X", + "18040": "AB890X", + "18041": "AB890X", + "18042": "AB890X", + "18043": "AB890X", + "18044": "AB890X", + "18045": "AB890X", + "18046": "AB890X", + "18049": "AB890X", + "18050": "AB890X", + "18051": "AB890X", + "18052": "AB890X", + "18053": "AB890X", + "18054": "AB890X", + "18055": "AB890X", + "18056": "AB890X", + "18058": "AB890X", + "18059": "AB890X", + "18060": "AB890X", + "18062": "AB890X", + "18063": "AB890X", + "18064": "AB890X", + "18065": "AB890X", + "18066": "AB890X", + "18067": "AB890X", + "18068": "AB890X", + "18069": "AB890X", + "18070": "AB890X", + "18071": "AB890X", + "18072": "AB890X", + "18073": "AB890X", + "18074": "AB890X", + "18076": "AB890X", + "18077": "AB890X", + "18078": "AB890X", + "18079": "AB890X", + "18080": "AB890X", + "18081": "AB890X", + "18083": "AB890X", + "18084": "AB890X", + "18085": "AB890X", + "18086": "AB890X", + "18087": "AB890X", + "18088": "AB890X", + "18091": "AB890X", + "18092": "AB890X", + "18098": "AB890X", + "18099": "AB890X", + "18101": "AB890X", + "18102": "AB890X", + "18103": "AB890X", + "18104": "AB890X", + "18105": "AB890X", + "18106": "AB890X", + "18109": "AB890X", + "18175": "AB890X", + "18195": "AB890X", + "18201": "AB890X", + "18202": "AB890X", + "18210": "AB890X", + "18211": "AB890X", + "18212": "AB890X", + "18214": "AB890X", + "18216": "AB890X", + "18218": "AB890X", + "18219": "AB890X", + "18220": "AB890X", + "18221": "AB890X", + "18222": "AB890X", + "18223": "AB890X", + "18224": "AB890X", + "18225": "AB890X", + "18229": "AB890X", + "18230": "AB890X", + "18231": "AB890X", + "18232": "AB890X", + "18234": "AB890X", + "18235": "AB890X", + "18237": "AB890X", + "18239": "AB890X", + "18240": "AB890X", + "18241": "AB890X", + "18242": "AB890X", + "18244": "AB890X", + "18245": "AB890X", + "18246": "AB890X", + "18247": "AB890X", + "18248": "AB890X", + "18249": "AB890X", + "18250": "AB890X", + "18251": "AB890X", + "18252": "AB890X", + "18254": "AB890X", + "18255": "AB890X", + "18256": "AB890X", + "18301": "AB890X", + "18302": "AB890X", + "18320": "AB890X", + "18321": "AB890X", + "18322": "AB890X", + "18323": "AB890X", + "18324": "AB890X", + "18325": "AB890X", + "18326": "AB890X", + "18327": "AB890X", + "18328": "AB890X", + "18330": "AB890X", + "18331": "AB890X", + "18332": "AB890X", + "18333": "AB890X", + "18334": "AB890X", + "18335": "AB890X", + "18336": "AB890X", + "18337": "AB890X", + "18340": "AB890X", + "18341": "AB890X", + "18342": "AB890X", + "18343": "AB890X", + "18344": "AB890X", + "18346": "AB890X", + "18347": "AB890X", + "18348": "AB890X", + "18349": "AB890X", + "18350": "AB890X", + "18351": "AB890X", + "18352": "AB890X", + "18353": "AB890X", + "18354": "AB890X", + "18355": "AB890X", + "18356": "AB890X", + "18357": "AB890X", + "18360": "AB890X", + "18370": "AB890X", + "18371": "AB890X", + "18372": "AB890X", + "18373": "AB890X", + "18403": "AB890X", + "18405": "AB890X", + "18407": "AB890X", + "18410": "AB890X", + "18411": "AB890X", + "18413": "AB890X", + "18414": "AB890X", + "18415": "AB890X", + "18416": "AB890X", + "18417": "AB890X", + "18419": "AB890X", + "18420": "AB890X", + "18421": "AB890X", + "18424": "AB890X", + "18425": "AB890X", + "18426": "AB890X", + "18427": "AB890X", + "18428": "AB890X", + "18430": "AB890X", + "18431": "AB890X", + "18433": "AB890X", + "18434": "AB890X", + "18435": "AB890X", + "18436": "AB890X", + "18437": "AB890X", + "18438": "AB890X", + "18439": "AB890X", + "18440": "AB890X", + "18441": "AB890X", + "18443": "AB890X", + "18444": "AB890X", + "18445": "AB890X", + "18446": "AB890X", + "18447": "AB890X", + "18448": "AB890X", + "18449": "AB890X", + "18451": "AB890X", + "18452": "AB890X", + "18453": "AB890X", + "18454": "AB890X", + "18455": "AB890X", + "18456": "AB890X", + "18457": "AB890X", + "18458": "AB890X", + "18459": "AB890X", + "18460": "AB890X", + "18461": "AB890X", + "18462": "AB890X", + "18463": "AB890X", + "18464": "AB890X", + "18465": "AB890X", + "18466": "AB890X", + "18469": "AB890X", + "18470": "AB890X", + "18471": "AB890X", + "18472": "AB890X", + "18473": "AB890X", + "18501": "AB890X", + "18502": "AB890X", + "18503": "AB890X", + "18504": "AB890X", + "18505": "AB890X", + "18507": "AB890X", + "18508": "AB890X", + "18509": "AB890X", + "18510": "AB890X", + "18512": "AB890X", + "18514": "AB890X", + "18515": "AB890X", + "18517": "AB890X", + "18518": "AB890X", + "18519": "AB890X", + "18522": "AB890X", + "18540": "AB890X", + "18577": "AB890X", + "18601": "AB890X", + "18602": "AB890X", + "18603": "AB890X", + "18610": "AB890X", + "18611": "AB890X", + "18612": "AB890X", + "18614": "AB890X", + "18615": "AB890X", + "18616": "AB890X", + "18617": "AB890X", + "18618": "AB890X", + "18619": "AB890X", + "18621": "AB890X", + "18622": "AB890X", + "18623": "AB890X", + "18624": "AB890X", + "18625": "AB890X", + "18626": "AB890X", + "18627": "AB890X", + "18628": "AB890X", + "18629": "AB890X", + "18630": "AB890X", + "18631": "AB890X", + "18632": "AB890X", + "18634": "AB890X", + "18635": "AB890X", + "18636": "AB890X", + "18640": "AB890X", + "18641": "AB890X", + "18642": "AB890X", + "18643": "AB890X", + "18644": "AB890X", + "18651": "AB890X", + "18653": "AB890X", + "18654": "AB890X", + "18655": "AB890X", + "18656": "AB890X", + "18657": "AB890X", + "18660": "AB890X", + "18661": "AB890X", + "18690": "AB890X", + "18701": "AB890X", + "18702": "AB890X", + "18703": "AB890X", + "18704": "AB890X", + "18705": "AB890X", + "18706": "AB890X", + "18707": "AB890X", + "18708": "AB890X", + "18709": "AB890X", + "18710": "AB890X", + "18711": "AB890X", + "18762": "AB890X", + "18764": "AB890X", + "18765": "AB890X", + "18766": "AB890X", + "18767": "AB890X", + "18769": "AB890X", + "18773": "AB890X", + "18801": "AB890X", + "18810": "AB890X", + "18812": "AB890X", + "18813": "AB890X", + "18814": "AB890X", + "18815": "AB890X", + "18816": "AB890X", + "18817": "AB890X", + "18818": "AB890X", + "18820": "AB890X", + "18821": "AB890X", + "18822": "AB890X", + "18823": "AB890X", + "18824": "AB890X", + "18825": "AB890X", + "18826": "AB890X", + "18827": "AB890X", + "18828": "AB890X", + "18829": "AB890X", + "18830": "AB890X", + "18831": "AB890X", + "18832": "AB890X", + "18833": "AB890X", + "18834": "AB890X", + "18837": "AB890X", + "18840": "AB890X", + "18842": "AB890X", + "18843": "AB890X", + "18844": "AB890X", + "18845": "AB890X", + "18846": "AB890X", + "18847": "AB890X", + "18848": "AB890X", + "18850": "AB890X", + "18851": "AB890X", + "18853": "AB890X", + "18854": "AB890X", + "18901": "AB890X", + "18902": "AB890X", + "18910": "AB890X", + "18911": "AB890X", + "18912": "AB890X", + "18913": "AB890X", + "18914": "AB890X", + "18915": "AB890X", + "18916": "AB890X", + "18917": "AB890X", + "18918": "AB890X", + "18920": "AB890X", + "18921": "AB890X", + "18922": "AB890X", + "18923": "AB890X", + "18924": "AB890X", + "18925": "AB890X", + "18926": "AB890X", + "18927": "AB890X", + "18928": "AB890X", + "18929": "AB890X", + "18930": "AB890X", + "18931": "AB890X", + "18932": "AB890X", + "18933": "AB890X", + "18934": "AB890X", + "18935": "AB890X", + "18936": "AB890X", + "18938": "AB890X", + "18940": "AB890X", + "18942": "AB890X", + "18943": "AB890X", + "18944": "AB890X", + "18946": "AB890X", + "18947": "AB890X", + "18949": "AB890X", + "18950": "AB890X", + "18951": "AB890X", + "18953": "AB890X", + "18954": "AB890X", + "18955": "AB890X", + "18956": "AB890X", + "18957": "AB890X", + "18958": "AB890X", + "18960": "AB890X", + "18962": "AB890X", + "18963": "AB890X", + "18964": "AB890X", + "18966": "AB890X", + "18968": "AB890X", + "18969": "AB890X", + "18970": "AB890X", + "18971": "AB890X", + "18972": "AB890X", + "18974": "AB890X", + "18976": "AB890X", + "18977": "AB890X", + "18979": "AB890X", + "18980": "AB890X", + "18981": "AB890X", + "18991": "AB890X", + "19001": "AB890X", + "19002": "AB890X", + "19003": "AB890X", + "19004": "AB890X", + "19006": "AB890X", + "19007": "AB890X", + "19008": "AB890X", + "19009": "AB890X", + "19010": "AB890X", + "19012": "AB890X", + "19013": "AB890X", + "19014": "AB890X", + "19015": "AB890X", + "19016": "AB890X", + "19017": "AB890X", + "19018": "AB890X", + "19019": "AB890X", + "19020": "AB890X", + "19021": "AB890X", + "19022": "AB890X", + "19023": "AB890X", + "19025": "AB890X", + "19026": "AB890X", + "19027": "AB890X", + "19028": "AB890X", + "19029": "AB890X", + "19030": "AB890X", + "19031": "AB890X", + "19032": "AB890X", + "19033": "AB890X", + "19034": "AB890X", + "19035": "AB890X", + "19036": "AB890X", + "19037": "AB890X", + "19038": "AB890X", + "19039": "AB890X", + "19040": "AB890X", + "19041": "AB890X", + "19043": "AB890X", + "19044": "AB890X", + "19046": "AB890X", + "19047": "AB890X", + "19048": "AB890X", + "19049": "AB890X", + "19050": "AB890X", + "19052": "AB890X", + "19053": "AB890X", + "19054": "AB890X", + "19055": "AB890X", + "19056": "AB890X", + "19057": "AB890X", + "19058": "AB890X", + "19061": "AB890X", + "19063": "AB890X", + "19064": "AB890X", + "19065": "AB890X", + "19066": "AB890X", + "19067": "AB890X", + "19070": "AB890X", + "19072": "AB890X", + "19073": "AB890X", + "19074": "AB890X", + "19075": "AB890X", + "19076": "AB890X", + "19078": "AB890X", + "19079": "AB890X", + "19080": "AB890X", + "19081": "AB890X", + "19082": "AB890X", + "19083": "AB890X", + "19085": "AB890X", + "19086": "AB890X", + "19087": "AB890X", + "19088": "AB890X", + "19089": "AB890X", + "19090": "AB890X", + "19091": "AB890X", + "19092": "AB890X", + "19093": "AB890X", + "19094": "AB890X", + "19095": "AB890X", + "19096": "AB890X", + "19098": "AB890X", + "19099": "AB890X", + "19101": "AB890X", + "19102": "AB890X", + "19103": "AB890X", + "19104": "AB890X", + "19105": "AB890X", + "19106": "AB890X", + "19107": "AB890X", + "19108": "AB890X", + "19109": "AB890X", + "19110": "AB890X", + "19111": "AB890X", + "19112": "AB890X", + "19113": "AB890X", + "19114": "AB890X", + "19115": "AB890X", + "19116": "AB890X", + "19118": "AB890X", + "19119": "AB890X", + "19120": "AB890X", + "19121": "AB890X", + "19122": "AB890X", + "19123": "AB890X", + "19124": "AB890X", + "19125": "AB890X", + "19126": "AB890X", + "19127": "AB890X", + "19128": "AB890X", + "19129": "AB890X", + "19130": "AB890X", + "19131": "AB890X", + "19132": "AB890X", + "19133": "AB890X", + "19134": "AB890X", + "19135": "AB890X", + "19136": "AB890X", + "19137": "AB890X", + "19138": "AB890X", + "19139": "AB890X", + "19140": "AB890X", + "19141": "AB890X", + "19142": "AB890X", + "19143": "AB890X", + "19144": "AB890X", + "19145": "AB890X", + "19146": "AB890X", + "19147": "AB890X", + "19148": "AB890X", + "19149": "AB890X", + "19150": "AB890X", + "19151": "AB890X", + "19152": "AB890X", + "19153": "AB890X", + "19154": "AB890X", + "19155": "AB890X", + "19160": "AB890X", + "19161": "AB890X", + "19162": "AB890X", + "19170": "AB890X", + "19171": "AB890X", + "19172": "AB890X", + "19173": "AB890X", + "19175": "AB890X", + "19176": "AB890X", + "19177": "AB890X", + "19178": "AB890X", + "19179": "AB890X", + "19181": "AB890X", + "19182": "AB890X", + "19183": "AB890X", + "19184": "AB890X", + "19185": "AB890X", + "19187": "AB890X", + "19188": "AB890X", + "19191": "AB890X", + "19192": "AB890X", + "19193": "AB890X", + "19194": "AB890X", + "19195": "AB890X", + "19196": "AB890X", + "19197": "AB890X", + "19244": "AB890X", + "19255": "AB890X", + "19301": "AB890X", + "19310": "AB890X", + "19311": "AB890X", + "19312": "AB890X", + "19316": "AB890X", + "19317": "AB890X", + "19318": "AB890X", + "19319": "AB890X", + "19320": "AB890X", + "19330": "AB890X", + "19331": "AB890X", + "19333": "AB890X", + "19335": "AB890X", + "19339": "AB890X", + "19340": "AB890X", + "19341": "AB890X", + "19342": "AB890X", + "19343": "AB890X", + "19344": "AB890X", + "19345": "AB890X", + "19346": "AB890X", + "19347": "AB890X", + "19348": "AB890X", + "19350": "AB890X", + "19351": "AB890X", + "19352": "AB890X", + "19353": "AB890X", + "19354": "AB890X", + "19355": "AB890X", + "19357": "AB890X", + "19358": "AB890X", + "19360": "AB890X", + "19362": "AB890X", + "19363": "AB890X", + "19365": "AB890X", + "19366": "AB890X", + "19367": "AB890X", + "19369": "AB890X", + "19371": "AB890X", + "19372": "AB890X", + "19373": "AB890X", + "19374": "AB890X", + "19375": "AB890X", + "19376": "AB890X", + "19380": "AB890X", + "19381": "AB890X", + "19382": "AB890X", + "19383": "AB890X", + "19390": "AB890X", + "19395": "AB890X", + "19397": "AB890X", + "19398": "AB890X", + "19399": "AB890X", + "19401": "AB890X", + "19403": "AB890X", + "19404": "AB890X", + "19405": "AB890X", + "19406": "AB890X", + "19407": "AB890X", + "19408": "AB890X", + "19409": "AB890X", + "19415": "AB890X", + "19420": "AB890X", + "19421": "AB890X", + "19422": "AB890X", + "19423": "AB890X", + "19424": "AB890X", + "19425": "AB890X", + "19426": "AB890X", + "19428": "AB890X", + "19429": "AB890X", + "19430": "AB890X", + "19432": "AB890X", + "19435": "AB890X", + "19436": "AB890X", + "19437": "AB890X", + "19438": "AB890X", + "19440": "AB890X", + "19441": "AB890X", + "19442": "AB890X", + "19443": "AB890X", + "19444": "AB890X", + "19446": "AB890X", + "19450": "AB890X", + "19451": "AB890X", + "19453": "AB890X", + "19454": "AB890X", + "19455": "AB890X", + "19456": "AB890X", + "19457": "AB890X", + "19460": "AB890X", + "19462": "AB890X", + "19464": "AB890X", + "19465": "AB887X", + "19468": "AB890X", + "19470": "AB890X", + "19472": "AB890X", + "19473": "AB890X", + "19474": "AB890X", + "19475": "AB890X", + "19477": "AB890X", + "19478": "AB890X", + "19479": "AB891X", + "19480": "AB890X", + "19481": "AB890X", + "19482": "AB890X", + "19483": "AB890X", + "19484": "AB890X", + "19485": "AB890X", + "19486": "AB890X", + "19487": "AB890X", + "19488": "AB890X", + "19489": "AB890X", + "19490": "AB890X", + "19492": "AB890X", + "19493": "AB890X", + "19494": "AB890X", + "19495": "AB890X", + "19496": "AB890X", + "19501": "AB892X", + "19503": "AB890X", + "19504": "AB890X", + "19505": "AB890X", + "19506": "AB890X", + "19507": "AB890X", + "19508": "AB890X", + "19510": "AB890X", + "19511": "AB890X", + "19512": "AB890X", + "19516": "AB890X", + "19518": "AB890X", + "19519": "AB890X", + "19520": "AB890X", + "19522": "AB890X", + "19523": "AB890X", + "19525": "AB890X", + "19526": "AB890X", + "19529": "AB890X", + "19530": "AB890X", + "19533": "AB890X", + "19534": "AB890X", + "19535": "AB890X", + "19536": "AB890X", + "19538": "AB890X", + "19539": "AB890X", + "19540": "AB890X", + "19541": "AB890X", + "19542": "AB890X", + "19543": "AB890X", + "19544": "AB890X", + "19545": "AB890X", + "19547": "AB890X", + "19548": "AB890X", + "19549": "AB890X", + "19550": "AB890X", + "19551": "AB890X", + "19554": "AB890X", + "19555": "AB890X", + "19559": "AB890X", + "19560": "AB890X", + "19562": "AB890X", + "19564": "AB890X", + "19565": "AB890X", + "19567": "AB890X", + "19601": "AB890X", + "19602": "AB890X", + "19603": "AB892X", + "19604": "AB890X", + "19605": "AB890X", + "19606": "AB890X", + "19607": "AB890X", + "19608": "AB890X", + "19609": "AB890X", + "19610": "AB890X", + "19611": "AB890X", + "19612": "AB890X", + "19640": "AB890X", + "19701": "AB890X", + "19702": "AB890X", + "19703": "AB890X", + "19706": "AB890X", + "19707": "AB890X", + "19708": "AB890X", + "19709": "AB890X", + "19710": "AB890X", + "19711": "AB890X", + "19712": "AB890X", + "19713": "AB890X", + "19714": "AB890X", + "19715": "AB890X", + "19716": "AB890X", + "19717": "AB890X", + "19718": "AB890X", + "19720": "AB890X", + "19721": "AB890X", + "19725": "AB890X", + "19726": "AB890X", + "19730": "AB890X", + "19731": "AB890X", + "19732": "AB890X", + "19733": "AB890X", + "19734": "AB890X", + "19735": "AB890X", + "19736": "AB890X", + "19801": "AB890X", + "19802": "AB890X", + "19803": "AB890X", + "19804": "AB890X", + "19805": "AB890X", + "19806": "AB890X", + "19807": "AB890X", + "19808": "AB890X", + "19809": "AB890X", + "19810": "AB890X", + "19850": "AB890X", + "19880": "AB890X", + "19884": "AB890X", + "19885": "AB890X", + "19886": "AB890X", + "19887": "AB890X", + "19889": "AB890X", + "19890": "AB890X", + "19891": "AB890X", + "19892": "AB890X", + "19893": "AB890X", + "19894": "AB890X", + "19895": "AB890X", + "19896": "AB890X", + "19897": "AB890X", + "19898": "AB890X", + "19899": "AB890X", + "19901": "AB890X", + "19902": "AB890X", + "19903": "AB890X", + "19904": "AB890X", + "19905": "AB890X", + "19906": "AB890X", + "19930": "AB890X", + "19931": "AB890X", + "19933": "AB890X", + "19934": "AB890X", + "19936": "AB890X", + "19938": "AB890X", + "19939": "AB890X", + "19940": "AB890X", + "19941": "AB890X", + "19943": "AB890X", + "19944": "AB890X", + "19945": "AB890X", + "19946": "AB890X", + "19947": "AB890X", + "19950": "AB890X", + "19951": "AB890X", + "19952": "AB890X", + "19953": "AB890X", + "19954": "AB890X", + "19955": "AB890X", + "19956": "AB890X", + "19958": "AB890X", + "19960": "AB890X", + "19961": "AB890X", + "19962": "AB890X", + "19963": "AB890X", + "19964": "AB890X", + "19966": "AB890X", + "19967": "AB890X", + "19968": "AB890X", + "19969": "AB890X", + "19970": "AB890X", + "19971": "AB890X", + "19973": "AB890X", + "19975": "AB890X", + "19977": "AB890X", + "19979": "AB890X", + "19980": "AB890X", + "20001": "AB892X", + "20002": "AB892X", + "20008": "AB892X", + "20011": "AB892X", + "20100": "AB890X", + "20101": "AB892X", + "20102": "AB892X", + "20103": "AB892X", + "20104": "AB892X", + "20105": "AB892X", + "20106": "AB892X", + "20107": "AB892X", + "20108": "AB892X", + "20109": "AB892X", + "20110": "AB892X", + "20111": "AB892X", + "20112": "AB892X", + "20113": "AB892X", + "20115": "AB892X", + "20116": "AB892X", + "20117": "AB892X", + "20118": "AB892X", + "20119": "AB892X", + "20120": "AB892X", + "20121": "AB892X", + "20122": "AB892X", + "20124": "AB892X", + "20128": "AB892X", + "20129": "AB892X", + "20130": "AB892X", + "20131": "AB892X", + "20132": "AB892X", + "20134": "AB892X", + "20135": "AB892X", + "20136": "AB892X", + "20137": "AB892X", + "20138": "AB892X", + "20139": "AB892X", + "20140": "AB892X", + "20141": "AB892X", + "20142": "AB892X", + "20143": "AB892X", + "20144": "AB892X", + "20146": "AB892X", + "20147": "AB892X", + "20148": "AB892X", + "20149": "AB892X", + "20151": "AB892X", + "20152": "AB892X", + "20153": "AB892X", + "20155": "AB892X", + "20156": "AB892X", + "20158": "AB892X", + "20159": "AB892X", + "20160": "AB892X", + "20163": "AB892X", + "20164": "AB892X", + "20165": "AB892X", + "20166": "AB892X", + "20167": "AB892X", + "20168": "AB892X", + "20169": "AB892X", + "20170": "AB892X", + "20171": "AB892X", + "20172": "AB892X", + "20175": "AB892X", + "20176": "AB892X", + "20177": "AB892X", + "20178": "AB892X", + "20180": "AB892X", + "20181": "AB892X", + "20182": "AB892X", + "20184": "AB892X", + "20185": "AB892X", + "20186": "AB892X", + "20187": "AB892X", + "20188": "AB892X", + "20189": "AB892X", + "20190": "AB892X", + "20191": "AB892X", + "20192": "AB892X", + "20193": "AB892X", + "20194": "AB892X", + "20195": "AB892X", + "20196": "AB892X", + "20197": "AB892X", + "20198": "AB892X", + "20199": "AB892X", + "20559": "AB892X", + "20601": "AB892X", + "20602": "AB892X", + "20603": "AB892X", + "20604": "AB892X", + "20606": "AB892X", + "20607": "AB892X", + "20608": "AB892X", + "20609": "AB892X", + "20610": "AB892X", + "20611": "AB892X", + "20612": "AB892X", + "20613": "AB892X", + "20615": "AB892X", + "20616": "AB892X", + "20617": "AB892X", + "20618": "AB892X", + "20619": "AB892X", + "20620": "AB892X", + "20621": "AB892X", + "20622": "AB892X", + "20623": "AB892X", + "20624": "AB892X", + "20625": "AB892X", + "20626": "AB892X", + "20627": "AB892X", + "20628": "AB892X", + "20629": "AB892X", + "20630": "AB892X", + "20632": "AB892X", + "20634": "AB892X", + "20635": "AB892X", + "20636": "AB892X", + "20637": "AB892X", + "20639": "AB892X", + "20640": "AB892X", + "20643": "AB892X", + "20645": "AB892X", + "20646": "AB892X", + "20650": "AB892X", + "20653": "AB892X", + "20656": "AB892X", + "20657": "AB892X", + "20658": "AB892X", + "20659": "AB892X", + "20660": "AB892X", + "20661": "AB892X", + "20662": "AB892X", + "20664": "AB892X", + "20667": "AB892X", + "20670": "AB892X", + "20674": "AB892X", + "20675": "AB892X", + "20676": "AB892X", + "20677": "AB892X", + "20678": "AB892X", + "20680": "AB892X", + "20682": "AB892X", + "20684": "AB892X", + "20685": "AB892X", + "20686": "AB892X", + "20687": "AB892X", + "20688": "AB892X", + "20689": "AB892X", + "20690": "AB892X", + "20692": "AB892X", + "20693": "AB892X", + "20695": "AB892X", + "20697": "AB892X", + "20701": "AB890X", + "20703": "AB892X", + "20704": "AB892X", + "20705": "AB892X", + "20706": "AB892X", + "20707": "AB892X", + "20708": "AB892X", + "20709": "AB892X", + "20710": "AB892X", + "20711": "AB890X", + "20712": "AB892X", + "20714": "AB892X", + "20715": "AB892X", + "20716": "AB892X", + "20717": "AB892X", + "20718": "AB892X", + "20719": "AB892X", + "20720": "AB892X", + "20721": "AB892X", + "20722": "AB892X", + "20723": "AB890X", + "20724": "AB890X", + "20725": "AB892X", + "20726": "AB892X", + "20731": "AB892X", + "20732": "AB892X", + "20733": "AB890X", + "20735": "AB892X", + "20736": "AB892X", + "20737": "AB892X", + "20738": "AB892X", + "20740": "AB892X", + "20741": "AB892X", + "20742": "AB892X", + "20743": "AB892X", + "20744": "AB892X", + "20745": "AB892X", + "20746": "AB892X", + "20747": "AB892X", + "20748": "AB892X", + "20749": "AB892X", + "20750": "AB892X", + "20751": "AB890X", + "20752": "AB892X", + "20753": "AB892X", + "20754": "AB892X", + "20755": "AB890X", + "20757": "AB892X", + "20758": "AB890X", + "20759": "AB890X", + "20762": "AB892X", + "20763": "AB890X", + "20764": "AB890X", + "20765": "AB890X", + "20768": "AB892X", + "20769": "AB892X", + "20770": "AB892X", + "20771": "AB892X", + "20772": "AB892X", + "20773": "AB892X", + "20774": "AB892X", + "20775": "AB892X", + "20776": "AB890X", + "20777": "AB890X", + "20778": "AB890X", + "20779": "AB890X", + "20781": "AB892X", + "20782": "AB892X", + "20783": "AB892X", + "20784": "AB892X", + "20785": "AB892X", + "20787": "AB892X", + "20788": "AB892X", + "20790": "AB892X", + "20791": "AB892X", + "20792": "AB892X", + "20794": "AB890X", + "20797": "AB892X", + "20799": "AB892X", + "20810": "AB892X", + "20811": "AB892X", + "20812": "AB892X", + "20813": "AB892X", + "20814": "AB892X", + "20815": "AB892X", + "20816": "AB892X", + "20817": "AB892X", + "20818": "AB892X", + "20824": "AB892X", + "20825": "AB892X", + "20827": "AB892X", + "20830": "AB892X", + "20832": "AB892X", + "20833": "AB892X", + "20837": "AB892X", + "20838": "AB892X", + "20839": "AB892X", + "20841": "AB892X", + "20842": "AB892X", + "20847": "AB892X", + "20848": "AB892X", + "20849": "AB892X", + "20850": "AB892X", + "20851": "AB892X", + "20852": "AB892X", + "20853": "AB892X", + "20854": "AB892X", + "20855": "AB892X", + "20857": "AB892X", + "20859": "AB892X", + "20860": "AB892X", + "20861": "AB892X", + "20862": "AB892X", + "20866": "AB892X", + "20868": "AB892X", + "20871": "AB892X", + "20872": "AB892X", + "20874": "AB892X", + "20875": "AB892X", + "20876": "AB892X", + "20877": "AB892X", + "20878": "AB892X", + "20879": "AB892X", + "20880": "AB892X", + "20882": "AB892X", + "20883": "AB892X", + "20884": "AB892X", + "20885": "AB892X", + "20886": "AB892X", + "20889": "AB892X", + "20891": "AB892X", + "20892": "AB892X", + "20894": "AB892X", + "20895": "AB892X", + "20896": "AB892X", + "20897": "AB892X", + "20898": "AB892X", + "20899": "AB892X", + "20901": "AB892X", + "20902": "AB892X", + "20903": "AB892X", + "20904": "AB892X", + "20905": "AB892X", + "20906": "AB892X", + "20907": "AB892X", + "20908": "AB892X", + "20910": "AB892X", + "20911": "AB892X", + "20912": "AB892X", + "20913": "AB892X", + "20914": "AB892X", + "20915": "AB892X", + "20916": "AB892X", + "20918": "AB892X", + "20993": "AB892X", + "20997": "AB892X", + "21001": "AB890X", + "21005": "AB890X", + "21009": "AB890X", + "21010": "AB890X", + "21012": "AB890X", + "21013": "AB890X", + "21014": "AB890X", + "21015": "AB890X", + "21017": "AB890X", + "21018": "AB890X", + "21020": "AB890X", + "21022": "AB890X", + "21023": "AB890X", + "21027": "AB890X", + "21028": "AB890X", + "21029": "AB890X", + "21030": "AB890X", + "21031": "AB890X", + "21032": "AB890X", + "21034": "AB890X", + "21035": "AB890X", + "21036": "AB890X", + "21037": "AB890X", + "21040": "AB890X", + "21041": "AB890X", + "21042": "AB890X", + "21043": "AB890X", + "21044": "AB890X", + "21045": "AB890X", + "21046": "AB890X", + "21047": "AB890X", + "21048": "AB890X", + "21050": "AB890X", + "21051": "AB890X", + "21052": "AB890X", + "21053": "AB890X", + "21054": "AB890X", + "21056": "AB890X", + "21057": "AB890X", + "21060": "AB890X", + "21061": "AB890X", + "21062": "AB890X", + "21065": "AB890X", + "21071": "AB890X", + "21074": "AB890X", + "21075": "AB890X", + "21076": "AB890X", + "21077": "AB890X", + "21078": "AB890X", + "21082": "AB890X", + "21084": "AB890X", + "21085": "AB890X", + "21087": "AB890X", + "21088": "AB890X", + "21090": "AB890X", + "21092": "AB890X", + "21093": "AB890X", + "21094": "AB890X", + "21098": "AB890X", + "21102": "AB890X", + "21104": "AB890X", + "21105": "AB890X", + "21106": "AB890X", + "21108": "AB890X", + "21111": "AB890X", + "21113": "AB890X", + "21114": "AB890X", + "21117": "AB890X", + "21120": "AB890X", + "21122": "AB890X", + "21123": "AB890X", + "21128": "AB890X", + "21130": "AB890X", + "21131": "AB890X", + "21132": "AB890X", + "21133": "AB890X", + "21136": "AB890X", + "21139": "AB890X", + "21140": "AB890X", + "21144": "AB890X", + "21146": "AB890X", + "21150": "AB890X", + "21152": "AB890X", + "21153": "AB890X", + "21154": "AB890X", + "21155": "AB890X", + "21156": "AB890X", + "21157": "AB890X", + "21158": "AB890X", + "21160": "AB890X", + "21161": "AB890X", + "21162": "AB890X", + "21163": "AB890X", + "21200": "AB890X", + "21201": "AB890X", + "21202": "AB890X", + "21203": "AB890X", + "21204": "AB890X", + "21205": "AB890X", + "21206": "AB890X", + "21207": "AB890X", + "21208": "AB890X", + "21209": "AB890X", + "21210": "AB890X", + "21211": "AB890X", + "21212": "AB890X", + "21213": "AB890X", + "21214": "AB890X", + "21215": "AB890X", + "21216": "AB890X", + "21217": "AB890X", + "21218": "AB890X", + "21219": "AB890X", + "21220": "AB890X", + "21221": "AB890X", + "21222": "AB890X", + "21223": "AB890X", + "21224": "AB890X", + "21225": "AB890X", + "21226": "AB890X", + "21227": "AB890X", + "21228": "AB890X", + "21229": "AB890X", + "21230": "AB890X", + "21231": "AB890X", + "21233": "AB890X", + "21234": "AB890X", + "21235": "AB890X", + "21236": "AB890X", + "21237": "AB890X", + "21239": "AB890X", + "21240": "AB890X", + "21241": "AB890X", + "21244": "AB890X", + "21250": "AB890X", + "21251": "AB890X", + "21252": "AB890X", + "21263": "AB890X", + "21264": "AB890X", + "21265": "AB890X", + "21268": "AB890X", + "21270": "AB890X", + "21273": "AB890X", + "21274": "AB890X", + "21275": "AB890X", + "21278": "AB890X", + "21279": "AB890X", + "21280": "AB890X", + "21281": "AB890X", + "21282": "AB890X", + "21283": "AB890X", + "21284": "AB890X", + "21285": "AB890X", + "21286": "AB890X", + "21287": "AB890X", + "21288": "AB890X", + "21289": "AB890X", + "21290": "AB890X", + "21297": "AB890X", + "21298": "AB890X", + "21400": "AB890X", + "21401": "AB890X", + "21402": "AB890X", + "21403": "AB890X", + "21404": "AB890X", + "21405": "AB890X", + "21409": "AB890X", + "21411": "AB890X", + "21412": "AB890X", + "21501": "AB892X", + "21502": "AB892X", + "21503": "AB892X", + "21504": "AB892X", + "21505": "AB892X", + "21520": "AB900X", + "21521": "AB892X", + "21522": "AB900X", + "21523": "AB900X", + "21524": "AB892X", + "21528": "AB892X", + "21529": "AB892X", + "21530": "AB892X", + "21531": "AB900X", + "21532": "AB892X", + "21536": "AB900X", + "21538": "AB900X", + "21539": "AB892X", + "21540": "AB892X", + "21541": "AB900X", + "21542": "AB892X", + "21543": "AB892X", + "21545": "AB892X", + "21550": "AB900X", + "21555": "AB892X", + "21556": "AB892X", + "21557": "AB892X", + "21560": "AB892X", + "21561": "AB900X", + "21562": "AB892X", + "21601": "AB890X", + "21606": "AB890X", + "21607": "AB890X", + "21609": "AB890X", + "21610": "AB890X", + "21612": "AB890X", + "21613": "AB890X", + "21617": "AB890X", + "21619": "AB890X", + "21620": "AB890X", + "21622": "AB890X", + "21623": "AB890X", + "21624": "AB890X", + "21625": "AB890X", + "21626": "AB890X", + "21627": "AB890X", + "21628": "AB890X", + "21629": "AB890X", + "21631": "AB890X", + "21632": "AB890X", + "21634": "AB890X", + "21635": "AB890X", + "21636": "AB890X", + "21637": "AB890X", + "21638": "AB890X", + "21639": "AB890X", + "21640": "AB890X", + "21641": "AB890X", + "21643": "AB890X", + "21644": "AB890X", + "21645": "AB890X", + "21647": "AB890X", + "21648": "AB890X", + "21649": "AB890X", + "21650": "AB890X", + "21651": "AB890X", + "21652": "AB890X", + "21653": "AB890X", + "21654": "AB890X", + "21655": "AB890X", + "21656": "AB890X", + "21657": "AB890X", + "21658": "AB890X", + "21659": "AB890X", + "21660": "AB890X", + "21661": "AB890X", + "21662": "AB890X", + "21663": "AB890X", + "21664": "AB890X", + "21665": "AB890X", + "21666": "AB890X", + "21667": "AB890X", + "21668": "AB890X", + "21669": "AB890X", + "21670": "AB890X", + "21671": "AB890X", + "21672": "AB890X", + "21673": "AB890X", + "21675": "AB890X", + "21676": "AB890X", + "21677": "AB890X", + "21678": "AB890X", + "21679": "AB890X", + "21681": "AB890X", + "21682": "AB890X", + "21683": "AB890X", + "21684": "AB890X", + "21685": "AB890X", + "21686": "AB890X", + "21687": "AB890X", + "21688": "AB890X", + "21690": "AB890X", + "21701": "AB892X", + "21702": "AB892X", + "21703": "AB892X", + "21704": "AB892X", + "21705": "AB892X", + "21709": "AB892X", + "21710": "AB892X", + "21711": "AB892X", + "21713": "AB892X", + "21714": "AB892X", + "21715": "AB892X", + "21716": "AB892X", + "21717": "AB892X", + "21718": "AB892X", + "21719": "AB892X", + "21720": "AB892X", + "21721": "AB892X", + "21722": "AB892X", + "21723": "AB890X", + "21727": "AB892X", + "21733": "AB892X", + "21734": "AB892X", + "21737": "AB890X", + "21738": "AB890X", + "21740": "AB892X", + "21741": "AB892X", + "21742": "AB892X", + "21746": "AB892X", + "21747": "AB892X", + "21748": "AB892X", + "21749": "AB892X", + "21750": "AB892X", + "21754": "AB892X", + "21755": "AB892X", + "21756": "AB892X", + "21757": "AB890X", + "21758": "AB892X", + "21759": "AB892X", + "21762": "AB892X", + "21765": "AB890X", + "21766": "AB892X", + "21767": "AB892X", + "21769": "AB892X", + "21770": "AB892X", + "21771": "AB892X", + "21773": "AB892X", + "21774": "AB892X", + "21775": "AB892X", + "21776": "AB890X", + "21777": "AB892X", + "21778": "AB892X", + "21779": "AB892X", + "21780": "AB892X", + "21781": "AB892X", + "21782": "AB892X", + "21783": "AB892X", + "21784": "AB890X", + "21787": "AB890X", + "21788": "AB892X", + "21790": "AB892X", + "21791": "AB890X", + "21792": "AB892X", + "21793": "AB892X", + "21794": "AB890X", + "21795": "AB892X", + "21797": "AB890X", + "21798": "AB892X", + "21801": "AB890X", + "21802": "AB890X", + "21803": "AB890X", + "21804": "AB890X", + "21810": "AB890X", + "21811": "AB890X", + "21813": "AB890X", + "21814": "AB890X", + "21817": "AB890X", + "21821": "AB890X", + "21822": "AB890X", + "21824": "AB890X", + "21826": "AB890X", + "21829": "AB890X", + "21830": "AB890X", + "21835": "AB890X", + "21836": "AB890X", + "21837": "AB890X", + "21838": "AB890X", + "21840": "AB890X", + "21841": "AB890X", + "21842": "AB890X", + "21843": "AB890X", + "21849": "AB890X", + "21850": "AB890X", + "21851": "AB890X", + "21852": "AB890X", + "21853": "AB890X", + "21856": "AB890X", + "21857": "AB890X", + "21861": "AB890X", + "21862": "AB890X", + "21863": "AB890X", + "21864": "AB890X", + "21865": "AB890X", + "21866": "AB890X", + "21867": "AB890X", + "21869": "AB890X", + "21871": "AB890X", + "21872": "AB890X", + "21874": "AB890X", + "21875": "AB890X", + "21890": "AB890X", + "21901": "AB890X", + "21902": "AB890X", + "21903": "AB890X", + "21904": "AB890X", + "21911": "AB890X", + "21912": "AB890X", + "21913": "AB890X", + "21914": "AB890X", + "21915": "AB890X", + "21916": "AB890X", + "21917": "AB890X", + "21918": "AB890X", + "21919": "AB890X", + "21920": "AB890X", + "21921": "AB890X", + "21922": "AB890X", + "21930": "AB890X", + "22003": "AB892X", + "22009": "AB892X", + "22015": "AB892X", + "22021": "AB887X", + "22025": "AB892X", + "22026": "AB892X", + "22027": "AB892X", + "22030": "AB892X", + "22031": "AB892X", + "22032": "AB892X", + "22033": "AB892X", + "22034": "AB892X", + "22035": "AB892X", + "22036": "AB892X", + "22037": "AB892X", + "22038": "AB892X", + "22039": "AB892X", + "22040": "AB892X", + "22041": "AB892X", + "22042": "AB892X", + "22043": "AB889X", + "22044": "AB892X", + "22046": "AB892X", + "22047": "AB892X", + "22060": "AB892X", + "22066": "AB892X", + "22067": "AB892X", + "22079": "AB892X", + "22081": "AB892X", + "22082": "AB892X", + "22092": "AB892X", + "22093": "AB892X", + "22095": "AB892X", + "22096": "AB892X", + "22101": "AB892X", + "22102": "AB892X", + "22103": "AB892X", + "22106": "AB892X", + "22107": "AB892X", + "22108": "AB892X", + "22109": "AB892X", + "22116": "AB892X", + "22118": "AB892X", + "22119": "AB892X", + "22120": "AB892X", + "22121": "AB892X", + "22122": "AB892X", + "22124": "AB892X", + "22125": "AB892X", + "22134": "AB892X", + "22135": "AB892X", + "22150": "AB892X", + "22151": "AB892X", + "22152": "AB892X", + "22153": "AB892X", + "22156": "AB892X", + "22158": "AB892X", + "22159": "AB892X", + "22160": "AB892X", + "22161": "AB892X", + "22172": "AB892X", + "22180": "AB890X", + "22181": "AB892X", + "22182": "AB892X", + "22183": "AB892X", + "22184": "AB892X", + "22185": "AB892X", + "22191": "AB892X", + "22192": "AB892X", + "22193": "AB892X", + "22194": "AB892X", + "22195": "AB892X", + "22199": "AB892X", + "22200": "AB890X", + "22201": "AB892X", + "22202": "AB892X", + "22203": "AB892X", + "22204": "AB892X", + "22205": "AB892X", + "22206": "AB892X", + "22207": "AB892X", + "22209": "AB892X", + "22210": "AB892X", + "22211": "AB892X", + "22212": "AB892X", + "22213": "AB892X", + "22214": "AB892X", + "22215": "AB892X", + "22216": "AB892X", + "22217": "AB892X", + "22218": "AB892X", + "22219": "AB892X", + "22222": "AB892X", + "22223": "AB892X", + "22225": "AB892X", + "22226": "AB892X", + "22227": "AB892X", + "22229": "AB892X", + "22230": "AB892X", + "22234": "AB892X", + "22240": "AB892X", + "22241": "AB892X", + "22242": "AB892X", + "22243": "AB892X", + "22244": "AB892X", + "22245": "AB892X", + "22246": "AB892X", + "22301": "AB892X", + "22302": "AB892X", + "22303": "AB892X", + "22304": "AB892X", + "22305": "AB892X", + "22306": "AB892X", + "22307": "AB892X", + "22308": "AB892X", + "22309": "AB892X", + "22310": "AB892X", + "22311": "AB892X", + "22312": "AB892X", + "22313": "AB892X", + "22314": "AB892X", + "22315": "AB892X", + "22320": "AB892X", + "22321": "AB892X", + "22331": "AB892X", + "22332": "AB892X", + "22333": "AB892X", + "22334": "AB892X", + "22336": "AB892X", + "22401": "AB892X", + "22402": "AB892X", + "22403": "AB892X", + "22404": "AB892X", + "22405": "AB892X", + "22406": "AB892X", + "22407": "AB892X", + "22408": "AB892X", + "22412": "AB892X", + "22427": "AB892X", + "22428": "AB892X", + "22430": "AB892X", + "22432": "AB892X", + "22433": "AB892X", + "22435": "AB892X", + "22436": "AB892X", + "22437": "AB892X", + "22438": "AB892X", + "22442": "AB892X", + "22443": "AB892X", + "22446": "AB892X", + "22448": "AB892X", + "22451": "AB892X", + "22454": "AB892X", + "22456": "AB892X", + "22460": "AB892X", + "22463": "AB892X", + "22469": "AB892X", + "22471": "AB892X", + "22472": "AB892X", + "22473": "AB892X", + "22476": "AB892X", + "22480": "AB892X", + "22481": "AB892X", + "22482": "AB892X", + "22485": "AB892X", + "22488": "AB892X", + "22501": "AB892X", + "22503": "AB892X", + "22504": "AB892X", + "22507": "AB892X", + "22508": "AB892X", + "22509": "AB892X", + "22511": "AB892X", + "22513": "AB892X", + "22514": "AB892X", + "22517": "AB892X", + "22520": "AB892X", + "22523": "AB892X", + "22524": "AB892X", + "22526": "AB892X", + "22528": "AB892X", + "22529": "AB892X", + "22530": "AB892X", + "22534": "AB892X", + "22535": "AB892X", + "22538": "AB892X", + "22539": "AB892X", + "22542": "AB892X", + "22544": "AB892X", + "22545": "AB892X", + "22546": "AB892X", + "22547": "AB892X", + "22548": "AB892X", + "22551": "AB892X", + "22552": "AB892X", + "22553": "AB892X", + "22554": "AB892X", + "22555": "AB892X", + "22556": "AB892X", + "22558": "AB892X", + "22560": "AB892X", + "22565": "AB892X", + "22567": "AB892X", + "22570": "AB892X", + "22572": "AB892X", + "22576": "AB892X", + "22577": "AB892X", + "22578": "AB892X", + "22579": "AB892X", + "22580": "AB892X", + "22581": "AB892X", + "22601": "AB892X", + "22602": "AB892X", + "22603": "AB892X", + "22604": "AB892X", + "22610": "AB892X", + "22611": "AB892X", + "22620": "AB892X", + "22622": "AB892X", + "22623": "AB892X", + "22624": "AB892X", + "22625": "AB892X", + "22626": "AB892X", + "22627": "AB892X", + "22630": "AB892X", + "22637": "AB892X", + "22638": "AB892X", + "22639": "AB892X", + "22640": "AB892X", + "22641": "AB892X", + "22642": "AB892X", + "22643": "AB892X", + "22644": "AB892X", + "22645": "AB892X", + "22646": "AB892X", + "22649": "AB892X", + "22650": "AB892X", + "22652": "AB892X", + "22654": "AB892X", + "22655": "AB892X", + "22656": "AB892X", + "22657": "AB892X", + "22660": "AB892X", + "22663": "AB892X", + "22664": "AB892X", + "22701": "AB892X", + "22709": "AB892X", + "22711": "AB892X", + "22712": "AB892X", + "22713": "AB892X", + "22714": "AB892X", + "22715": "AB892X", + "22716": "AB892X", + "22718": "AB892X", + "22719": "AB892X", + "22720": "AB892X", + "22721": "AB892X", + "22722": "AB892X", + "22723": "AB892X", + "22724": "AB892X", + "22725": "AB892X", + "22726": "AB892X", + "22727": "AB892X", + "22728": "AB892X", + "22729": "AB892X", + "22730": "AB892X", + "22731": "AB892X", + "22732": "AB892X", + "22733": "AB892X", + "22734": "AB892X", + "22735": "AB892X", + "22736": "AB892X", + "22737": "AB892X", + "22738": "AB892X", + "22739": "AB892X", + "22740": "AB892X", + "22741": "AB892X", + "22742": "AB892X", + "22743": "AB892X", + "22746": "AB892X", + "22747": "AB892X", + "22748": "AB892X", + "22749": "AB892X", + "22800": "AB890X", + "22801": "AB892X", + "22802": "AB892X", + "22803": "AB892X", + "22807": "AB892X", + "22810": "AB892X", + "22811": "AB892X", + "22812": "AB892X", + "22815": "AB892X", + "22820": "AB892X", + "22821": "AB892X", + "22824": "AB892X", + "22827": "AB892X", + "22830": "AB892X", + "22831": "AB892X", + "22832": "AB892X", + "22833": "AB892X", + "22834": "AB892X", + "22835": "AB892X", + "22840": "AB892X", + "22841": "AB892X", + "22842": "AB892X", + "22843": "AB892X", + "22844": "AB892X", + "22845": "AB892X", + "22846": "AB892X", + "22847": "AB892X", + "22848": "AB892X", + "22849": "AB892X", + "22850": "AB892X", + "22851": "AB892X", + "22853": "AB892X", + "22901": "AB892X", + "22902": "AB892X", + "22903": "AB892X", + "22904": "AB892X", + "22905": "AB892X", + "22906": "AB892X", + "22907": "AB892X", + "22908": "AB892X", + "22909": "AB892X", + "22910": "AB892X", + "22911": "AB892X", + "22920": "AB892X", + "22922": "AB892X", + "22923": "AB892X", + "22924": "AB892X", + "22931": "AB892X", + "22932": "AB892X", + "22935": "AB892X", + "22936": "AB892X", + "22937": "AB892X", + "22938": "AB892X", + "22939": "AB892X", + "22940": "AB892X", + "22942": "AB892X", + "22943": "AB892X", + "22945": "AB892X", + "22946": "AB892X", + "22947": "AB892X", + "22948": "AB892X", + "22949": "AB892X", + "22952": "AB892X", + "22957": "AB892X", + "22958": "AB892X", + "22959": "AB892X", + "22960": "AB892X", + "22963": "AB892X", + "22964": "AB892X", + "22965": "AB892X", + "22967": "AB892X", + "22968": "AB892X", + "22969": "AB892X", + "22971": "AB892X", + "22972": "AB892X", + "22973": "AB892X", + "22974": "AB892X", + "22976": "AB892X", + "22980": "AB892X", + "22987": "AB892X", + "22989": "AB892X", + "23001": "AB892X", + "23002": "AB892X", + "23003": "AB892X", + "23004": "AB892X", + "23005": "AB892X", + "23009": "AB892X", + "23011": "AB892X", + "23014": "AB892X", + "23015": "AB892X", + "23018": "AB892X", + "23021": "AB892X", + "23022": "AB892X", + "23023": "AB892X", + "23024": "AB892X", + "23025": "AB892X", + "23027": "AB892X", + "23030": "AB892X", + "23031": "AB892X", + "23032": "AB892X", + "23035": "AB892X", + "23038": "AB892X", + "23039": "AB892X", + "23040": "AB892X", + "23043": "AB892X", + "23045": "AB892X", + "23047": "AB892X", + "23050": "AB892X", + "23055": "AB892X", + "23056": "AB892X", + "23058": "AB892X", + "23059": "AB892X", + "23060": "AB892X", + "23061": "AB892X", + "23062": "AB892X", + "23063": "AB892X", + "23064": "AB892X", + "23065": "AB892X", + "23066": "AB892X", + "23067": "AB892X", + "23068": "AB892X", + "23069": "AB892X", + "23070": "AB892X", + "23071": "AB892X", + "23072": "AB892X", + "23075": "AB892X", + "23076": "AB892X", + "23079": "AB892X", + "23081": "AB892X", + "23083": "AB892X", + "23084": "AB892X", + "23085": "AB892X", + "23086": "AB892X", + "23089": "AB892X", + "23090": "AB892X", + "23091": "AB892X", + "23092": "AB892X", + "23093": "AB892X", + "23101": "AB892X", + "23102": "AB892X", + "23103": "AB892X", + "23105": "AB892X", + "23106": "AB892X", + "23107": "AB892X", + "23108": "AB892X", + "23109": "AB892X", + "23110": "AB892X", + "23111": "AB892X", + "23112": "AB892X", + "23113": "AB892X", + "23114": "AB892X", + "23115": "AB892X", + "23116": "AB892X", + "23117": "AB892X", + "23119": "AB892X", + "23120": "AB892X", + "23123": "AB892X", + "23124": "AB892X", + "23125": "AB892X", + "23126": "AB892X", + "23127": "AB892X", + "23128": "AB892X", + "23129": "AB892X", + "23130": "AB892X", + "23131": "AB892X", + "23138": "AB892X", + "23139": "AB892X", + "23140": "AB892X", + "23141": "AB892X", + "23146": "AB892X", + "23147": "AB892X", + "23148": "AB892X", + "23149": "AB892X", + "23150": "AB892X", + "23153": "AB892X", + "23154": "AB892X", + "23155": "AB892X", + "23156": "AB892X", + "23160": "AB892X", + "23161": "AB892X", + "23162": "AB892X", + "23163": "AB892X", + "23168": "AB892X", + "23169": "AB892X", + "23170": "AB892X", + "23173": "AB892X", + "23175": "AB892X", + "23176": "AB892X", + "23177": "AB892X", + "23178": "AB892X", + "23180": "AB892X", + "23181": "AB892X", + "23183": "AB892X", + "23184": "AB892X", + "23185": "AB892X", + "23186": "AB892X", + "23187": "AB892X", + "23188": "AB892X", + "23190": "AB892X", + "23192": "AB892X", + "23218": "AB892X", + "23219": "AB892X", + "23220": "AB892X", + "23221": "AB892X", + "23222": "AB892X", + "23223": "AB892X", + "23224": "AB892X", + "23225": "AB892X", + "23226": "AB892X", + "23227": "AB892X", + "23228": "AB892X", + "23229": "AB892X", + "23230": "AB892X", + "23231": "AB892X", + "23232": "AB892X", + "23233": "AB892X", + "23234": "AB892X", + "23235": "AB892X", + "23236": "AB892X", + "23237": "AB892X", + "23238": "AB892X", + "23240": "AB892X", + "23241": "AB892X", + "23242": "AB892X", + "23249": "AB892X", + "23250": "AB892X", + "23255": "AB892X", + "23260": "AB892X", + "23261": "AB892X", + "23269": "AB892X", + "23273": "AB892X", + "23274": "AB892X", + "23276": "AB892X", + "23278": "AB892X", + "23279": "AB892X", + "23282": "AB892X", + "23284": "AB892X", + "23285": "AB892X", + "23286": "AB892X", + "23288": "AB892X", + "23289": "AB892X", + "23290": "AB892X", + "23291": "AB892X", + "23292": "AB892X", + "23293": "AB892X", + "23294": "AB892X", + "23295": "AB892X", + "23297": "AB892X", + "23298": "AB892X", + "23301": "AB892X", + "23302": "AB892X", + "23303": "AB892X", + "23304": "AB892X", + "23306": "AB892X", + "23307": "AB892X", + "23308": "AB892X", + "23310": "AB892X", + "23313": "AB892X", + "23314": "AB892X", + "23315": "AB892X", + "23316": "AB892X", + "23320": "AB892X", + "23321": "AB892X", + "23322": "AB892X", + "23323": "AB892X", + "23324": "AB892X", + "23325": "AB892X", + "23326": "AB892X", + "23327": "AB892X", + "23328": "AB892X", + "23336": "AB892X", + "23337": "AB892X", + "23341": "AB892X", + "23345": "AB892X", + "23347": "AB892X", + "23350": "AB892X", + "23354": "AB892X", + "23356": "AB892X", + "23357": "AB892X", + "23358": "AB892X", + "23359": "AB892X", + "23389": "AB892X", + "23395": "AB892X", + "23396": "AB892X", + "23397": "AB892X", + "23398": "AB892X", + "23399": "AB892X", + "23401": "AB892X", + "23404": "AB892X", + "23405": "AB892X", + "23407": "AB892X", + "23408": "AB892X", + "23409": "AB892X", + "23410": "AB892X", + "23412": "AB892X", + "23413": "AB892X", + "23414": "AB892X", + "23415": "AB892X", + "23416": "AB892X", + "23417": "AB892X", + "23418": "AB892X", + "23419": "AB892X", + "23420": "AB892X", + "23421": "AB892X", + "23422": "AB892X", + "23423": "AB892X", + "23424": "AB892X", + "23426": "AB892X", + "23427": "AB892X", + "23429": "AB892X", + "23430": "AB892X", + "23431": "AB892X", + "23432": "AB892X", + "23433": "AB892X", + "23434": "AB892X", + "23435": "AB892X", + "23436": "AB892X", + "23437": "AB892X", + "23438": "AB892X", + "23439": "AB892X", + "23440": "AB892X", + "23441": "AB892X", + "23442": "AB892X", + "23443": "AB892X", + "23450": "AB892X", + "23451": "AB892X", + "23452": "AB892X", + "23453": "AB892X", + "23454": "AB892X", + "23455": "AB892X", + "23456": "AB892X", + "23457": "AB892X", + "23458": "AB892X", + "23459": "AB892X", + "23460": "AB892X", + "23461": "AB892X", + "23462": "AB892X", + "23463": "AB892X", + "23464": "AB892X", + "23465": "AB892X", + "23466": "AB892X", + "23467": "AB892X", + "23471": "AB892X", + "23479": "AB892X", + "23480": "AB892X", + "23482": "AB892X", + "23483": "AB892X", + "23486": "AB892X", + "23487": "AB892X", + "23488": "AB892X", + "23501": "AB892X", + "23502": "AB892X", + "23503": "AB892X", + "23504": "AB892X", + "23505": "AB892X", + "23506": "AB892X", + "23507": "AB892X", + "23508": "AB892X", + "23509": "AB892X", + "23510": "AB892X", + "23511": "AB892X", + "23512": "AB892X", + "23513": "AB892X", + "23514": "AB892X", + "23515": "AB892X", + "23517": "AB892X", + "23518": "AB892X", + "23519": "AB892X", + "23520": "AB892X", + "23521": "AB892X", + "23523": "AB892X", + "23529": "AB892X", + "23541": "AB892X", + "23551": "AB892X", + "23601": "AB892X", + "23602": "AB892X", + "23603": "AB892X", + "23604": "AB892X", + "23605": "AB892X", + "23606": "AB892X", + "23607": "AB892X", + "23608": "AB892X", + "23609": "AB892X", + "23612": "AB892X", + "23628": "AB892X", + "23630": "AB892X", + "23651": "AB892X", + "23661": "AB892X", + "23662": "AB892X", + "23663": "AB892X", + "23664": "AB892X", + "23665": "AB892X", + "23666": "AB892X", + "23667": "AB892X", + "23668": "AB892X", + "23669": "AB892X", + "23670": "AB892X", + "23681": "AB892X", + "23690": "AB892X", + "23691": "AB892X", + "23692": "AB892X", + "23693": "AB892X", + "23694": "AB892X", + "23696": "AB892X", + "23701": "AB892X", + "23702": "AB892X", + "23703": "AB892X", + "23704": "AB892X", + "23705": "AB892X", + "23707": "AB892X", + "23708": "AB892X", + "23709": "AB892X", + "23801": "AB892X", + "23803": "AB892X", + "23804": "AB892X", + "23805": "AB892X", + "23806": "AB892X", + "23821": "AB892X", + "23822": "AB892X", + "23824": "AB892X", + "23825": "AB892X", + "23827": "AB892X", + "23828": "AB892X", + "23829": "AB892X", + "23830": "AB892X", + "23831": "AB892X", + "23832": "AB892X", + "23833": "AB892X", + "23834": "AB892X", + "23836": "AB892X", + "23837": "AB892X", + "23838": "AB892X", + "23839": "AB892X", + "23840": "AB892X", + "23841": "AB892X", + "23842": "AB892X", + "23843": "AB892X", + "23844": "AB892X", + "23845": "AB892X", + "23846": "AB892X", + "23847": "AB892X", + "23850": "AB892X", + "23851": "AB892X", + "23856": "AB892X", + "23857": "AB892X", + "23860": "AB892X", + "23866": "AB892X", + "23867": "AB892X", + "23868": "AB892X", + "23870": "AB892X", + "23872": "AB892X", + "23873": "AB892X", + "23874": "AB892X", + "23875": "AB892X", + "23876": "AB892X", + "23878": "AB892X", + "23879": "AB892X", + "23881": "AB892X", + "23882": "AB892X", + "23883": "AB892X", + "23884": "AB892X", + "23885": "AB892X", + "23887": "AB892X", + "23888": "AB892X", + "23889": "AB892X", + "23890": "AB892X", + "23891": "AB892X", + "23893": "AB892X", + "23894": "AB892X", + "23897": "AB892X", + "23898": "AB892X", + "23899": "AB892X", + "23901": "AB892X", + "23909": "AB892X", + "23915": "AB892X", + "23917": "AB892X", + "23919": "AB892X", + "23920": "AB892X", + "23921": "AB892X", + "23922": "AB892X", + "23923": "AB892X", + "23924": "AB892X", + "23927": "AB892X", + "23930": "AB892X", + "23934": "AB892X", + "23936": "AB892X", + "23937": "AB892X", + "23938": "AB892X", + "23939": "AB892X", + "23941": "AB892X", + "23942": "AB892X", + "23943": "AB892X", + "23944": "AB892X", + "23947": "AB892X", + "23950": "AB892X", + "23952": "AB892X", + "23954": "AB892X", + "23955": "AB892X", + "23958": "AB892X", + "23959": "AB892X", + "23960": "AB892X", + "23962": "AB892X", + "23963": "AB892X", + "23964": "AB892X", + "23966": "AB892X", + "23967": "AB892X", + "23968": "AB892X", + "23970": "AB892X", + "23974": "AB892X", + "23976": "AB892X", + "24001": "AB892X", + "24002": "AB892X", + "24003": "AB892X", + "24004": "AB892X", + "24005": "AB892X", + "24006": "AB892X", + "24007": "AB892X", + "24008": "AB892X", + "24009": "AB892X", + "24010": "AB892X", + "24011": "AB892X", + "24012": "AB892X", + "24013": "AB892X", + "24014": "AB892X", + "24015": "AB892X", + "24016": "AB892X", + "24017": "AB892X", + "24018": "AB892X", + "24019": "AB892X", + "24020": "AB892X", + "24022": "AB892X", + "24023": "AB892X", + "24024": "AB892X", + "24025": "AB892X", + "24026": "AB892X", + "24027": "AB892X", + "24028": "AB892X", + "24029": "AB892X", + "24030": "AB892X", + "24031": "AB892X", + "24032": "AB892X", + "24033": "AB892X", + "24034": "AB892X", + "24035": "AB892X", + "24036": "AB892X", + "24037": "AB892X", + "24038": "AB892X", + "24040": "AB892X", + "24042": "AB892X", + "24043": "AB892X", + "24044": "AB892X", + "24045": "AB892X", + "24048": "AB892X", + "24050": "AB892X", + "24053": "AB887X", + "24054": "AB892X", + "24055": "AB892X", + "24058": "AB892X", + "24059": "AB892X", + "24060": "AB892X", + "24061": "AB892X", + "24062": "AB892X", + "24063": "AB892X", + "24064": "AB892X", + "24065": "AB892X", + "24066": "AB892X", + "24067": "AB892X", + "24068": "AB892X", + "24069": "AB892X", + "24070": "AB892X", + "24072": "AB892X", + "24073": "AB892X", + "24076": "AB887X", + "24077": "AB892X", + "24078": "AB892X", + "24079": "AB892X", + "24082": "AB892X", + "24083": "AB892X", + "24084": "AB892X", + "24085": "AB892X", + "24086": "AB892X", + "24087": "AB892X", + "24088": "AB892X", + "24089": "AB892X", + "24090": "AB892X", + "24091": "AB892X", + "24092": "AB892X", + "24093": "AB892X", + "24095": "AB892X", + "24101": "AB892X", + "24102": "AB892X", + "24104": "AB892X", + "24105": "AB892X", + "24111": "AB892X", + "24112": "AB892X", + "24113": "AB892X", + "24114": "AB892X", + "24115": "AB892X", + "24120": "AB892X", + "24121": "AB892X", + "24122": "AB892X", + "24124": "AB892X", + "24126": "AB892X", + "24127": "AB892X", + "24128": "AB892X", + "24129": "AB892X", + "24130": "AB892X", + "24131": "AB892X", + "24132": "AB892X", + "24133": "AB892X", + "24134": "AB892X", + "24136": "AB892X", + "24137": "AB892X", + "24138": "AB892X", + "24139": "AB892X", + "24141": "AB892X", + "24142": "AB892X", + "24143": "AB892X", + "24146": "AB892X", + "24147": "AB892X", + "24148": "AB892X", + "24149": "AB892X", + "24150": "AB892X", + "24151": "AB892X", + "24153": "AB892X", + "24155": "AB892X", + "24157": "AB892X", + "24161": "AB892X", + "24162": "AB892X", + "24165": "AB892X", + "24167": "AB892X", + "24168": "AB892X", + "24171": "AB887X", + "24174": "AB892X", + "24175": "AB892X", + "24176": "AB892X", + "24177": "AB892X", + "24178": "AB892X", + "24179": "AB892X", + "24184": "AB892X", + "24185": "AB892X", + "24201": "AB888X", + "24202": "AB888X", + "24203": "AB888X", + "24209": "AB888X", + "24210": "AB888X", + "24211": "AB888X", + "24212": "AB888X", + "24215": "AB888X", + "24216": "AB888X", + "24217": "AB892X", + "24218": "AB888X", + "24219": "AB888X", + "24220": "AB892X", + "24221": "AB888X", + "24224": "AB888X", + "24225": "AB888X", + "24226": "AB892X", + "24228": "AB892X", + "24230": "AB888X", + "24236": "AB888X", + "24237": "AB888X", + "24239": "AB900X", + "24243": "AB888X", + "24244": "AB888X", + "24245": "AB888X", + "24246": "AB888X", + "24248": "AB888X", + "24250": "AB888X", + "24251": "AB888X", + "24256": "AB892X", + "24258": "AB888X", + "24260": "AB888X", + "24263": "AB888X", + "24265": "AB888X", + "24266": "AB888X", + "24269": "AB892X", + "24270": "AB888X", + "24271": "AB888X", + "24272": "AB892X", + "24273": "AB888X", + "24274": "AB888X", + "24277": "AB888X", + "24279": "AB888X", + "24280": "AB888X", + "24281": "AB888X", + "24282": "AB888X", + "24283": "AB888X", + "24290": "AB888X", + "24292": "AB892X", + "24293": "AB888X", + "24301": "AB892X", + "24311": "AB888X", + "24312": "AB892X", + "24313": "AB892X", + "24314": "AB900X", + "24315": "AB900X", + "24316": "AB900X", + "24317": "AB887X", + "24318": "AB900X", + "24319": "AB888X", + "24322": "AB892X", + "24323": "AB892X", + "24324": "AB892X", + "24325": "AB892X", + "24326": "AB892X", + "24327": "AB888X", + "24328": "AB892X", + "24330": "AB892X", + "24333": "AB892X", + "24340": "AB888X", + "24343": "AB892X", + "24347": "AB892X", + "24348": "AB892X", + "24350": "AB892X", + "24351": "AB887X", + "24352": "AB892X", + "24354": "AB888X", + "24360": "AB892X", + "24361": "AB888X", + "24363": "AB892X", + "24366": "AB900X", + "24368": "AB892X", + "24370": "AB888X", + "24374": "AB892X", + "24375": "AB888X", + "24377": "AB900X", + "24378": "AB892X", + "24380": "AB892X", + "24381": "AB892X", + "24382": "AB892X", + "24401": "AB892X", + "24402": "AB892X", + "24411": "AB892X", + "24412": "AB892X", + "24413": "AB892X", + "24415": "AB892X", + "24416": "AB892X", + "24421": "AB892X", + "24422": "AB892X", + "24426": "AB892X", + "24430": "AB892X", + "24431": "AB892X", + "24432": "AB892X", + "24433": "AB892X", + "24435": "AB892X", + "24437": "AB892X", + "24438": "AB892X", + "24439": "AB892X", + "24440": "AB892X", + "24441": "AB892X", + "24442": "AB892X", + "24445": "AB892X", + "24448": "AB892X", + "24450": "AB892X", + "24457": "AB892X", + "24458": "AB892X", + "24459": "AB892X", + "24460": "AB892X", + "24463": "AB892X", + "24464": "AB892X", + "24465": "AB892X", + "24467": "AB892X", + "24468": "AB892X", + "24469": "AB892X", + "24471": "AB892X", + "24472": "AB892X", + "24473": "AB892X", + "24474": "AB892X", + "24475": "AB892X", + "24476": "AB892X", + "24477": "AB892X", + "24479": "AB892X", + "24482": "AB892X", + "24483": "AB892X", + "24484": "AB892X", + "24485": "AB892X", + "24486": "AB892X", + "24487": "AB892X", + "24501": "AB892X", + "24502": "AB892X", + "24503": "AB892X", + "24504": "AB892X", + "24505": "AB892X", + "24506": "AB892X", + "24512": "AB892X", + "24513": "AB892X", + "24514": "AB892X", + "24515": "AB892X", + "24517": "AB892X", + "24520": "AB892X", + "24521": "AB892X", + "24522": "AB892X", + "24523": "AB892X", + "24526": "AB892X", + "24527": "AB892X", + "24528": "AB892X", + "24529": "AB892X", + "24530": "AB892X", + "24531": "AB892X", + "24533": "AB892X", + "24534": "AB892X", + "24535": "AB892X", + "24536": "AB892X", + "24538": "AB892X", + "24539": "AB892X", + "24540": "AB892X", + "24541": "AB892X", + "24543": "AB888X", + "24544": "AB892X", + "24549": "AB892X", + "24550": "AB892X", + "24551": "AB892X", + "24553": "AB892X", + "24554": "AB892X", + "24555": "AB892X", + "24556": "AB892X", + "24557": "AB892X", + "24558": "AB892X", + "24562": "AB892X", + "24563": "AB892X", + "24565": "AB892X", + "24566": "AB892X", + "24569": "AB892X", + "24570": "AB892X", + "24571": "AB892X", + "24572": "AB892X", + "24574": "AB892X", + "24576": "AB892X", + "24577": "AB892X", + "24578": "AB892X", + "24579": "AB892X", + "24580": "AB892X", + "24581": "AB892X", + "24586": "AB892X", + "24588": "AB892X", + "24589": "AB892X", + "24590": "AB892X", + "24592": "AB892X", + "24593": "AB892X", + "24594": "AB892X", + "24595": "AB892X", + "24597": "AB892X", + "24598": "AB892X", + "24599": "AB892X", + "24601": "AB900X", + "24602": "AB900X", + "24603": "AB900X", + "24604": "AB900X", + "24605": "AB900X", + "24606": "AB900X", + "24607": "AB892X", + "24608": "AB900X", + "24609": "AB900X", + "24612": "AB900X", + "24613": "AB900X", + "24614": "AB900X", + "24619": "AB900X", + "24620": "AB900X", + "24622": "AB900X", + "24624": "AB900X", + "24627": "AB900X", + "24628": "AB900X", + "24630": "AB900X", + "24631": "AB900X", + "24634": "AB900X", + "24635": "AB900X", + "24637": "AB900X", + "24639": "AB900X", + "24640": "AB900X", + "24641": "AB900X", + "24646": "AB900X", + "24647": "AB900X", + "24649": "AB888X", + "24651": "AB900X", + "24656": "AB888X", + "24657": "AB900X", + "24658": "AB900X", + "24701": "AB900X", + "24712": "AB900X", + "24714": "AB900X", + "24715": "AB900X", + "24716": "AB900X", + "24719": "AB900X", + "24724": "AB900X", + "24726": "AB900X", + "24729": "AB900X", + "24731": "AB900X", + "24732": "AB900X", + "24733": "AB900X", + "24736": "AB900X", + "24737": "AB900X", + "24738": "AB900X", + "24739": "AB900X", + "24740": "AB900X", + "24747": "AB900X", + "24751": "AB900X", + "24801": "AB900X", + "24808": "AB900X", + "24811": "AB900X", + "24813": "AB900X", + "24815": "AB900X", + "24816": "AB900X", + "24817": "AB900X", + "24818": "AB900X", + "24821": "AB900X", + "24822": "AB900X", + "24823": "AB900X", + "24824": "AB900X", + "24825": "AB900X", + "24826": "AB900X", + "24827": "AB900X", + "24828": "AB900X", + "24829": "AB900X", + "24830": "AB900X", + "24831": "AB900X", + "24834": "AB900X", + "24836": "AB900X", + "24839": "AB900X", + "24842": "AB900X", + "24843": "AB900X", + "24844": "AB900X", + "24845": "AB900X", + "24846": "AB900X", + "24847": "AB900X", + "24848": "AB900X", + "24849": "AB900X", + "24850": "AB900X", + "24851": "AB900X", + "24852": "AB900X", + "24853": "AB900X", + "24854": "AB900X", + "24855": "AB900X", + "24857": "AB900X", + "24859": "AB900X", + "24860": "AB900X", + "24861": "AB900X", + "24862": "AB900X", + "24866": "AB900X", + "24867": "AB900X", + "24868": "AB900X", + "24869": "AB900X", + "24870": "AB900X", + "24871": "AB900X", + "24872": "AB900X", + "24873": "AB900X", + "24874": "AB900X", + "24877": "AB900X", + "24878": "AB900X", + "24879": "AB900X", + "24880": "AB900X", + "24881": "AB900X", + "24882": "AB900X", + "24884": "AB900X", + "24887": "AB900X", + "24888": "AB900X", + "24892": "AB900X", + "24894": "AB900X", + "24895": "AB900X", + "24898": "AB900X", + "24901": "AB900X", + "24902": "AB900X", + "24910": "AB900X", + "24915": "AB900X", + "24916": "AB900X", + "24917": "AB900X", + "24918": "AB900X", + "24920": "AB900X", + "24924": "AB900X", + "24925": "AB900X", + "24927": "AB900X", + "24931": "AB900X", + "24934": "AB900X", + "24935": "AB900X", + "24938": "AB900X", + "24941": "AB900X", + "24943": "AB900X", + "24944": "AB900X", + "24945": "AB900X", + "24946": "AB900X", + "24951": "AB900X", + "24954": "AB900X", + "24957": "AB900X", + "24961": "AB900X", + "24962": "AB900X", + "24963": "AB892X", + "24966": "AB900X", + "24970": "AB900X", + "24974": "AB900X", + "24976": "AB900X", + "24977": "AB900X", + "24981": "AB900X", + "24983": "AB900X", + "24984": "AB900X", + "24985": "AB900X", + "24986": "AB900X", + "24991": "AB900X", + "24993": "AB900X", + "25002": "AB900X", + "25003": "AB900X", + "25005": "AB900X", + "25007": "AB900X", + "25008": "AB900X", + "25009": "AB900X", + "25011": "AB900X", + "25015": "AB900X", + "25018": "AB900X", + "25019": "AB900X", + "25021": "AB900X", + "25022": "AB900X", + "25024": "AB900X", + "25025": "AB900X", + "25026": "AB900X", + "25028": "AB900X", + "25030": "AB900X", + "25031": "AB900X", + "25033": "AB900X", + "25035": "AB900X", + "25036": "AB900X", + "25039": "AB900X", + "25040": "AB900X", + "25043": "AB900X", + "25044": "AB900X", + "25045": "AB900X", + "25047": "AB900X", + "25048": "AB900X", + "25049": "AB900X", + "25051": "AB900X", + "25053": "AB900X", + "25054": "AB900X", + "25057": "AB900X", + "25059": "AB900X", + "25060": "AB900X", + "25061": "AB900X", + "25062": "AB900X", + "25063": "AB900X", + "25064": "AB900X", + "25067": "AB900X", + "25070": "AB900X", + "25071": "AB900X", + "25075": "AB900X", + "25076": "AB900X", + "25079": "AB900X", + "25081": "AB900X", + "25082": "AB900X", + "25083": "AB900X", + "25085": "AB900X", + "25086": "AB900X", + "25088": "AB900X", + "25090": "AB900X", + "25093": "AB900X", + "25102": "AB900X", + "25103": "AB900X", + "25106": "AB900X", + "25107": "AB900X", + "25108": "AB900X", + "25109": "AB900X", + "25110": "AB900X", + "25111": "AB900X", + "25112": "AB900X", + "25113": "AB900X", + "25114": "AB900X", + "25115": "AB900X", + "25118": "AB900X", + "25119": "AB900X", + "25121": "AB900X", + "25122": "AB900X", + "25123": "AB900X", + "25124": "AB900X", + "25125": "AB900X", + "25126": "AB900X", + "25130": "AB900X", + "25132": "AB900X", + "25133": "AB900X", + "25134": "AB900X", + "25136": "AB900X", + "25139": "AB900X", + "25140": "AB900X", + "25141": "AB900X", + "25142": "AB900X", + "25143": "AB900X", + "25147": "AB900X", + "25148": "AB900X", + "25149": "AB900X", + "25152": "AB900X", + "25154": "AB900X", + "25156": "AB900X", + "25159": "AB900X", + "25160": "AB900X", + "25161": "AB900X", + "25162": "AB900X", + "25164": "AB900X", + "25165": "AB900X", + "25168": "AB900X", + "25169": "AB900X", + "25173": "AB900X", + "25174": "AB900X", + "25177": "AB900X", + "25180": "AB900X", + "25181": "AB900X", + "25182": "AB900X", + "25183": "AB900X", + "25185": "AB900X", + "25186": "AB900X", + "25187": "AB900X", + "25193": "AB900X", + "25201": "AB900X", + "25202": "AB900X", + "25203": "AB900X", + "25204": "AB900X", + "25205": "AB900X", + "25206": "AB900X", + "25208": "AB900X", + "25209": "AB900X", + "25211": "AB900X", + "25213": "AB900X", + "25214": "AB900X", + "25231": "AB900X", + "25234": "AB900X", + "25235": "AB900X", + "25239": "AB900X", + "25241": "AB900X", + "25243": "AB900X", + "25244": "AB900X", + "25245": "AB900X", + "25247": "AB900X", + "25248": "AB900X", + "25251": "AB900X", + "25252": "AB900X", + "25253": "AB900X", + "25259": "AB900X", + "25260": "AB900X", + "25261": "AB900X", + "25262": "AB900X", + "25264": "AB900X", + "25265": "AB900X", + "25266": "AB900X", + "25267": "AB900X", + "25268": "AB900X", + "25270": "AB900X", + "25271": "AB900X", + "25275": "AB900X", + "25276": "AB900X", + "25285": "AB900X", + "25286": "AB900X", + "25287": "AB900X", + "25301": "AB900X", + "25302": "AB900X", + "25303": "AB900X", + "25304": "AB900X", + "25305": "AB900X", + "25306": "AB900X", + "25309": "AB900X", + "25311": "AB900X", + "25312": "AB900X", + "25313": "AB900X", + "25314": "AB900X", + "25315": "AB900X", + "25317": "AB900X", + "25320": "AB900X", + "25321": "AB900X", + "25322": "AB900X", + "25323": "AB900X", + "25324": "AB900X", + "25325": "AB900X", + "25326": "AB900X", + "25327": "AB900X", + "25328": "AB900X", + "25329": "AB900X", + "25330": "AB900X", + "25331": "AB900X", + "25332": "AB900X", + "25333": "AB900X", + "25334": "AB900X", + "25335": "AB900X", + "25336": "AB900X", + "25337": "AB900X", + "25338": "AB900X", + "25339": "AB900X", + "25350": "AB900X", + "25356": "AB900X", + "25357": "AB900X", + "25358": "AB900X", + "25360": "AB900X", + "25361": "AB900X", + "25362": "AB900X", + "25364": "AB900X", + "25365": "AB900X", + "25375": "AB900X", + "25387": "AB900X", + "25389": "AB900X", + "25392": "AB900X", + "25396": "AB900X", + "25401": "AB892X", + "25402": "AB892X", + "25403": "AB892X", + "25404": "AB892X", + "25405": "AB892X", + "25410": "AB892X", + "25411": "AB892X", + "25413": "AB892X", + "25414": "AB892X", + "25419": "AB892X", + "25420": "AB892X", + "25421": "AB892X", + "25422": "AB892X", + "25423": "AB892X", + "25425": "AB892X", + "25427": "AB892X", + "25428": "AB892X", + "25429": "AB892X", + "25430": "AB892X", + "25431": "AB892X", + "25432": "AB892X", + "25434": "AB892X", + "25437": "AB892X", + "25438": "AB892X", + "25440": "AB892X", + "25441": "AB892X", + "25442": "AB892X", + "25443": "AB892X", + "25444": "AB892X", + "25446": "AB892X", + "25501": "AB900X", + "25502": "AB900X", + "25503": "AB900X", + "25504": "AB900X", + "25505": "AB900X", + "25506": "AB900X", + "25507": "AB900X", + "25508": "AB900X", + "25510": "AB900X", + "25511": "AB900X", + "25512": "AB900X", + "25514": "AB900X", + "25515": "AB900X", + "25517": "AB900X", + "25520": "AB900X", + "25521": "AB900X", + "25523": "AB900X", + "25524": "AB900X", + "25526": "AB900X", + "25529": "AB900X", + "25530": "AB900X", + "25534": "AB900X", + "25535": "AB900X", + "25537": "AB900X", + "25540": "AB900X", + "25541": "AB900X", + "25544": "AB900X", + "25545": "AB900X", + "25547": "AB900X", + "25550": "AB900X", + "25555": "AB900X", + "25557": "AB900X", + "25559": "AB900X", + "25560": "AB900X", + "25562": "AB900X", + "25564": "AB900X", + "25565": "AB900X", + "25567": "AB900X", + "25569": "AB900X", + "25570": "AB900X", + "25571": "AB900X", + "25572": "AB900X", + "25573": "AB900X", + "25601": "AB900X", + "25606": "AB900X", + "25607": "AB900X", + "25608": "AB900X", + "25611": "AB900X", + "25612": "AB900X", + "25614": "AB900X", + "25617": "AB900X", + "25621": "AB900X", + "25624": "AB900X", + "25625": "AB900X", + "25628": "AB900X", + "25630": "AB900X", + "25632": "AB900X", + "25634": "AB900X", + "25635": "AB900X", + "25637": "AB900X", + "25638": "AB900X", + "25639": "AB900X", + "25644": "AB900X", + "25645": "AB900X", + "25646": "AB900X", + "25647": "AB900X", + "25649": "AB900X", + "25650": "AB900X", + "25651": "AB900X", + "25652": "AB900X", + "25653": "AB900X", + "25654": "AB900X", + "25661": "AB900X", + "25665": "AB900X", + "25666": "AB900X", + "25667": "AB900X", + "25669": "AB900X", + "25670": "AB900X", + "25671": "AB900X", + "25672": "AB900X", + "25674": "AB900X", + "25676": "AB900X", + "25678": "AB900X", + "25685": "AB900X", + "25686": "AB900X", + "25688": "AB900X", + "25690": "AB900X", + "25691": "AB900X", + "25692": "AB900X", + "25696": "AB900X", + "25697": "AB900X", + "25699": "AB900X", + "25701": "AB900X", + "25702": "AB900X", + "25703": "AB900X", + "25704": "AB900X", + "25705": "AB900X", + "25706": "AB900X", + "25707": "AB900X", + "25708": "AB900X", + "25709": "AB900X", + "25710": "AB900X", + "25711": "AB900X", + "25712": "AB900X", + "25713": "AB900X", + "25714": "AB900X", + "25715": "AB900X", + "25716": "AB900X", + "25717": "AB900X", + "25718": "AB900X", + "25719": "AB900X", + "25720": "AB900X", + "25721": "AB900X", + "25722": "AB900X", + "25723": "AB900X", + "25724": "AB900X", + "25725": "AB900X", + "25726": "AB900X", + "25727": "AB900X", + "25728": "AB900X", + "25729": "AB900X", + "25755": "AB900X", + "25770": "AB900X", + "25771": "AB900X", + "25772": "AB900X", + "25773": "AB900X", + "25774": "AB900X", + "25775": "AB900X", + "25776": "AB900X", + "25777": "AB900X", + "25778": "AB900X", + "25779": "AB900X", + "25801": "AB900X", + "25802": "AB900X", + "25810": "AB900X", + "25811": "AB900X", + "25812": "AB900X", + "25813": "AB900X", + "25816": "AB900X", + "25817": "AB900X", + "25818": "AB900X", + "25820": "AB900X", + "25823": "AB900X", + "25825": "AB900X", + "25826": "AB900X", + "25827": "AB900X", + "25831": "AB900X", + "25832": "AB900X", + "25833": "AB900X", + "25836": "AB900X", + "25837": "AB900X", + "25839": "AB900X", + "25840": "AB900X", + "25841": "AB900X", + "25843": "AB900X", + "25844": "AB900X", + "25845": "AB900X", + "25846": "AB900X", + "25848": "AB900X", + "25849": "AB900X", + "25851": "AB900X", + "25853": "AB900X", + "25854": "AB900X", + "25855": "AB900X", + "25857": "AB900X", + "25860": "AB900X", + "25862": "AB900X", + "25864": "AB900X", + "25865": "AB900X", + "25866": "AB900X", + "25868": "AB900X", + "25870": "AB900X", + "25871": "AB900X", + "25873": "AB900X", + "25875": "AB900X", + "25876": "AB900X", + "25878": "AB900X", + "25879": "AB900X", + "25880": "AB900X", + "25882": "AB900X", + "25901": "AB900X", + "25902": "AB900X", + "25904": "AB900X", + "25906": "AB900X", + "25907": "AB900X", + "25908": "AB900X", + "25909": "AB900X", + "25911": "AB900X", + "25913": "AB900X", + "25914": "AB900X", + "25915": "AB900X", + "25916": "AB900X", + "25917": "AB900X", + "25918": "AB900X", + "25919": "AB900X", + "25920": "AB900X", + "25921": "AB900X", + "25922": "AB900X", + "25926": "AB900X", + "25927": "AB900X", + "25928": "AB900X", + "25932": "AB900X", + "25936": "AB900X", + "25938": "AB900X", + "25942": "AB900X", + "25943": "AB900X", + "25951": "AB900X", + "25958": "AB900X", + "25961": "AB900X", + "25962": "AB900X", + "25965": "AB900X", + "25966": "AB900X", + "25969": "AB900X", + "25971": "AB900X", + "25972": "AB900X", + "25976": "AB900X", + "25977": "AB900X", + "25978": "AB900X", + "25979": "AB900X", + "25981": "AB900X", + "25984": "AB900X", + "25985": "AB900X", + "25986": "AB900X", + "25989": "AB900X", + "26003": "AB900X", + "26030": "AB900X", + "26031": "AB900X", + "26032": "AB900X", + "26033": "AB900X", + "26034": "AB900X", + "26035": "AB900X", + "26036": "AB900X", + "26037": "AB900X", + "26038": "AB900X", + "26039": "AB900X", + "26040": "AB900X", + "26041": "AB900X", + "26047": "AB900X", + "26050": "AB900X", + "26055": "AB900X", + "26056": "AB900X", + "26058": "AB900X", + "26059": "AB900X", + "26060": "AB900X", + "26062": "AB900X", + "26070": "AB900X", + "26074": "AB900X", + "26075": "AB900X", + "26101": "AB900X", + "26102": "AB900X", + "26103": "AB900X", + "26104": "AB900X", + "26105": "AB900X", + "26106": "AB900X", + "26120": "AB900X", + "26121": "AB900X", + "26133": "AB900X", + "26134": "AB900X", + "26136": "AB900X", + "26137": "AB900X", + "26138": "AB900X", + "26141": "AB900X", + "26142": "AB900X", + "26143": "AB900X", + "26146": "AB900X", + "26147": "AB900X", + "26148": "AB900X", + "26149": "AB900X", + "26150": "AB900X", + "26151": "AB900X", + "26152": "AB900X", + "26155": "AB900X", + "26159": "AB900X", + "26160": "AB900X", + "26161": "AB900X", + "26162": "AB900X", + "26164": "AB900X", + "26167": "AB900X", + "26169": "AB900X", + "26170": "AB900X", + "26175": "AB900X", + "26178": "AB900X", + "26180": "AB900X", + "26181": "AB900X", + "26184": "AB900X", + "26186": "AB900X", + "26187": "AB900X", + "26201": "AB900X", + "26202": "AB900X", + "26203": "AB900X", + "26205": "AB900X", + "26206": "AB900X", + "26208": "AB900X", + "26209": "AB900X", + "26210": "AB900X", + "26215": "AB900X", + "26217": "AB900X", + "26218": "AB900X", + "26219": "AB900X", + "26222": "AB900X", + "26224": "AB900X", + "26228": "AB900X", + "26229": "AB900X", + "26230": "AB900X", + "26234": "AB900X", + "26236": "AB900X", + "26237": "AB900X", + "26238": "AB900X", + "26241": "AB900X", + "26250": "AB900X", + "26253": "AB900X", + "26254": "AB900X", + "26257": "AB900X", + "26259": "AB900X", + "26260": "AB900X", + "26261": "AB900X", + "26263": "AB900X", + "26264": "AB900X", + "26266": "AB900X", + "26267": "AB900X", + "26268": "AB900X", + "26269": "AB900X", + "26270": "AB900X", + "26271": "AB900X", + "26273": "AB900X", + "26275": "AB900X", + "26276": "AB900X", + "26278": "AB900X", + "26280": "AB900X", + "26282": "AB900X", + "26283": "AB900X", + "26285": "AB900X", + "26287": "AB900X", + "26288": "AB900X", + "26289": "AB900X", + "26291": "AB900X", + "26292": "AB900X", + "26293": "AB900X", + "26294": "AB900X", + "26296": "AB900X", + "26298": "AB900X", + "26301": "AB900X", + "26302": "AB900X", + "26306": "AB900X", + "26320": "AB900X", + "26321": "AB900X", + "26323": "AB900X", + "26325": "AB900X", + "26327": "AB900X", + "26330": "AB900X", + "26335": "AB900X", + "26337": "AB900X", + "26338": "AB900X", + "26339": "AB900X", + "26342": "AB900X", + "26343": "AB900X", + "26346": "AB900X", + "26347": "AB900X", + "26348": "AB900X", + "26349": "AB900X", + "26351": "AB900X", + "26354": "AB900X", + "26361": "AB900X", + "26362": "AB900X", + "26366": "AB900X", + "26369": "AB900X", + "26372": "AB900X", + "26374": "AB900X", + "26376": "AB900X", + "26377": "AB900X", + "26378": "AB900X", + "26384": "AB900X", + "26385": "AB900X", + "26386": "AB900X", + "26401": "AB900X", + "26404": "AB900X", + "26405": "AB900X", + "26408": "AB900X", + "26410": "AB900X", + "26411": "AB900X", + "26412": "AB900X", + "26415": "AB900X", + "26416": "AB900X", + "26419": "AB900X", + "26421": "AB900X", + "26422": "AB900X", + "26424": "AB900X", + "26425": "AB900X", + "26426": "AB900X", + "26430": "AB900X", + "26431": "AB900X", + "26434": "AB900X", + "26435": "AB900X", + "26436": "AB900X", + "26437": "AB900X", + "26438": "AB900X", + "26440": "AB900X", + "26443": "AB900X", + "26444": "AB900X", + "26447": "AB900X", + "26448": "AB900X", + "26451": "AB900X", + "26452": "AB900X", + "26456": "AB900X", + "26461": "AB900X", + "26463": "AB900X", + "26501": "AB900X", + "26502": "AB900X", + "26504": "AB900X", + "26505": "AB900X", + "26506": "AB900X", + "26507": "AB900X", + "26508": "AB900X", + "26519": "AB900X", + "26520": "AB900X", + "26521": "AB900X", + "26524": "AB900X", + "26525": "AB900X", + "26527": "AB900X", + "26531": "AB900X", + "26534": "AB900X", + "26537": "AB900X", + "26541": "AB900X", + "26542": "AB900X", + "26543": "AB900X", + "26544": "AB900X", + "26546": "AB900X", + "26547": "AB900X", + "26554": "AB900X", + "26555": "AB887X", + "26559": "AB900X", + "26560": "AB900X", + "26561": "AB900X", + "26562": "AB900X", + "26563": "AB900X", + "26566": "AB900X", + "26568": "AB900X", + "26570": "AB900X", + "26571": "AB900X", + "26572": "AB900X", + "26574": "AB900X", + "26575": "AB900X", + "26576": "AB900X", + "26578": "AB900X", + "26581": "AB900X", + "26582": "AB900X", + "26585": "AB900X", + "26586": "AB900X", + "26587": "AB900X", + "26588": "AB900X", + "26589": "AB900X", + "26590": "AB900X", + "26591": "AB900X", + "26601": "AB900X", + "26610": "AB900X", + "26611": "AB900X", + "26615": "AB900X", + "26617": "AB900X", + "26619": "AB900X", + "26620": "AB900X", + "26621": "AB900X", + "26623": "AB900X", + "26624": "AB900X", + "26627": "AB900X", + "26629": "AB900X", + "26631": "AB900X", + "26636": "AB900X", + "26638": "AB900X", + "26639": "AB900X", + "26651": "AB900X", + "26656": "AB900X", + "26660": "AB900X", + "26662": "AB900X", + "26667": "AB900X", + "26671": "AB900X", + "26674": "AB900X", + "26675": "AB900X", + "26676": "AB900X", + "26678": "AB900X", + "26679": "AB900X", + "26680": "AB900X", + "26681": "AB900X", + "26683": "AB900X", + "26684": "AB900X", + "26690": "AB900X", + "26691": "AB900X", + "26704": "AB892X", + "26705": "AB900X", + "26707": "AB892X", + "26710": "AB892X", + "26711": "AB892X", + "26714": "AB892X", + "26716": "AB900X", + "26717": "AB892X", + "26719": "AB892X", + "26720": "AB892X", + "26722": "AB892X", + "26726": "AB892X", + "26731": "AB892X", + "26739": "AB892X", + "26743": "AB892X", + "26750": "AB892X", + "26753": "AB892X", + "26755": "AB892X", + "26757": "AB892X", + "26760": "AB900X", + "26761": "AB892X", + "26763": "AB892X", + "26764": "AB900X", + "26767": "AB892X", + "26801": "AB892X", + "26802": "AB900X", + "26804": "AB900X", + "26807": "AB900X", + "26808": "AB892X", + "26810": "AB892X", + "26812": "AB892X", + "26814": "AB900X", + "26815": "AB900X", + "26817": "AB892X", + "26818": "AB900X", + "26823": "AB892X", + "26833": "AB892X", + "26836": "AB892X", + "26838": "AB892X", + "26845": "AB892X", + "26847": "AB892X", + "26851": "AB892X", + "26852": "AB892X", + "26855": "AB900X", + "26865": "AB892X", + "26866": "AB900X", + "26884": "AB900X", + "26886": "AB900X", + "29001": "AB891X", + "29002": "AB891X", + "29003": "AB891X", + "29006": "AB891X", + "29009": "AB891X", + "29010": "AB891X", + "29014": "AB887X", + "29015": "AB891X", + "29016": "AB891X", + "29018": "AB891X", + "29020": "AB891X", + "29021": "AB891X", + "29030": "AB891X", + "29031": "AB895X", + "29032": "AB891X", + "29033": "AB891X", + "29036": "AB891X", + "29037": "AB895X", + "29038": "AB891X", + "29039": "AB891X", + "29040": "AB891X", + "29041": "AB891X", + "29042": "AB891X", + "29044": "AB891X", + "29045": "AB891X", + "29046": "AB891X", + "29047": "AB891X", + "29048": "AB891X", + "29051": "AB891X", + "29052": "AB891X", + "29053": "AB891X", + "29054": "AB891X", + "29055": "AB887X", + "29056": "AB891X", + "29058": "AB887X", + "29059": "AB891X", + "29061": "AB891X", + "29062": "AB891X", + "29063": "AB891X", + "29065": "AB891X", + "29067": "AB887X", + "29069": "AB888X", + "29070": "AB891X", + "29071": "AB891X", + "29072": "AB891X", + "29073": "AB891X", + "29074": "AB891X", + "29075": "AB891X", + "29078": "AB891X", + "29079": "AB891X", + "29080": "AB891X", + "29081": "AB891X", + "29082": "AB891X", + "29101": "AB891X", + "29102": "AB891X", + "29104": "AB891X", + "29105": "AB891X", + "29107": "AB891X", + "29108": "AB891X", + "29111": "AB891X", + "29112": "AB891X", + "29113": "AB891X", + "29114": "AB888X", + "29115": "AB891X", + "29116": "AB891X", + "29117": "AB891X", + "29118": "AB891X", + "29122": "AB891X", + "29123": "AB891X", + "29125": "AB891X", + "29126": "AB891X", + "29127": "AB891X", + "29128": "AB891X", + "29129": "AB891X", + "29130": "AB891X", + "29132": "AB891X", + "29133": "AB891X", + "29135": "AB891X", + "29137": "AB891X", + "29138": "AB895X", + "29142": "AB891X", + "29143": "AB891X", + "29145": "AB891X", + "29146": "AB891X", + "29147": "AB891X", + "29148": "AB891X", + "29150": "AB891X", + "29151": "AB891X", + "29152": "AB891X", + "29153": "AB891X", + "29154": "AB891X", + "29160": "AB891X", + "29161": "AB888X", + "29162": "AB891X", + "29163": "AB891X", + "29164": "AB891X", + "29166": "AB891X", + "29168": "AB891X", + "29169": "AB891X", + "29170": "AB891X", + "29171": "AB891X", + "29172": "AB891X", + "29175": "AB891X", + "29177": "AB891X", + "29178": "AB891X", + "29180": "AB891X", + "29201": "AB891X", + "29202": "AB891X", + "29203": "AB891X", + "29204": "AB891X", + "29205": "AB891X", + "29206": "AB891X", + "29207": "AB891X", + "29208": "AB891X", + "29209": "AB891X", + "29210": "AB891X", + "29211": "AB891X", + "29212": "AB891X", + "29214": "AB891X", + "29215": "AB891X", + "29216": "AB891X", + "29217": "AB891X", + "29218": "AB891X", + "29219": "AB891X", + "29220": "AB891X", + "29221": "AB891X", + "29222": "AB891X", + "29223": "AB891X", + "29224": "AB891X", + "29225": "AB891X", + "29226": "AB891X", + "29227": "AB891X", + "29228": "AB891X", + "29229": "AB891X", + "29230": "AB891X", + "29240": "AB891X", + "29250": "AB891X", + "29260": "AB891X", + "29290": "AB891X", + "29292": "AB891X", + "29301": "AB895X", + "29302": "AB895X", + "29303": "AB895X", + "29304": "AB895X", + "29305": "AB895X", + "29306": "AB895X", + "29307": "AB895X", + "29316": "AB895X", + "29318": "AB895X", + "29319": "AB895X", + "29320": "AB895X", + "29321": "AB895X", + "29322": "AB895X", + "29323": "AB895X", + "29324": "AB895X", + "29325": "AB895X", + "29329": "AB895X", + "29330": "AB895X", + "29331": "AB895X", + "29332": "AB895X", + "29333": "AB895X", + "29334": "AB895X", + "29335": "AB895X", + "29336": "AB895X", + "29338": "AB895X", + "29340": "AB895X", + "29341": "AB895X", + "29342": "AB895X", + "29346": "AB895X", + "29348": "AB895X", + "29349": "AB895X", + "29351": "AB895X", + "29353": "AB895X", + "29355": "AB891X", + "29356": "AB895X", + "29360": "AB895X", + "29364": "AB895X", + "29365": "AB895X", + "29368": "AB895X", + "29369": "AB895X", + "29370": "AB895X", + "29372": "AB895X", + "29373": "AB895X", + "29374": "AB895X", + "29375": "AB895X", + "29376": "AB895X", + "29377": "AB895X", + "29378": "AB895X", + "29379": "AB895X", + "29384": "AB895X", + "29385": "AB895X", + "29386": "AB895X", + "29388": "AB895X", + "29390": "AB895X", + "29391": "AB895X", + "29395": "AB895X", + "29401": "AB891X", + "29402": "AB891X", + "29403": "AB891X", + "29404": "AB891X", + "29405": "AB891X", + "29406": "AB891X", + "29407": "AB891X", + "29409": "AB891X", + "29410": "AB891X", + "29412": "AB891X", + "29413": "AB891X", + "29414": "AB891X", + "29415": "AB891X", + "29416": "AB891X", + "29417": "AB891X", + "29418": "AB891X", + "29419": "AB891X", + "29420": "AB891X", + "29422": "AB891X", + "29423": "AB891X", + "29424": "AB891X", + "29425": "AB891X", + "29426": "AB891X", + "29429": "AB891X", + "29430": "AB891X", + "29431": "AB891X", + "29432": "AB891X", + "29433": "AB891X", + "29434": "AB891X", + "29435": "AB891X", + "29436": "AB891X", + "29437": "AB891X", + "29438": "AB891X", + "29439": "AB891X", + "29440": "AB891X", + "29442": "AB891X", + "29445": "AB891X", + "29446": "AB891X", + "29447": "AB891X", + "29448": "AB891X", + "29449": "AB891X", + "29450": "AB891X", + "29451": "AB891X", + "29452": "AB891X", + "29453": "AB891X", + "29455": "AB891X", + "29456": "AB891X", + "29457": "AB891X", + "29458": "AB891X", + "29461": "AB891X", + "29464": "AB891X", + "29465": "AB891X", + "29466": "AB891X", + "29468": "AB891X", + "29469": "AB891X", + "29470": "AB891X", + "29471": "AB891X", + "29472": "AB891X", + "29474": "AB891X", + "29475": "AB891X", + "29476": "AB891X", + "29477": "AB891X", + "29479": "AB891X", + "29481": "AB891X", + "29482": "AB891X", + "29483": "AB891X", + "29484": "AB891X", + "29485": "AB891X", + "29486": "AB891X", + "29487": "AB891X", + "29488": "AB891X", + "29492": "AB891X", + "29493": "AB891X", + "29501": "AB888X", + "29502": "AB891X", + "29503": "AB891X", + "29504": "AB891X", + "29505": "AB888X", + "29506": "AB888X", + "29510": "AB891X", + "29511": "AB888X", + "29512": "AB888X", + "29516": "AB888X", + "29518": "AB888X", + "29519": "AB888X", + "29520": "AB887X", + "29525": "AB888X", + "29526": "AB888X", + "29527": "AB888X", + "29528": "AB888X", + "29530": "AB888X", + "29532": "AB888X", + "29536": "AB888X", + "29540": "AB888X", + "29541": "AB888X", + "29542": "AB888X", + "29543": "AB888X", + "29544": "AB888X", + "29545": "AB888X", + "29546": "AB888X", + "29547": "AB888X", + "29550": "AB888X", + "29551": "AB891X", + "29554": "AB888X", + "29555": "AB888X", + "29556": "AB888X", + "29560": "AB888X", + "29563": "AB888X", + "29564": "AB891X", + "29565": "AB888X", + "29566": "AB888X", + "29567": "AB888X", + "29568": "AB888X", + "29569": "AB888X", + "29570": "AB888X", + "29571": "AB888X", + "29572": "AB888X", + "29573": "AB888X", + "29574": "AB888X", + "29575": "AB888X", + "29576": "AB888X", + "29577": "AB888X", + "29578": "AB888X", + "29579": "AB888X", + "29580": "AB891X", + "29581": "AB888X", + "29582": "AB888X", + "29583": "AB888X", + "29584": "AB891X", + "29585": "AB888X", + "29587": "AB888X", + "29588": "AB888X", + "29589": "AB888X", + "29590": "AB891X", + "29591": "AB888X", + "29592": "AB888X", + "29593": "AB891X", + "29594": "AB888X", + "29596": "AB888X", + "29597": "AB888X", + "29598": "AB888X", + "29601": "AB895X", + "29602": "AB887X", + "29603": "AB895X", + "29604": "AB895X", + "29605": "AB895X", + "29606": "AB895X", + "29607": "AB895X", + "29608": "AB895X", + "29609": "AB895X", + "29610": "AB895X", + "29611": "AB895X", + "29612": "AB895X", + "29613": "AB895X", + "29614": "AB895X", + "29615": "AB895X", + "29616": "AB895X", + "29617": "AB895X", + "29620": "AB895X", + "29621": "AB895X", + "29622": "AB895X", + "29623": "AB895X", + "29624": "AB895X", + "29625": "AB895X", + "29626": "AB895X", + "29627": "AB895X", + "29628": "AB895X", + "29630": "AB895X", + "29631": "AB895X", + "29632": "AB895X", + "29633": "AB895X", + "29634": "AB895X", + "29635": "AB895X", + "29636": "AB895X", + "29638": "AB895X", + "29639": "AB895X", + "29640": "AB895X", + "29641": "AB895X", + "29642": "AB895X", + "29643": "AB895X", + "29644": "AB895X", + "29645": "AB895X", + "29646": "AB895X", + "29647": "AB895X", + "29648": "AB895X", + "29649": "AB895X", + "29650": "AB895X", + "29651": "AB895X", + "29652": "AB895X", + "29653": "AB895X", + "29654": "AB895X", + "29655": "AB895X", + "29656": "AB895X", + "29657": "AB895X", + "29658": "AB895X", + "29659": "AB895X", + "29661": "AB895X", + "29662": "AB895X", + "29664": "AB895X", + "29665": "AB895X", + "29666": "AB895X", + "29667": "AB895X", + "29669": "AB895X", + "29670": "AB895X", + "29671": "AB895X", + "29672": "AB895X", + "29673": "AB895X", + "29675": "AB895X", + "29676": "AB895X", + "29677": "AB895X", + "29678": "AB895X", + "29679": "AB895X", + "29680": "AB895X", + "29681": "AB895X", + "29682": "AB895X", + "29683": "AB895X", + "29684": "AB895X", + "29685": "AB895X", + "29686": "AB895X", + "29687": "AB895X", + "29688": "AB895X", + "29689": "AB895X", + "29690": "AB895X", + "29691": "AB895X", + "29692": "AB895X", + "29693": "AB895X", + "29695": "AB895X", + "29696": "AB895X", + "29697": "AB895X", + "29698": "AB895X", + "29702": "AB895X", + "29703": "AB887X", + "29704": "AB887X", + "29706": "AB887X", + "29707": "AB887X", + "29708": "AB887X", + "29709": "AB891X", + "29710": "AB887X", + "29712": "AB887X", + "29714": "AB887X", + "29715": "AB887X", + "29716": "AB887X", + "29717": "AB887X", + "29718": "AB887X", + "29720": "AB887X", + "29721": "AB891X", + "29722": "AB891X", + "29724": "AB887X", + "29726": "AB887X", + "29727": "AB891X", + "29728": "AB891X", + "29729": "AB887X", + "29730": "AB887X", + "29731": "AB887X", + "29732": "AB887X", + "29733": "AB887X", + "29734": "AB887X", + "29741": "AB891X", + "29742": "AB895X", + "29743": "AB887X", + "29744": "AB887X", + "29745": "AB887X", + "29801": "AB891X", + "29802": "AB891X", + "29803": "AB891X", + "29804": "AB891X", + "29805": "AB891X", + "29808": "AB891X", + "29809": "AB891X", + "29810": "AB891X", + "29812": "AB891X", + "29813": "AB891X", + "29816": "AB891X", + "29817": "AB891X", + "29819": "AB895X", + "29821": "AB895X", + "29822": "AB891X", + "29824": "AB891X", + "29826": "AB891X", + "29827": "AB891X", + "29828": "AB891X", + "29829": "AB891X", + "29831": "AB891X", + "29832": "AB891X", + "29834": "AB891X", + "29835": "AB895X", + "29836": "AB891X", + "29838": "AB895X", + "29839": "AB891X", + "29840": "AB895X", + "29841": "AB891X", + "29842": "AB891X", + "29843": "AB891X", + "29844": "AB895X", + "29845": "AB895X", + "29846": "AB891X", + "29847": "AB891X", + "29848": "AB895X", + "29849": "AB891X", + "29850": "AB891X", + "29851": "AB891X", + "29853": "AB891X", + "29856": "AB891X", + "29860": "AB891X", + "29861": "AB891X", + "29899": "AB895X", + "29901": "AB891X", + "29902": "AB891X", + "29903": "AB891X", + "29904": "AB891X", + "29905": "AB891X", + "29906": "AB891X", + "29907": "AB891X", + "29909": "AB891X", + "29910": "AB891X", + "29911": "AB891X", + "29912": "AB891X", + "29913": "AB891X", + "29914": "AB891X", + "29915": "AB891X", + "29916": "AB891X", + "29918": "AB891X", + "29920": "AB891X", + "29921": "AB891X", + "29922": "AB891X", + "29923": "AB891X", + "29924": "AB891X", + "29925": "AB891X", + "29926": "AB891X", + "29927": "AB891X", + "29928": "AB891X", + "29929": "AB891X", + "29931": "AB891X", + "29932": "AB891X", + "29933": "AB891X", + "29934": "AB891X", + "29935": "AB891X", + "29936": "AB891X", + "29938": "AB891X", + "29939": "AB891X", + "29940": "AB891X", + "29941": "AB891X", + "29943": "AB891X", + "29944": "AB891X", + "29945": "AB891X", + "30002": "AB889X", + "30003": "AB889X", + "30004": "AB889X", + "30005": "AB889X", + "30006": "AB889X", + "30007": "AB889X", + "30008": "AB889X", + "30009": "AB889X", + "30010": "AB889X", + "30011": "AB889X", + "30012": "AB889X", + "30013": "AB889X", + "30014": "AB889X", + "30015": "AB889X", + "30016": "AB889X", + "30017": "AB889X", + "30018": "AB889X", + "30019": "AB889X", + "30021": "AB889X", + "30022": "AB889X", + "30023": "AB889X", + "30024": "AB889X", + "30025": "AB889X", + "30026": "AB889X", + "30028": "AB889X", + "30029": "AB889X", + "30030": "AB889X", + "30031": "AB889X", + "30032": "AB889X", + "30033": "AB889X", + "30034": "AB889X", + "30035": "AB889X", + "30036": "AB889X", + "30037": "AB889X", + "30038": "AB889X", + "30039": "AB889X", + "30040": "AB889X", + "30041": "AB889X", + "30042": "AB889X", + "30043": "AB889X", + "30044": "AB889X", + "30045": "AB889X", + "30046": "AB889X", + "30047": "AB889X", + "30048": "AB889X", + "30049": "AB889X", + "30052": "AB889X", + "30054": "AB889X", + "30055": "AB889X", + "30056": "AB889X", + "30058": "AB889X", + "30060": "AB889X", + "30061": "AB889X", + "30062": "AB889X", + "30063": "AB889X", + "30064": "AB889X", + "30065": "AB889X", + "30066": "AB889X", + "30067": "AB889X", + "30068": "AB887X", + "30069": "AB889X", + "30070": "AB889X", + "30071": "AB889X", + "30072": "AB889X", + "30073": "AB889X", + "30074": "AB889X", + "30075": "AB889X", + "30076": "AB889X", + "30077": "AB889X", + "30078": "AB889X", + "30079": "AB889X", + "30080": "AB889X", + "30081": "AB889X", + "30082": "AB889X", + "30083": "AB889X", + "30084": "AB889X", + "30085": "AB889X", + "30086": "AB889X", + "30087": "AB889X", + "30088": "AB889X", + "30090": "AB889X", + "30091": "AB889X", + "30092": "AB889X", + "30093": "AB889X", + "30094": "AB889X", + "30095": "AB889X", + "30096": "AB889X", + "30097": "AB889X", + "30098": "AB889X", + "30099": "AB889X", + "30101": "AB889X", + "30102": "AB889X", + "30103": "AB889X", + "30104": "AB889X", + "30105": "AB889X", + "30106": "AB889X", + "30107": "AB889X", + "30108": "AB889X", + "30109": "AB889X", + "30110": "AB889X", + "30111": "AB889X", + "30112": "AB889X", + "30113": "AB889X", + "30114": "AB889X", + "30115": "AB889X", + "30116": "AB889X", + "30117": "AB889X", + "30118": "AB889X", + "30119": "AB889X", + "30120": "AB889X", + "30121": "AB889X", + "30122": "AB889X", + "30123": "AB889X", + "30124": "AB889X", + "30125": "AB889X", + "30126": "AB889X", + "30127": "AB889X", + "30129": "AB889X", + "30132": "AB889X", + "30133": "AB889X", + "30134": "AB889X", + "30135": "AB889X", + "30137": "AB889X", + "30138": "AB889X", + "30139": "AB889X", + "30140": "AB889X", + "30141": "AB889X", + "30142": "AB889X", + "30143": "AB889X", + "30144": "AB889X", + "30145": "AB889X", + "30146": "AB889X", + "30147": "AB889X", + "30148": "AB889X", + "30149": "AB889X", + "30150": "AB889X", + "30151": "AB889X", + "30152": "AB889X", + "30153": "AB889X", + "30154": "AB889X", + "30156": "AB889X", + "30157": "AB889X", + "30160": "AB889X", + "30161": "AB889X", + "30162": "AB889X", + "30163": "AB889X", + "30164": "AB889X", + "30165": "AB889X", + "30168": "AB889X", + "30169": "AB889X", + "30170": "AB889X", + "30171": "AB889X", + "30172": "AB889X", + "30173": "AB889X", + "30175": "AB889X", + "30176": "AB889X", + "30177": "AB889X", + "30178": "AB889X", + "30179": "AB889X", + "30180": "AB889X", + "30182": "AB889X", + "30183": "AB889X", + "30184": "AB889X", + "30185": "AB889X", + "30187": "AB889X", + "30188": "AB889X", + "30189": "AB889X", + "30204": "AB889X", + "30205": "AB889X", + "30206": "AB889X", + "30212": "AB889X", + "30213": "AB889X", + "30214": "AB889X", + "30215": "AB889X", + "30216": "AB889X", + "30217": "AB889X", + "30218": "AB889X", + "30219": "AB889X", + "30220": "AB889X", + "30222": "AB889X", + "30223": "AB889X", + "30224": "AB889X", + "30228": "AB889X", + "30229": "AB889X", + "30230": "AB889X", + "30233": "AB889X", + "30234": "AB889X", + "30236": "AB889X", + "30237": "AB889X", + "30238": "AB889X", + "30240": "AB889X", + "30241": "AB889X", + "30248": "AB889X", + "30250": "AB889X", + "30251": "AB889X", + "30252": "AB889X", + "30253": "AB889X", + "30256": "AB889X", + "30257": "AB889X", + "30258": "AB889X", + "30259": "AB889X", + "30260": "AB889X", + "30261": "AB889X", + "30263": "AB889X", + "30264": "AB889X", + "30265": "AB889X", + "30266": "AB889X", + "30268": "AB889X", + "30269": "AB889X", + "30270": "AB889X", + "30271": "AB889X", + "30272": "AB889X", + "30273": "AB889X", + "30274": "AB889X", + "30275": "AB889X", + "30276": "AB889X", + "30277": "AB889X", + "30281": "AB889X", + "30284": "AB889X", + "30285": "AB889X", + "30286": "AB889X", + "30287": "AB889X", + "30288": "AB889X", + "30289": "AB889X", + "30290": "AB889X", + "30291": "AB889X", + "30292": "AB889X", + "30293": "AB889X", + "30294": "AB889X", + "30295": "AB889X", + "30296": "AB889X", + "30297": "AB889X", + "30298": "AB889X", + "30301": "AB889X", + "30302": "AB889X", + "30303": "AB889X", + "30304": "AB889X", + "30305": "AB889X", + "30306": "AB889X", + "30307": "AB889X", + "30308": "AB889X", + "30309": "AB889X", + "30310": "AB889X", + "30311": "AB889X", + "30312": "AB889X", + "30313": "AB889X", + "30314": "AB889X", + "30315": "AB889X", + "30316": "AB889X", + "30317": "AB889X", + "30318": "AB889X", + "30319": "AB889X", + "30320": "AB889X", + "30321": "AB889X", + "30322": "AB889X", + "30324": "AB889X", + "30325": "AB889X", + "30326": "AB889X", + "30327": "AB889X", + "30328": "AB889X", + "30329": "AB889X", + "30330": "AB889X", + "30331": "AB889X", + "30332": "AB889X", + "30333": "AB889X", + "30334": "AB889X", + "30336": "AB889X", + "30337": "AB889X", + "30338": "AB889X", + "30339": "AB889X", + "30340": "AB889X", + "30341": "AB889X", + "30342": "AB889X", + "30343": "AB889X", + "30344": "AB889X", + "30345": "AB889X", + "30346": "AB889X", + "30347": "AB889X", + "30348": "AB889X", + "30349": "AB889X", + "30350": "AB889X", + "30353": "AB889X", + "30354": "AB889X", + "30355": "AB889X", + "30356": "AB889X", + "30357": "AB889X", + "30358": "AB889X", + "30359": "AB889X", + "30360": "AB889X", + "30361": "AB889X", + "30362": "AB889X", + "30363": "AB889X", + "30364": "AB889X", + "30366": "AB889X", + "30368": "AB889X", + "30369": "AB889X", + "30370": "AB889X", + "30371": "AB889X", + "30374": "AB889X", + "30375": "AB889X", + "30376": "AB889X", + "30377": "AB889X", + "30378": "AB889X", + "30379": "AB889X", + "30380": "AB889X", + "30384": "AB889X", + "30385": "AB889X", + "30386": "AB889X", + "30387": "AB889X", + "30388": "AB889X", + "30389": "AB889X", + "30390": "AB889X", + "30392": "AB889X", + "30394": "AB889X", + "30396": "AB889X", + "30398": "AB889X", + "30399": "AB889X", + "30401": "AB891X", + "30410": "AB891X", + "30411": "AB891X", + "30412": "AB891X", + "30413": "AB891X", + "30414": "AB891X", + "30415": "AB891X", + "30417": "AB891X", + "30420": "AB891X", + "30421": "AB891X", + "30423": "AB891X", + "30424": "AB891X", + "30425": "AB891X", + "30426": "AB891X", + "30427": "AB891X", + "30428": "AB891X", + "30429": "AB891X", + "30434": "AB891X", + "30436": "AB891X", + "30438": "AB891X", + "30439": "AB891X", + "30441": "AB891X", + "30442": "AB891X", + "30445": "AB891X", + "30446": "AB891X", + "30447": "AB891X", + "30448": "AB891X", + "30449": "AB891X", + "30450": "AB891X", + "30451": "AB891X", + "30452": "AB891X", + "30453": "AB891X", + "30454": "AB891X", + "30455": "AB891X", + "30456": "AB891X", + "30457": "AB891X", + "30458": "AB891X", + "30459": "AB891X", + "30460": "AB891X", + "30461": "AB891X", + "30464": "AB891X", + "30467": "AB891X", + "30470": "AB891X", + "30471": "AB891X", + "30473": "AB891X", + "30474": "AB891X", + "30475": "AB891X", + "30477": "AB891X", + "30499": "AB891X", + "30501": "AB889X", + "30502": "AB889X", + "30503": "AB889X", + "30504": "AB889X", + "30506": "AB889X", + "30507": "AB889X", + "30510": "AB889X", + "30511": "AB889X", + "30512": "AB889X", + "30513": "AB889X", + "30514": "AB889X", + "30515": "AB889X", + "30516": "AB895X", + "30517": "AB889X", + "30518": "AB889X", + "30519": "AB889X", + "30520": "AB895X", + "30521": "AB895X", + "30522": "AB889X", + "30523": "AB889X", + "30525": "AB889X", + "30527": "AB889X", + "30528": "AB889X", + "30529": "AB889X", + "30530": "AB889X", + "30531": "AB889X", + "30533": "AB889X", + "30534": "AB889X", + "30535": "AB889X", + "30536": "AB889X", + "30537": "AB889X", + "30538": "AB895X", + "30539": "AB889X", + "30540": "AB889X", + "30541": "AB889X", + "30542": "AB889X", + "30543": "AB889X", + "30544": "AB889X", + "30545": "AB889X", + "30546": "AB889X", + "30547": "AB889X", + "30548": "AB889X", + "30549": "AB889X", + "30552": "AB889X", + "30553": "AB895X", + "30554": "AB889X", + "30555": "AB888X", + "30557": "AB895X", + "30558": "AB889X", + "30559": "AB889X", + "30560": "AB889X", + "30562": "AB889X", + "30563": "AB889X", + "30564": "AB889X", + "30565": "AB889X", + "30566": "AB889X", + "30567": "AB889X", + "30568": "AB889X", + "30571": "AB889X", + "30572": "AB889X", + "30573": "AB889X", + "30575": "AB889X", + "30576": "AB889X", + "30577": "AB895X", + "30580": "AB889X", + "30581": "AB889X", + "30582": "AB889X", + "30596": "AB889X", + "30597": "AB889X", + "30598": "AB895X", + "30599": "AB889X", + "30601": "AB889X", + "30602": "AB889X", + "30603": "AB889X", + "30604": "AB889X", + "30605": "AB889X", + "30606": "AB889X", + "30607": "AB889X", + "30608": "AB889X", + "30609": "AB889X", + "30612": "AB889X", + "30619": "AB889X", + "30620": "AB889X", + "30621": "AB889X", + "30622": "AB889X", + "30623": "AB889X", + "30624": "AB895X", + "30625": "AB889X", + "30627": "AB895X", + "30628": "AB895X", + "30629": "AB895X", + "30630": "AB889X", + "30631": "AB889X", + "30633": "AB895X", + "30634": "AB895X", + "30635": "AB895X", + "30638": "AB889X", + "30639": "AB895X", + "30641": "AB889X", + "30642": "AB889X", + "30643": "AB895X", + "30645": "AB889X", + "30646": "AB895X", + "30647": "AB895X", + "30648": "AB889X", + "30650": "AB889X", + "30655": "AB889X", + "30656": "AB889X", + "30660": "AB895X", + "30662": "AB895X", + "30663": "AB889X", + "30664": "AB889X", + "30665": "AB889X", + "30666": "AB889X", + "30667": "AB889X", + "30668": "AB895X", + "30669": "AB889X", + "30671": "AB889X", + "30673": "AB895X", + "30677": "AB889X", + "30678": "AB889X", + "30680": "AB889X", + "30683": "AB889X", + "30701": "AB889X", + "30703": "AB889X", + "30705": "AB888X", + "30707": "AB888X", + "30708": "AB888X", + "30710": "AB888X", + "30711": "AB888X", + "30719": "AB888X", + "30720": "AB888X", + "30721": "AB888X", + "30722": "AB888X", + "30724": "AB888X", + "30725": "AB888X", + "30726": "AB888X", + "30728": "AB888X", + "30730": "AB888X", + "30731": "AB888X", + "30732": "AB889X", + "30733": "AB889X", + "30734": "AB889X", + "30735": "AB888X", + "30736": "AB888X", + "30738": "AB888X", + "30739": "AB888X", + "30740": "AB888X", + "30741": "AB888X", + "30742": "AB888X", + "30746": "AB889X", + "30747": "AB888X", + "30750": "AB888X", + "30751": "AB888X", + "30752": "AB888X", + "30753": "AB888X", + "30755": "AB888X", + "30756": "AB888X", + "30757": "AB888X", + "30802": "AB891X", + "30803": "AB891X", + "30805": "AB891X", + "30806": "AB891X", + "30807": "AB891X", + "30808": "AB891X", + "30809": "AB891X", + "30810": "AB891X", + "30811": "AB891X", + "30812": "AB891X", + "30813": "AB891X", + "30814": "AB891X", + "30815": "AB891X", + "30816": "AB891X", + "30817": "AB891X", + "30818": "AB891X", + "30819": "AB891X", + "30820": "AB891X", + "30821": "AB891X", + "30822": "AB891X", + "30823": "AB891X", + "30824": "AB891X", + "30828": "AB891X", + "30830": "AB891X", + "30833": "AB891X", + "30901": "AB891X", + "30903": "AB891X", + "30904": "AB891X", + "30905": "AB891X", + "30906": "AB891X", + "30907": "AB891X", + "30909": "AB891X", + "30911": "AB891X", + "30912": "AB891X", + "30913": "AB891X", + "30914": "AB891X", + "30916": "AB891X", + "30917": "AB891X", + "30919": "AB891X", + "30999": "AB891X", + "31001": "AB891X", + "31002": "AB891X", + "31003": "AB891X", + "31004": "AB891X", + "31005": "AB891X", + "31006": "AB890X", + "31007": "AB891X", + "31008": "AB891X", + "31009": "AB891X", + "31010": "AB891X", + "31011": "AB891X", + "31012": "AB891X", + "31013": "AB891X", + "31014": "AB891X", + "31015": "AB891X", + "31016": "AB891X", + "31017": "AB891X", + "31018": "AB891X", + "31019": "AB891X", + "31020": "AB891X", + "31021": "AB891X", + "31022": "AB891X", + "31023": "AB891X", + "31024": "AB889X", + "31025": "AB891X", + "31026": "AB889X", + "31027": "AB891X", + "31028": "AB891X", + "31029": "AB891X", + "31030": "AB891X", + "31031": "AB891X", + "31032": "AB891X", + "31033": "AB891X", + "31034": "AB891X", + "31035": "AB891X", + "31036": "AB891X", + "31037": "AB891X", + "31038": "AB891X", + "31039": "AB891X", + "31040": "AB891X", + "31041": "AB891X", + "31042": "AB891X", + "31044": "AB891X", + "31045": "AB891X", + "31046": "AB891X", + "31047": "AB891X", + "31049": "AB891X", + "31050": "AB891X", + "31051": "AB891X", + "31052": "AB891X", + "31054": "AB891X", + "31055": "AB891X", + "31057": "AB891X", + "31058": "AB890X", + "31059": "AB891X", + "31060": "AB891X", + "31061": "AB891X", + "31062": "AB891X", + "31063": "AB891X", + "31064": "AB891X", + "31065": "AB891X", + "31066": "AB891X", + "31067": "AB891X", + "31068": "AB891X", + "31069": "AB891X", + "31070": "AB891X", + "31071": "AB891X", + "31072": "AB891X", + "31075": "AB891X", + "31076": "AB891X", + "31077": "AB891X", + "31078": "AB891X", + "31079": "AB891X", + "31081": "AB891X", + "31082": "AB891X", + "31083": "AB891X", + "31084": "AB891X", + "31085": "AB889X", + "31086": "AB891X", + "31087": "AB891X", + "31088": "AB891X", + "31089": "AB891X", + "31090": "AB891X", + "31091": "AB891X", + "31092": "AB891X", + "31093": "AB891X", + "31094": "AB891X", + "31095": "AB891X", + "31096": "AB891X", + "31097": "AB889X", + "31098": "AB891X", + "31099": "AB891X", + "31106": "AB889X", + "31107": "AB889X", + "31119": "AB889X", + "31120": "AB889X", + "31126": "AB889X", + "31131": "AB889X", + "31136": "AB889X", + "31139": "AB889X", + "31141": "AB889X", + "31145": "AB889X", + "31146": "AB889X", + "31150": "AB889X", + "31156": "AB889X", + "31191": "AB889X", + "31192": "AB889X", + "31193": "AB889X", + "31195": "AB889X", + "31196": "AB889X", + "31197": "AB889X", + "31198": "AB889X", + "31199": "AB889X", + "31201": "AB891X", + "31202": "AB891X", + "31203": "AB891X", + "31204": "AB891X", + "31205": "AB891X", + "31206": "AB891X", + "31207": "AB891X", + "31208": "AB891X", + "31209": "AB891X", + "31210": "AB891X", + "31211": "AB891X", + "31212": "AB891X", + "31213": "AB891X", + "31216": "AB891X", + "31217": "AB891X", + "31220": "AB891X", + "31221": "AB891X", + "31255": "AB900X", + "31294": "AB891X", + "31295": "AB891X", + "31296": "AB891X", + "31297": "AB891X", + "31301": "AB891X", + "31302": "AB891X", + "31303": "AB891X", + "31304": "AB888X", + "31305": "AB888X", + "31307": "AB891X", + "31308": "AB891X", + "31309": "AB891X", + "31310": "AB891X", + "31312": "AB891X", + "31313": "AB891X", + "31314": "AB891X", + "31315": "AB891X", + "31316": "AB891X", + "31318": "AB891X", + "31319": "AB888X", + "31320": "AB891X", + "31321": "AB891X", + "31322": "AB891X", + "31323": "AB891X", + "31324": "AB891X", + "31326": "AB891X", + "31327": "AB888X", + "31328": "AB891X", + "31329": "AB891X", + "31331": "AB888X", + "31333": "AB891X", + "31401": "AB891X", + "31402": "AB891X", + "31403": "AB891X", + "31404": "AB891X", + "31405": "AB891X", + "31406": "AB891X", + "31407": "AB891X", + "31408": "AB891X", + "31409": "AB891X", + "31410": "AB891X", + "31411": "AB891X", + "31412": "AB891X", + "31414": "AB891X", + "31415": "AB891X", + "31416": "AB891X", + "31418": "AB891X", + "31419": "AB891X", + "31420": "AB891X", + "31421": "AB891X", + "31501": "AB888X", + "31502": "AB888X", + "31503": "AB888X", + "31510": "AB891X", + "31512": "AB891X", + "31513": "AB891X", + "31515": "AB891X", + "31516": "AB888X", + "31518": "AB888X", + "31519": "AB891X", + "31520": "AB888X", + "31521": "AB888X", + "31522": "AB888X", + "31523": "AB888X", + "31524": "AB888X", + "31525": "AB888X", + "31527": "AB888X", + "31532": "AB891X", + "31533": "AB891X", + "31534": "AB891X", + "31535": "AB891X", + "31537": "AB888X", + "31539": "AB891X", + "31542": "AB891X", + "31543": "AB888X", + "31544": "AB891X", + "31545": "AB891X", + "31546": "AB891X", + "31547": "AB888X", + "31548": "AB888X", + "31549": "AB891X", + "31550": "AB888X", + "31551": "AB888X", + "31552": "AB888X", + "31553": "AB888X", + "31554": "AB891X", + "31555": "AB891X", + "31556": "AB888X", + "31557": "AB891X", + "31558": "AB888X", + "31560": "AB891X", + "31561": "AB888X", + "31562": "AB888X", + "31563": "AB891X", + "31564": "AB888X", + "31565": "AB888X", + "31566": "AB888X", + "31567": "AB891X", + "31568": "AB888X", + "31569": "AB888X", + "31598": "AB891X", + "31599": "AB891X", + "31601": "AB891X", + "31602": "AB891X", + "31603": "AB891X", + "31604": "AB891X", + "31605": "AB891X", + "31606": "AB891X", + "31620": "AB891X", + "31622": "AB891X", + "31623": "AB891X", + "31624": "AB891X", + "31625": "AB891X", + "31626": "AB891X", + "31627": "AB891X", + "31629": "AB891X", + "31630": "AB891X", + "31631": "AB891X", + "31632": "AB891X", + "31634": "AB891X", + "31635": "AB891X", + "31636": "AB891X", + "31637": "AB891X", + "31638": "AB891X", + "31639": "AB891X", + "31641": "AB891X", + "31642": "AB891X", + "31643": "AB891X", + "31645": "AB891X", + "31647": "AB891X", + "31648": "AB891X", + "31649": "AB891X", + "31650": "AB891X", + "31698": "AB891X", + "31699": "AB891X", + "31701": "AB891X", + "31702": "AB891X", + "31703": "AB891X", + "31704": "AB891X", + "31705": "AB891X", + "31706": "AB891X", + "31707": "AB891X", + "31708": "AB891X", + "31709": "AB891X", + "31710": "AB891X", + "31711": "AB891X", + "31712": "AB891X", + "31714": "AB891X", + "31716": "AB891X", + "31719": "AB891X", + "31720": "AB891X", + "31721": "AB891X", + "31722": "AB891X", + "31723": "AB890X", + "31727": "AB891X", + "31730": "AB891X", + "31733": "AB891X", + "31735": "AB891X", + "31738": "AB891X", + "31739": "AB891X", + "31743": "AB891X", + "31744": "AB891X", + "31747": "AB891X", + "31749": "AB891X", + "31750": "AB891X", + "31753": "AB891X", + "31756": "AB891X", + "31757": "AB891X", + "31758": "AB891X", + "31760": "AB891X", + "31763": "AB891X", + "31764": "AB891X", + "31765": "AB891X", + "31768": "AB891X", + "31769": "AB891X", + "31771": "AB891X", + "31772": "AB891X", + "31773": "AB891X", + "31774": "AB891X", + "31775": "AB891X", + "31776": "AB891X", + "31778": "AB891X", + "31779": "AB891X", + "31780": "AB891X", + "31781": "AB891X", + "31782": "AB891X", + "31783": "AB891X", + "31784": "AB891X", + "31787": "AB891X", + "31788": "AB891X", + "31789": "AB891X", + "31790": "AB891X", + "31791": "AB891X", + "31792": "AB891X", + "31793": "AB891X", + "31794": "AB891X", + "31795": "AB891X", + "31796": "AB891X", + "31798": "AB891X", + "31799": "AB891X", + "31801": "AB890X", + "31803": "AB890X", + "31804": "AB890X", + "31805": "AB890X", + "31806": "AB891X", + "31807": "AB890X", + "31808": "AB890X", + "31810": "AB890X", + "31811": "AB890X", + "31812": "AB890X", + "31814": "AB890X", + "31815": "AB890X", + "31816": "AB890X", + "31820": "AB890X", + "31821": "AB890X", + "31822": "AB889X", + "31823": "AB890X", + "31824": "AB890X", + "31825": "AB890X", + "31826": "AB890X", + "31827": "AB890X", + "31829": "AB890X", + "31830": "AB890X", + "31831": "AB890X", + "31832": "AB890X", + "31833": "AB889X", + "31836": "AB890X", + "31901": "AB890X", + "31902": "AB890X", + "31903": "AB890X", + "31904": "AB890X", + "31905": "AB890X", + "31906": "AB890X", + "31907": "AB890X", + "31908": "AB890X", + "31909": "AB890X", + "31914": "AB890X", + "31917": "AB890X", + "31993": "AB890X", + "31995": "AB890X", + "31997": "AB890X", + "31998": "AB890X", + "31999": "AB890X", + "32003": "AB888X", + "32004": "AB888X", + "32006": "AB888X", + "32007": "AB888X", + "32008": "AB888X", + "32009": "AB888X", + "32011": "AB888X", + "32013": "AB888X", + "32024": "AB888X", + "32025": "AB888X", + "32026": "AB888X", + "32030": "AB888X", + "32033": "AB888X", + "32034": "AB888X", + "32035": "AB888X", + "32038": "AB888X", + "32040": "AB888X", + "32041": "AB888X", + "32042": "AB888X", + "32043": "AB888X", + "32044": "AB888X", + "32046": "AB888X", + "32050": "AB888X", + "32052": "AB888X", + "32053": "AB888X", + "32054": "AB888X", + "32055": "AB888X", + "32056": "AB888X", + "32058": "AB888X", + "32059": "AB891X", + "32060": "AB888X", + "32061": "AB888X", + "32062": "AB888X", + "32063": "AB888X", + "32064": "AB888X", + "32065": "AB888X", + "32066": "AB888X", + "32067": "AB888X", + "32068": "AB888X", + "32071": "AB888X", + "32072": "AB888X", + "32073": "AB888X", + "32079": "AB888X", + "32080": "AB888X", + "32081": "AB888X", + "32082": "AB888X", + "32083": "AB888X", + "32084": "AB888X", + "32085": "AB888X", + "32086": "AB888X", + "32087": "AB888X", + "32091": "AB888X", + "32092": "AB888X", + "32094": "AB888X", + "32095": "AB888X", + "32096": "AB888X", + "32097": "AB888X", + "32099": "AB888X", + "32102": "AB890X", + "32105": "AB890X", + "32110": "AB890X", + "32111": "AB890X", + "32112": "AB888X", + "32113": "AB890X", + "32114": "AB890X", + "32115": "AB890X", + "32116": "AB890X", + "32117": "AB890X", + "32118": "AB890X", + "32119": "AB890X", + "32120": "AB890X", + "32121": "AB890X", + "32122": "AB890X", + "32123": "AB890X", + "32124": "AB890X", + "32125": "AB890X", + "32126": "AB890X", + "32127": "AB890X", + "32128": "AB890X", + "32129": "AB890X", + "32130": "AB890X", + "32131": "AB888X", + "32132": "AB890X", + "32133": "AB890X", + "32134": "AB890X", + "32135": "AB890X", + "32136": "AB890X", + "32137": "AB890X", + "32138": "AB888X", + "32139": "AB888X", + "32140": "AB888X", + "32141": "AB890X", + "32142": "AB890X", + "32145": "AB888X", + "32147": "AB888X", + "32148": "AB888X", + "32149": "AB888X", + "32157": "AB888X", + "32158": "AB890X", + "32159": "AB890X", + "32160": "AB888X", + "32162": "AB890X", + "32163": "AB890X", + "32164": "AB890X", + "32168": "AB890X", + "32169": "AB890X", + "32170": "AB890X", + "32173": "AB890X", + "32174": "AB890X", + "32175": "AB890X", + "32176": "AB890X", + "32177": "AB888X", + "32178": "AB888X", + "32179": "AB890X", + "32180": "AB890X", + "32181": "AB888X", + "32182": "AB890X", + "32183": "AB890X", + "32185": "AB888X", + "32187": "AB888X", + "32189": "AB888X", + "32190": "AB890X", + "32192": "AB890X", + "32193": "AB888X", + "32195": "AB890X", + "32198": "AB890X", + "32201": "AB888X", + "32202": "AB888X", + "32203": "AB888X", + "32204": "AB888X", + "32205": "AB888X", + "32206": "AB888X", + "32207": "AB888X", + "32208": "AB888X", + "32209": "AB888X", + "32210": "AB888X", + "32211": "AB888X", + "32212": "AB888X", + "32214": "AB888X", + "32215": "AB888X", + "32216": "AB888X", + "32217": "AB888X", + "32218": "AB888X", + "32219": "AB888X", + "32220": "AB888X", + "32221": "AB888X", + "32222": "AB888X", + "32223": "AB888X", + "32224": "AB888X", + "32225": "AB888X", + "32226": "AB888X", + "32227": "AB888X", + "32228": "AB888X", + "32229": "AB888X", + "32230": "AB888X", + "32231": "AB888X", + "32232": "AB888X", + "32233": "AB888X", + "32234": "AB888X", + "32235": "AB888X", + "32236": "AB888X", + "32237": "AB888X", + "32238": "AB888X", + "32239": "AB888X", + "32240": "AB888X", + "32241": "AB888X", + "32244": "AB888X", + "32245": "AB888X", + "32246": "AB888X", + "32247": "AB888X", + "32250": "AB888X", + "32254": "AB888X", + "32255": "AB888X", + "32256": "AB888X", + "32257": "AB888X", + "32258": "AB888X", + "32259": "AB888X", + "32260": "AB888X", + "32266": "AB888X", + "32267": "AB888X", + "32277": "AB888X", + "32290": "AB888X", + "32301": "AB891X", + "32302": "AB891X", + "32303": "AB891X", + "32304": "AB891X", + "32305": "AB891X", + "32306": "AB891X", + "32307": "AB891X", + "32308": "AB891X", + "32309": "AB891X", + "32310": "AB891X", + "32311": "AB891X", + "32312": "AB891X", + "32313": "AB891X", + "32314": "AB891X", + "32315": "AB891X", + "32316": "AB891X", + "32317": "AB891X", + "32318": "AB891X", + "32320": "AB890X", + "32321": "AB891X", + "32322": "AB891X", + "32323": "AB891X", + "32324": "AB891X", + "32326": "AB891X", + "32327": "AB891X", + "32328": "AB891X", + "32329": "AB891X", + "32330": "AB891X", + "32331": "AB891X", + "32332": "AB891X", + "32333": "AB891X", + "32334": "AB891X", + "32335": "AB891X", + "32336": "AB891X", + "32337": "AB891X", + "32340": "AB891X", + "32341": "AB891X", + "32343": "AB891X", + "32344": "AB891X", + "32345": "AB891X", + "32346": "AB891X", + "32347": "AB891X", + "32348": "AB891X", + "32350": "AB891X", + "32351": "AB891X", + "32352": "AB891X", + "32353": "AB891X", + "32355": "AB891X", + "32356": "AB891X", + "32357": "AB891X", + "32358": "AB891X", + "32359": "AB891X", + "32360": "AB891X", + "32361": "AB891X", + "32362": "AB891X", + "32395": "AB891X", + "32399": "AB891X", + "32401": "AB890X", + "32402": "AB890X", + "32403": "AB890X", + "32404": "AB890X", + "32405": "AB890X", + "32406": "AB890X", + "32407": "AB890X", + "32408": "AB890X", + "32409": "AB890X", + "32410": "AB890X", + "32411": "AB890X", + "32412": "AB890X", + "32413": "AB890X", + "32417": "AB890X", + "32420": "AB890X", + "32421": "AB890X", + "32422": "AB890X", + "32423": "AB890X", + "32424": "AB890X", + "32425": "AB890X", + "32426": "AB890X", + "32427": "AB890X", + "32428": "AB890X", + "32430": "AB890X", + "32431": "AB890X", + "32432": "AB890X", + "32433": "AB890X", + "32434": "AB889X", + "32435": "AB890X", + "32437": "AB890X", + "32438": "AB890X", + "32439": "AB889X", + "32440": "AB890X", + "32442": "AB890X", + "32443": "AB890X", + "32444": "AB890X", + "32445": "AB890X", + "32446": "AB890X", + "32447": "AB890X", + "32448": "AB890X", + "32449": "AB890X", + "32452": "AB890X", + "32454": "AB890X", + "32455": "AB890X", + "32456": "AB890X", + "32457": "AB890X", + "32459": "AB889X", + "32460": "AB890X", + "32461": "AB890X", + "32462": "AB890X", + "32463": "AB890X", + "32464": "AB890X", + "32465": "AB890X", + "32466": "AB890X", + "32501": "AB889X", + "32502": "AB889X", + "32503": "AB889X", + "32504": "AB889X", + "32505": "AB889X", + "32506": "AB889X", + "32507": "AB889X", + "32508": "AB889X", + "32509": "AB889X", + "32511": "AB889X", + "32512": "AB889X", + "32513": "AB889X", + "32514": "AB889X", + "32516": "AB889X", + "32520": "AB889X", + "32521": "AB889X", + "32522": "AB889X", + "32523": "AB889X", + "32524": "AB889X", + "32526": "AB889X", + "32530": "AB889X", + "32531": "AB889X", + "32533": "AB889X", + "32534": "AB889X", + "32535": "AB889X", + "32536": "AB889X", + "32537": "AB889X", + "32538": "AB890X", + "32539": "AB889X", + "32540": "AB889X", + "32541": "AB889X", + "32542": "AB889X", + "32544": "AB889X", + "32547": "AB889X", + "32548": "AB889X", + "32549": "AB889X", + "32550": "AB889X", + "32559": "AB889X", + "32560": "AB889X", + "32561": "AB889X", + "32562": "AB889X", + "32563": "AB889X", + "32564": "AB889X", + "32565": "AB889X", + "32566": "AB889X", + "32567": "AB889X", + "32568": "AB889X", + "32569": "AB889X", + "32570": "AB889X", + "32571": "AB889X", + "32572": "AB889X", + "32574": "AB889X", + "32577": "AB889X", + "32578": "AB889X", + "32579": "AB889X", + "32580": "AB889X", + "32583": "AB889X", + "32588": "AB889X", + "32590": "AB889X", + "32591": "AB889X", + "32592": "AB889X", + "32601": "AB888X", + "32602": "AB888X", + "32603": "AB888X", + "32604": "AB888X", + "32605": "AB888X", + "32606": "AB888X", + "32607": "AB888X", + "32608": "AB888X", + "32609": "AB888X", + "32610": "AB888X", + "32611": "AB888X", + "32612": "AB888X", + "32613": "AB888X", + "32614": "AB888X", + "32615": "AB888X", + "32616": "AB888X", + "32617": "AB890X", + "32618": "AB888X", + "32619": "AB888X", + "32621": "AB888X", + "32622": "AB888X", + "32625": "AB888X", + "32626": "AB888X", + "32627": "AB888X", + "32628": "AB888X", + "32631": "AB888X", + "32633": "AB888X", + "32634": "AB890X", + "32635": "AB888X", + "32639": "AB888X", + "32640": "AB888X", + "32641": "AB888X", + "32643": "AB888X", + "32644": "AB888X", + "32648": "AB888X", + "32653": "AB888X", + "32654": "AB888X", + "32655": "AB888X", + "32656": "AB888X", + "32658": "AB888X", + "32662": "AB888X", + "32663": "AB890X", + "32664": "AB888X", + "32666": "AB888X", + "32667": "AB888X", + "32668": "AB888X", + "32669": "AB888X", + "32680": "AB888X", + "32681": "AB890X", + "32683": "AB888X", + "32686": "AB890X", + "32692": "AB888X", + "32693": "AB888X", + "32694": "AB888X", + "32696": "AB888X", + "32697": "AB888X", + "32701": "AB890X", + "32702": "AB890X", + "32703": "AB890X", + "32704": "AB890X", + "32706": "AB890X", + "32707": "AB890X", + "32708": "AB890X", + "32709": "AB890X", + "32710": "AB890X", + "32712": "AB890X", + "32713": "AB890X", + "32714": "AB890X", + "32715": "AB890X", + "32716": "AB890X", + "32718": "AB890X", + "32719": "AB890X", + "32720": "AB890X", + "32721": "AB890X", + "32722": "AB890X", + "32723": "AB890X", + "32724": "AB890X", + "32725": "AB890X", + "32726": "AB890X", + "32727": "AB890X", + "32728": "AB890X", + "32730": "AB890X", + "32732": "AB890X", + "32733": "AB890X", + "32735": "AB890X", + "32736": "AB890X", + "32738": "AB890X", + "32739": "AB890X", + "32744": "AB890X", + "32745": "AB890X", + "32746": "AB890X", + "32747": "AB890X", + "32750": "AB890X", + "32751": "AB890X", + "32752": "AB890X", + "32753": "AB890X", + "32754": "AB890X", + "32756": "AB890X", + "32757": "AB890X", + "32759": "AB890X", + "32762": "AB890X", + "32763": "AB890X", + "32764": "AB890X", + "32765": "AB890X", + "32766": "AB890X", + "32767": "AB890X", + "32768": "AB890X", + "32771": "AB890X", + "32772": "AB890X", + "32773": "AB890X", + "32774": "AB890X", + "32775": "AB890X", + "32776": "AB890X", + "32777": "AB890X", + "32778": "AB890X", + "32779": "AB890X", + "32780": "AB890X", + "32781": "AB890X", + "32782": "AB890X", + "32783": "AB890X", + "32784": "AB890X", + "32789": "AB890X", + "32790": "AB890X", + "32791": "AB890X", + "32792": "AB890X", + "32793": "AB890X", + "32794": "AB890X", + "32795": "AB890X", + "32796": "AB890X", + "32798": "AB890X", + "32799": "AB890X", + "32801": "AB890X", + "32802": "AB890X", + "32803": "AB890X", + "32804": "AB890X", + "32805": "AB890X", + "32806": "AB890X", + "32807": "AB890X", + "32808": "AB890X", + "32809": "AB890X", + "32810": "AB890X", + "32811": "AB890X", + "32812": "AB890X", + "32814": "AB890X", + "32815": "AB890X", + "32816": "AB890X", + "32817": "AB890X", + "32818": "AB890X", + "32819": "AB890X", + "32820": "AB890X", + "32821": "AB890X", + "32822": "AB890X", + "32824": "AB890X", + "32825": "AB890X", + "32826": "AB890X", + "32827": "AB890X", + "32828": "AB890X", + "32829": "AB890X", + "32830": "AB890X", + "32831": "AB890X", + "32832": "AB890X", + "32833": "AB890X", + "32834": "AB890X", + "32835": "AB890X", + "32836": "AB890X", + "32837": "AB890X", + "32839": "AB890X", + "32853": "AB890X", + "32854": "AB890X", + "32855": "AB890X", + "32856": "AB890X", + "32857": "AB890X", + "32858": "AB890X", + "32859": "AB890X", + "32860": "AB890X", + "32861": "AB890X", + "32862": "AB890X", + "32867": "AB890X", + "32868": "AB890X", + "32869": "AB890X", + "32872": "AB890X", + "32877": "AB890X", + "32878": "AB890X", + "32885": "AB890X", + "32886": "AB890X", + "32887": "AB890X", + "32890": "AB890X", + "32891": "AB890X", + "32893": "AB890X", + "32896": "AB890X", + "32897": "AB890X", + "32898": "AB890X", + "32899": "AB890X", + "32901": "AB890X", + "32902": "AB890X", + "32903": "AB890X", + "32904": "AB890X", + "32905": "AB890X", + "32906": "AB890X", + "32907": "AB890X", + "32908": "AB890X", + "32909": "AB890X", + "32910": "AB890X", + "32911": "AB890X", + "32912": "AB890X", + "32919": "AB890X", + "32920": "AB890X", + "32922": "AB890X", + "32923": "AB890X", + "32924": "AB890X", + "32925": "AB890X", + "32926": "AB890X", + "32927": "AB890X", + "32931": "AB890X", + "32932": "AB890X", + "32934": "AB890X", + "32935": "AB890X", + "32936": "AB890X", + "32937": "AB890X", + "32940": "AB890X", + "32941": "AB890X", + "32948": "AB892X", + "32949": "AB890X", + "32950": "AB890X", + "32951": "AB890X", + "32952": "AB890X", + "32953": "AB890X", + "32954": "AB890X", + "32955": "AB890X", + "32956": "AB890X", + "32957": "AB892X", + "32958": "AB892X", + "32959": "AB890X", + "32960": "AB892X", + "32961": "AB892X", + "32962": "AB892X", + "32963": "AB892X", + "32964": "AB892X", + "32965": "AB892X", + "32966": "AB892X", + "32967": "AB892X", + "32968": "AB892X", + "32969": "AB892X", + "32970": "AB892X", + "32971": "AB892X", + "32976": "AB892X", + "32978": "AB892X", + "33001": "AB889X", + "33002": "AB889X", + "33004": "AB889X", + "33008": "AB889X", + "33009": "AB889X", + "33010": "AB889X", + "33011": "AB889X", + "33012": "AB889X", + "33013": "AB889X", + "33014": "AB889X", + "33015": "AB889X", + "33016": "AB889X", + "33017": "AB889X", + "33018": "AB889X", + "33019": "AB889X", + "33020": "AB889X", + "33021": "AB889X", + "33022": "AB889X", + "33023": "AB889X", + "33024": "AB889X", + "33025": "AB889X", + "33026": "AB889X", + "33027": "AB889X", + "33028": "AB889X", + "33029": "AB889X", + "33030": "AB889X", + "33031": "AB889X", + "33032": "AB889X", + "33033": "AB889X", + "33034": "AB889X", + "33035": "AB889X", + "33036": "AB889X", + "33037": "AB889X", + "33039": "AB889X", + "33040": "AB889X", + "33041": "AB889X", + "33042": "AB889X", + "33043": "AB889X", + "33045": "AB889X", + "33050": "AB889X", + "33051": "AB889X", + "33052": "AB889X", + "33054": "AB889X", + "33055": "AB889X", + "33056": "AB889X", + "33060": "AB889X", + "33061": "AB889X", + "33062": "AB889X", + "33063": "AB889X", + "33064": "AB889X", + "33065": "AB889X", + "33066": "AB889X", + "33067": "AB889X", + "33068": "AB889X", + "33069": "AB889X", + "33070": "AB889X", + "33071": "AB889X", + "33072": "AB889X", + "33073": "AB889X", + "33074": "AB889X", + "33075": "AB889X", + "33076": "AB889X", + "33077": "AB889X", + "33081": "AB889X", + "33082": "AB889X", + "33083": "AB889X", + "33084": "AB889X", + "33090": "AB889X", + "33092": "AB889X", + "33093": "AB889X", + "33097": "AB889X", + "33101": "AB889X", + "33102": "AB889X", + "33107": "AB889X", + "33109": "AB889X", + "33110": "AB889X", + "33111": "AB889X", + "33112": "AB889X", + "33114": "AB889X", + "33116": "AB889X", + "33119": "AB889X", + "33121": "AB889X", + "33122": "AB889X", + "33124": "AB889X", + "33125": "AB889X", + "33126": "AB889X", + "33127": "AB889X", + "33128": "AB889X", + "33129": "AB889X", + "33130": "AB889X", + "33131": "AB889X", + "33132": "AB889X", + "33133": "AB889X", + "33134": "AB889X", + "33135": "AB889X", + "33136": "AB889X", + "33137": "AB889X", + "33138": "AB889X", + "33139": "AB889X", + "33140": "AB889X", + "33141": "AB889X", + "33142": "AB889X", + "33143": "AB889X", + "33144": "AB889X", + "33145": "AB889X", + "33146": "AB889X", + "33147": "AB889X", + "33148": "AB889X", + "33149": "AB889X", + "33150": "AB889X", + "33151": "AB889X", + "33152": "AB889X", + "33153": "AB889X", + "33154": "AB889X", + "33155": "AB889X", + "33156": "AB889X", + "33157": "AB889X", + "33158": "AB889X", + "33159": "AB889X", + "33160": "AB889X", + "33161": "AB889X", + "33162": "AB889X", + "33163": "AB889X", + "33164": "AB889X", + "33165": "AB889X", + "33166": "AB889X", + "33167": "AB889X", + "33168": "AB889X", + "33169": "AB889X", + "33170": "AB889X", + "33172": "AB889X", + "33173": "AB889X", + "33174": "AB889X", + "33175": "AB889X", + "33176": "AB889X", + "33177": "AB889X", + "33178": "AB889X", + "33179": "AB889X", + "33180": "AB889X", + "33181": "AB889X", + "33182": "AB889X", + "33183": "AB889X", + "33184": "AB889X", + "33185": "AB889X", + "33186": "AB889X", + "33187": "AB889X", + "33188": "AB889X", + "33189": "AB889X", + "33190": "AB889X", + "33193": "AB889X", + "33194": "AB889X", + "33195": "AB889X", + "33196": "AB889X", + "33197": "AB889X", + "33199": "AB889X", + "33231": "AB889X", + "33233": "AB889X", + "33234": "AB889X", + "33238": "AB889X", + "33239": "AB889X", + "33242": "AB889X", + "33243": "AB889X", + "33245": "AB889X", + "33247": "AB889X", + "33255": "AB889X", + "33256": "AB889X", + "33257": "AB889X", + "33261": "AB889X", + "33265": "AB889X", + "33266": "AB889X", + "33269": "AB889X", + "33280": "AB889X", + "33283": "AB889X", + "33296": "AB889X", + "33299": "AB889X", + "33301": "AB889X", + "33302": "AB889X", + "33303": "AB889X", + "33304": "AB889X", + "33305": "AB889X", + "33306": "AB889X", + "33307": "AB889X", + "33308": "AB889X", + "33309": "AB889X", + "33310": "AB889X", + "33311": "AB889X", + "33312": "AB889X", + "33313": "AB889X", + "33314": "AB889X", + "33315": "AB889X", + "33316": "AB889X", + "33317": "AB889X", + "33318": "AB889X", + "33319": "AB889X", + "33320": "AB889X", + "33321": "AB889X", + "33322": "AB889X", + "33323": "AB889X", + "33324": "AB889X", + "33325": "AB889X", + "33326": "AB889X", + "33327": "AB889X", + "33328": "AB889X", + "33329": "AB889X", + "33330": "AB889X", + "33331": "AB889X", + "33332": "AB889X", + "33334": "AB889X", + "33335": "AB889X", + "33336": "AB889X", + "33337": "AB889X", + "33338": "AB889X", + "33339": "AB889X", + "33340": "AB889X", + "33345": "AB889X", + "33346": "AB889X", + "33348": "AB889X", + "33349": "AB889X", + "33351": "AB889X", + "33355": "AB889X", + "33359": "AB889X", + "33388": "AB889X", + "33394": "AB889X", + "33400": "AB890X", + "33401": "AB892X", + "33402": "AB892X", + "33403": "AB892X", + "33404": "AB892X", + "33405": "AB892X", + "33406": "AB892X", + "33407": "AB892X", + "33408": "AB892X", + "33409": "AB892X", + "33410": "AB892X", + "33411": "AB892X", + "33412": "AB892X", + "33413": "AB892X", + "33414": "AB892X", + "33415": "AB892X", + "33416": "AB892X", + "33417": "AB892X", + "33418": "AB892X", + "33419": "AB892X", + "33420": "AB892X", + "33421": "AB892X", + "33422": "AB892X", + "33424": "AB892X", + "33425": "AB892X", + "33426": "AB892X", + "33427": "AB892X", + "33428": "AB892X", + "33429": "AB892X", + "33430": "AB892X", + "33431": "AB892X", + "33432": "AB892X", + "33433": "AB892X", + "33434": "AB892X", + "33435": "AB892X", + "33436": "AB892X", + "33437": "AB892X", + "33438": "AB892X", + "33439": "AB892X", + "33440": "AB892X", + "33441": "AB889X", + "33442": "AB889X", + "33443": "AB889X", + "33444": "AB892X", + "33445": "AB892X", + "33446": "AB892X", + "33447": "AB892X", + "33448": "AB892X", + "33449": "AB892X", + "33454": "AB892X", + "33455": "AB892X", + "33458": "AB892X", + "33459": "AB892X", + "33460": "AB892X", + "33461": "AB892X", + "33462": "AB892X", + "33463": "AB892X", + "33464": "AB892X", + "33465": "AB892X", + "33466": "AB892X", + "33467": "AB892X", + "33468": "AB892X", + "33469": "AB892X", + "33470": "AB892X", + "33471": "AB892X", + "33474": "AB892X", + "33475": "AB892X", + "33476": "AB892X", + "33477": "AB892X", + "33478": "AB892X", + "33480": "AB892X", + "33481": "AB892X", + "33482": "AB892X", + "33483": "AB892X", + "33484": "AB892X", + "33486": "AB892X", + "33487": "AB892X", + "33488": "AB892X", + "33493": "AB892X", + "33496": "AB892X", + "33497": "AB892X", + "33498": "AB892X", + "33499": "AB892X", + "33500": "AB890X", + "33503": "AB892X", + "33508": "AB892X", + "33509": "AB892X", + "33510": "AB892X", + "33511": "AB892X", + "33513": "AB890X", + "33514": "AB890X", + "33521": "AB890X", + "33523": "AB892X", + "33524": "AB892X", + "33525": "AB892X", + "33526": "AB892X", + "33527": "AB892X", + "33530": "AB892X", + "33534": "AB892X", + "33537": "AB892X", + "33538": "AB890X", + "33539": "AB892X", + "33540": "AB892X", + "33541": "AB892X", + "33542": "AB892X", + "33543": "AB892X", + "33544": "AB892X", + "33545": "AB892X", + "33547": "AB892X", + "33548": "AB892X", + "33549": "AB892X", + "33550": "AB892X", + "33556": "AB892X", + "33558": "AB892X", + "33559": "AB892X", + "33563": "AB892X", + "33564": "AB892X", + "33565": "AB892X", + "33566": "AB892X", + "33567": "AB892X", + "33568": "AB892X", + "33569": "AB892X", + "33570": "AB892X", + "33571": "AB892X", + "33572": "AB892X", + "33573": "AB892X", + "33574": "AB892X", + "33575": "AB892X", + "33576": "AB892X", + "33578": "AB892X", + "33579": "AB892X", + "33583": "AB892X", + "33584": "AB892X", + "33585": "AB890X", + "33586": "AB892X", + "33587": "AB892X", + "33592": "AB892X", + "33593": "AB892X", + "33594": "AB892X", + "33595": "AB892X", + "33596": "AB892X", + "33597": "AB890X", + "33598": "AB892X", + "33601": "AB892X", + "33602": "AB892X", + "33603": "AB892X", + "33604": "AB892X", + "33605": "AB892X", + "33606": "AB892X", + "33607": "AB892X", + "33608": "AB892X", + "33609": "AB892X", + "33610": "AB892X", + "33611": "AB892X", + "33612": "AB892X", + "33613": "AB892X", + "33614": "AB892X", + "33615": "AB892X", + "33616": "AB892X", + "33617": "AB892X", + "33618": "AB892X", + "33619": "AB892X", + "33620": "AB892X", + "33621": "AB892X", + "33622": "AB892X", + "33623": "AB892X", + "33624": "AB892X", + "33625": "AB892X", + "33626": "AB892X", + "33629": "AB892X", + "33630": "AB889X", + "33631": "AB892X", + "33633": "AB892X", + "33634": "AB892X", + "33635": "AB892X", + "33637": "AB892X", + "33647": "AB892X", + "33650": "AB892X", + "33651": "AB892X", + "33655": "AB892X", + "33660": "AB892X", + "33661": "AB892X", + "33662": "AB892X", + "33663": "AB892X", + "33664": "AB892X", + "33672": "AB892X", + "33673": "AB892X", + "33674": "AB892X", + "33675": "AB892X", + "33677": "AB892X", + "33679": "AB892X", + "33680": "AB892X", + "33681": "AB892X", + "33682": "AB892X", + "33684": "AB892X", + "33685": "AB892X", + "33686": "AB892X", + "33687": "AB892X", + "33688": "AB892X", + "33689": "AB892X", + "33690": "AB892X", + "33694": "AB892X", + "33697": "AB892X", + "33701": "AB892X", + "33702": "AB892X", + "33703": "AB892X", + "33704": "AB892X", + "33705": "AB892X", + "33706": "AB892X", + "33707": "AB892X", + "33708": "AB892X", + "33709": "AB892X", + "33710": "AB892X", + "33711": "AB892X", + "33712": "AB892X", + "33713": "AB892X", + "33714": "AB892X", + "33715": "AB892X", + "33716": "AB892X", + "33729": "AB892X", + "33730": "AB892X", + "33731": "AB892X", + "33732": "AB892X", + "33733": "AB892X", + "33734": "AB892X", + "33736": "AB892X", + "33737": "AB892X", + "33738": "AB892X", + "33740": "AB892X", + "33741": "AB892X", + "33742": "AB892X", + "33743": "AB892X", + "33744": "AB892X", + "33747": "AB892X", + "33755": "AB892X", + "33756": "AB892X", + "33757": "AB892X", + "33758": "AB892X", + "33759": "AB892X", + "33760": "AB892X", + "33761": "AB892X", + "33762": "AB892X", + "33763": "AB892X", + "33764": "AB892X", + "33765": "AB892X", + "33766": "AB892X", + "33767": "AB892X", + "33769": "AB892X", + "33770": "AB892X", + "33771": "AB892X", + "33772": "AB892X", + "33773": "AB892X", + "33774": "AB892X", + "33775": "AB892X", + "33776": "AB892X", + "33777": "AB892X", + "33778": "AB892X", + "33779": "AB892X", + "33780": "AB892X", + "33781": "AB892X", + "33782": "AB892X", + "33784": "AB892X", + "33785": "AB892X", + "33786": "AB892X", + "33801": "AB892X", + "33802": "AB892X", + "33803": "AB892X", + "33804": "AB892X", + "33805": "AB892X", + "33806": "AB892X", + "33807": "AB892X", + "33809": "AB892X", + "33810": "AB892X", + "33811": "AB892X", + "33812": "AB892X", + "33813": "AB892X", + "33815": "AB892X", + "33820": "AB892X", + "33823": "AB892X", + "33825": "AB892X", + "33826": "AB892X", + "33827": "AB892X", + "33830": "AB892X", + "33831": "AB892X", + "33834": "AB892X", + "33835": "AB892X", + "33836": "AB892X", + "33837": "AB892X", + "33838": "AB892X", + "33839": "AB892X", + "33840": "AB890X", + "33841": "AB892X", + "33843": "AB892X", + "33844": "AB892X", + "33845": "AB892X", + "33846": "AB892X", + "33847": "AB892X", + "33848": "AB890X", + "33849": "AB892X", + "33850": "AB892X", + "33851": "AB892X", + "33852": "AB892X", + "33853": "AB892X", + "33854": "AB892X", + "33855": "AB892X", + "33856": "AB892X", + "33857": "AB892X", + "33858": "AB892X", + "33859": "AB892X", + "33860": "AB892X", + "33862": "AB892X", + "33863": "AB892X", + "33865": "AB892X", + "33867": "AB892X", + "33868": "AB892X", + "33870": "AB892X", + "33871": "AB892X", + "33872": "AB892X", + "33873": "AB892X", + "33875": "AB892X", + "33876": "AB892X", + "33877": "AB892X", + "33880": "AB892X", + "33881": "AB892X", + "33882": "AB892X", + "33883": "AB892X", + "33884": "AB892X", + "33885": "AB892X", + "33888": "AB892X", + "33890": "AB892X", + "33896": "AB892X", + "33897": "AB890X", + "33898": "AB892X", + "33901": "AB892X", + "33902": "AB892X", + "33903": "AB892X", + "33904": "AB892X", + "33905": "AB892X", + "33906": "AB892X", + "33907": "AB892X", + "33908": "AB892X", + "33909": "AB892X", + "33910": "AB892X", + "33911": "AB892X", + "33912": "AB892X", + "33913": "AB892X", + "33914": "AB892X", + "33915": "AB892X", + "33916": "AB892X", + "33917": "AB892X", + "33918": "AB892X", + "33919": "AB892X", + "33920": "AB892X", + "33921": "AB892X", + "33922": "AB892X", + "33924": "AB892X", + "33927": "AB892X", + "33928": "AB892X", + "33930": "AB892X", + "33931": "AB892X", + "33932": "AB892X", + "33935": "AB892X", + "33936": "AB892X", + "33938": "AB892X", + "33944": "AB892X", + "33945": "AB892X", + "33946": "AB892X", + "33947": "AB892X", + "33948": "AB892X", + "33949": "AB892X", + "33950": "AB892X", + "33951": "AB892X", + "33952": "AB892X", + "33953": "AB892X", + "33954": "AB892X", + "33955": "AB892X", + "33956": "AB892X", + "33957": "AB892X", + "33960": "AB892X", + "33965": "AB892X", + "33966": "AB892X", + "33967": "AB892X", + "33970": "AB892X", + "33971": "AB892X", + "33972": "AB892X", + "33973": "AB892X", + "33974": "AB892X", + "33975": "AB892X", + "33976": "AB892X", + "33980": "AB892X", + "33981": "AB892X", + "33982": "AB892X", + "33983": "AB892X", + "33990": "AB892X", + "33991": "AB892X", + "33993": "AB892X", + "33994": "AB892X", + "34029": "AB891X", + "34101": "AB892X", + "34102": "AB892X", + "34103": "AB892X", + "34104": "AB892X", + "34105": "AB892X", + "34106": "AB892X", + "34107": "AB892X", + "34108": "AB892X", + "34109": "AB892X", + "34110": "AB892X", + "34112": "AB892X", + "34113": "AB892X", + "34114": "AB892X", + "34116": "AB892X", + "34117": "AB892X", + "34119": "AB892X", + "34120": "AB892X", + "34133": "AB892X", + "34134": "AB892X", + "34135": "AB892X", + "34136": "AB892X", + "34137": "AB892X", + "34138": "AB892X", + "34139": "AB892X", + "34140": "AB892X", + "34141": "AB889X", + "34142": "AB892X", + "34143": "AB892X", + "34145": "AB889X", + "34146": "AB892X", + "34201": "AB892X", + "34202": "AB892X", + "34203": "AB892X", + "34204": "AB892X", + "34205": "AB892X", + "34206": "AB892X", + "34207": "AB892X", + "34208": "AB892X", + "34209": "AB892X", + "34210": "AB892X", + "34211": "AB892X", + "34212": "AB892X", + "34215": "AB892X", + "34216": "AB892X", + "34217": "AB892X", + "34218": "AB892X", + "34219": "AB892X", + "34220": "AB892X", + "34221": "AB892X", + "34222": "AB892X", + "34223": "AB892X", + "34224": "AB892X", + "34228": "AB892X", + "34229": "AB892X", + "34230": "AB892X", + "34231": "AB892X", + "34232": "AB892X", + "34233": "AB892X", + "34234": "AB892X", + "34235": "AB892X", + "34236": "AB892X", + "34237": "AB892X", + "34238": "AB892X", + "34239": "AB892X", + "34240": "AB892X", + "34241": "AB892X", + "34242": "AB892X", + "34243": "AB892X", + "34250": "AB892X", + "34251": "AB892X", + "34260": "AB892X", + "34264": "AB892X", + "34265": "AB892X", + "34266": "AB892X", + "34267": "AB892X", + "34268": "AB892X", + "34269": "AB892X", + "34270": "AB892X", + "34272": "AB892X", + "34274": "AB892X", + "34275": "AB892X", + "34276": "AB892X", + "34277": "AB892X", + "34278": "AB892X", + "34280": "AB892X", + "34281": "AB892X", + "34282": "AB892X", + "34284": "AB892X", + "34285": "AB892X", + "34286": "AB892X", + "34287": "AB892X", + "34288": "AB892X", + "34289": "AB892X", + "34292": "AB892X", + "34293": "AB892X", + "34295": "AB892X", + "34420": "AB890X", + "34421": "AB890X", + "34423": "AB892X", + "34428": "AB892X", + "34429": "AB892X", + "34430": "AB890X", + "34431": "AB890X", + "34432": "AB890X", + "34433": "AB892X", + "34434": "AB892X", + "34436": "AB892X", + "34442": "AB892X", + "34445": "AB892X", + "34446": "AB892X", + "34447": "AB892X", + "34448": "AB892X", + "34449": "AB888X", + "34450": "AB892X", + "34451": "AB892X", + "34452": "AB892X", + "34453": "AB892X", + "34460": "AB892X", + "34461": "AB892X", + "34464": "AB892X", + "34465": "AB892X", + "34470": "AB890X", + "34471": "AB890X", + "34472": "AB890X", + "34473": "AB890X", + "34474": "AB890X", + "34475": "AB890X", + "34476": "AB890X", + "34477": "AB890X", + "34478": "AB890X", + "34479": "AB890X", + "34480": "AB890X", + "34481": "AB890X", + "34482": "AB890X", + "34483": "AB890X", + "34484": "AB890X", + "34487": "AB892X", + "34488": "AB890X", + "34489": "AB890X", + "34491": "AB890X", + "34492": "AB890X", + "34498": "AB888X", + "34601": "AB892X", + "34602": "AB892X", + "34603": "AB892X", + "34604": "AB892X", + "34605": "AB892X", + "34606": "AB892X", + "34607": "AB892X", + "34608": "AB892X", + "34609": "AB892X", + "34610": "AB892X", + "34611": "AB892X", + "34613": "AB892X", + "34614": "AB892X", + "34636": "AB892X", + "34637": "AB892X", + "34638": "AB892X", + "34639": "AB892X", + "34652": "AB892X", + "34653": "AB892X", + "34654": "AB892X", + "34655": "AB892X", + "34656": "AB892X", + "34660": "AB892X", + "34661": "AB892X", + "34667": "AB892X", + "34668": "AB892X", + "34669": "AB892X", + "34673": "AB892X", + "34674": "AB892X", + "34677": "AB892X", + "34679": "AB892X", + "34680": "AB892X", + "34681": "AB892X", + "34682": "AB892X", + "34683": "AB892X", + "34684": "AB892X", + "34685": "AB892X", + "34688": "AB892X", + "34689": "AB892X", + "34690": "AB892X", + "34691": "AB892X", + "34692": "AB892X", + "34695": "AB892X", + "34697": "AB892X", + "34698": "AB892X", + "34700": "AB890X", + "34705": "AB890X", + "34711": "AB890X", + "34712": "AB890X", + "34713": "AB890X", + "34714": "AB890X", + "34715": "AB890X", + "34729": "AB890X", + "34731": "AB890X", + "34734": "AB890X", + "34736": "AB890X", + "34737": "AB890X", + "34739": "AB890X", + "34740": "AB890X", + "34741": "AB890X", + "34742": "AB890X", + "34743": "AB890X", + "34744": "AB890X", + "34745": "AB890X", + "34746": "AB890X", + "34747": "AB890X", + "34748": "AB890X", + "34749": "AB890X", + "34753": "AB890X", + "34755": "AB890X", + "34756": "AB890X", + "34758": "AB890X", + "34759": "AB890X", + "34760": "AB890X", + "34761": "AB890X", + "34762": "AB890X", + "34769": "AB890X", + "34770": "AB890X", + "34771": "AB890X", + "34772": "AB890X", + "34773": "AB890X", + "34777": "AB890X", + "34778": "AB890X", + "34785": "AB890X", + "34786": "AB890X", + "34787": "AB890X", + "34788": "AB890X", + "34789": "AB890X", + "34797": "AB890X", + "34945": "AB892X", + "34946": "AB892X", + "34947": "AB892X", + "34948": "AB892X", + "34949": "AB889X", + "34950": "AB892X", + "34951": "AB892X", + "34952": "AB892X", + "34953": "AB892X", + "34954": "AB892X", + "34956": "AB892X", + "34957": "AB892X", + "34958": "AB892X", + "34972": "AB892X", + "34973": "AB892X", + "34974": "AB892X", + "34979": "AB892X", + "34981": "AB892X", + "34982": "AB892X", + "34983": "AB892X", + "34984": "AB892X", + "34985": "AB892X", + "34986": "AB892X", + "34987": "AB892X", + "34988": "AB892X", + "34990": "AB892X", + "34991": "AB892X", + "34992": "AB892X", + "34994": "AB892X", + "34995": "AB892X", + "34996": "AB892X", + "34997": "AB892X", + "35004": "AB887X", + "35005": "AB887X", + "35006": "AB887X", + "35007": "AB887X", + "35010": "AB890X", + "35011": "AB890X", + "35013": "AB887X", + "35014": "AB887X", + "35015": "AB887X", + "35016": "AB887X", + "35019": "AB887X", + "35020": "AB887X", + "35021": "AB887X", + "35022": "AB887X", + "35023": "AB887X", + "35031": "AB887X", + "35032": "AB887X", + "35033": "AB887X", + "35034": "AB887X", + "35035": "AB887X", + "35036": "AB887X", + "35038": "AB887X", + "35040": "AB887X", + "35041": "AB887X", + "35042": "AB887X", + "35043": "AB887X", + "35044": "AB887X", + "35045": "AB887X", + "35046": "AB887X", + "35048": "AB887X", + "35049": "AB887X", + "35051": "AB887X", + "35052": "AB887X", + "35053": "AB887X", + "35054": "AB887X", + "35055": "AB887X", + "35056": "AB887X", + "35057": "AB887X", + "35058": "AB887X", + "35060": "AB887X", + "35061": "AB887X", + "35062": "AB887X", + "35063": "AB887X", + "35064": "AB887X", + "35068": "AB887X", + "35070": "AB887X", + "35071": "AB887X", + "35072": "AB890X", + "35073": "AB887X", + "35074": "AB887X", + "35077": "AB887X", + "35078": "AB887X", + "35079": "AB887X", + "35080": "AB887X", + "35082": "AB889X", + "35083": "AB887X", + "35085": "AB887X", + "35087": "AB887X", + "35089": "AB890X", + "35091": "AB887X", + "35094": "AB887X", + "35096": "AB887X", + "35097": "AB887X", + "35098": "AB887X", + "35111": "AB887X", + "35112": "AB887X", + "35114": "AB887X", + "35115": "AB887X", + "35116": "AB887X", + "35117": "AB887X", + "35118": "AB887X", + "35119": "AB887X", + "35120": "AB887X", + "35121": "AB887X", + "35123": "AB887X", + "35124": "AB887X", + "35125": "AB887X", + "35126": "AB887X", + "35127": "AB887X", + "35128": "AB887X", + "35130": "AB887X", + "35131": "AB887X", + "35133": "AB887X", + "35135": "AB887X", + "35136": "AB890X", + "35137": "AB887X", + "35139": "AB887X", + "35142": "AB887X", + "35143": "AB887X", + "35144": "AB887X", + "35146": "AB887X", + "35147": "AB887X", + "35148": "AB887X", + "35149": "AB887X", + "35150": "AB887X", + "35151": "AB887X", + "35160": "AB887X", + "35161": "AB887X", + "35171": "AB887X", + "35172": "AB887X", + "35173": "AB887X", + "35175": "AB887X", + "35176": "AB887X", + "35178": "AB887X", + "35179": "AB887X", + "35180": "AB887X", + "35181": "AB887X", + "35182": "AB887X", + "35183": "AB890X", + "35184": "AB887X", + "35185": "AB887X", + "35186": "AB887X", + "35187": "AB887X", + "35188": "AB887X", + "35201": "AB887X", + "35202": "AB887X", + "35203": "AB887X", + "35204": "AB887X", + "35205": "AB887X", + "35206": "AB887X", + "35207": "AB887X", + "35208": "AB887X", + "35209": "AB887X", + "35210": "AB887X", + "35211": "AB887X", + "35212": "AB887X", + "35213": "AB887X", + "35214": "AB887X", + "35215": "AB887X", + "35216": "AB887X", + "35217": "AB887X", + "35218": "AB887X", + "35219": "AB887X", + "35220": "AB887X", + "35221": "AB887X", + "35222": "AB887X", + "35223": "AB887X", + "35224": "AB887X", + "35225": "AB887X", + "35226": "AB887X", + "35228": "AB887X", + "35229": "AB887X", + "35230": "AB887X", + "35231": "AB887X", + "35232": "AB887X", + "35233": "AB887X", + "35234": "AB887X", + "35235": "AB887X", + "35236": "AB887X", + "35237": "AB887X", + "35238": "AB887X", + "35240": "AB887X", + "35242": "AB887X", + "35243": "AB887X", + "35244": "AB887X", + "35245": "AB887X", + "35246": "AB887X", + "35249": "AB887X", + "35253": "AB887X", + "35254": "AB887X", + "35255": "AB887X", + "35259": "AB887X", + "35260": "AB887X", + "35261": "AB887X", + "35263": "AB887X", + "35266": "AB887X", + "35277": "AB887X", + "35278": "AB887X", + "35279": "AB887X", + "35280": "AB887X", + "35281": "AB887X", + "35282": "AB887X", + "35283": "AB887X", + "35285": "AB887X", + "35286": "AB887X", + "35287": "AB887X", + "35288": "AB887X", + "35289": "AB887X", + "35290": "AB887X", + "35291": "AB887X", + "35292": "AB887X", + "35293": "AB887X", + "35294": "AB887X", + "35295": "AB887X", + "35296": "AB887X", + "35297": "AB887X", + "35298": "AB887X", + "35299": "AB887X", + "35401": "AB887X", + "35402": "AB887X", + "35403": "AB887X", + "35404": "AB887X", + "35405": "AB887X", + "35406": "AB887X", + "35407": "AB887X", + "35440": "AB887X", + "35441": "AB887X", + "35442": "AB887X", + "35443": "AB887X", + "35444": "AB887X", + "35446": "AB887X", + "35447": "AB887X", + "35448": "AB887X", + "35449": "AB887X", + "35452": "AB887X", + "35453": "AB887X", + "35456": "AB887X", + "35457": "AB887X", + "35458": "AB887X", + "35459": "AB887X", + "35460": "AB887X", + "35461": "AB887X", + "35462": "AB887X", + "35463": "AB887X", + "35464": "AB887X", + "35466": "AB887X", + "35468": "AB887X", + "35469": "AB887X", + "35470": "AB887X", + "35471": "AB887X", + "35473": "AB887X", + "35474": "AB887X", + "35475": "AB887X", + "35476": "AB887X", + "35477": "AB887X", + "35478": "AB887X", + "35480": "AB887X", + "35481": "AB887X", + "35482": "AB887X", + "35485": "AB887X", + "35486": "AB887X", + "35487": "AB887X", + "35490": "AB887X", + "35491": "AB887X", + "35501": "AB887X", + "35502": "AB887X", + "35503": "AB887X", + "35504": "AB887X", + "35540": "AB887X", + "35541": "AB887X", + "35542": "AB887X", + "35543": "AB887X", + "35544": "AB887X", + "35545": "AB887X", + "35546": "AB887X", + "35548": "AB887X", + "35549": "AB887X", + "35550": "AB887X", + "35551": "AB887X", + "35552": "AB887X", + "35553": "AB887X", + "35554": "AB887X", + "35555": "AB887X", + "35559": "AB887X", + "35560": "AB887X", + "35563": "AB887X", + "35564": "AB887X", + "35565": "AB887X", + "35570": "AB887X", + "35571": "AB887X", + "35572": "AB887X", + "35573": "AB887X", + "35574": "AB887X", + "35575": "AB887X", + "35576": "AB887X", + "35577": "AB887X", + "35578": "AB887X", + "35579": "AB887X", + "35580": "AB887X", + "35581": "AB887X", + "35582": "AB887X", + "35584": "AB887X", + "35585": "AB887X", + "35586": "AB887X", + "35587": "AB887X", + "35592": "AB887X", + "35593": "AB887X", + "35594": "AB887X", + "35601": "AB887X", + "35602": "AB887X", + "35603": "AB887X", + "35609": "AB887X", + "35610": "AB887X", + "35611": "AB887X", + "35612": "AB887X", + "35613": "AB887X", + "35614": "AB887X", + "35615": "AB887X", + "35616": "AB887X", + "35617": "AB887X", + "35618": "AB887X", + "35619": "AB887X", + "35620": "AB887X", + "35621": "AB887X", + "35622": "AB887X", + "35630": "AB887X", + "35631": "AB887X", + "35632": "AB887X", + "35633": "AB887X", + "35634": "AB887X", + "35640": "AB887X", + "35643": "AB887X", + "35645": "AB887X", + "35646": "AB887X", + "35647": "AB887X", + "35648": "AB887X", + "35649": "AB887X", + "35650": "AB887X", + "35651": "AB887X", + "35652": "AB887X", + "35653": "AB887X", + "35654": "AB887X", + "35660": "AB887X", + "35661": "AB887X", + "35662": "AB887X", + "35670": "AB887X", + "35671": "AB887X", + "35672": "AB887X", + "35673": "AB887X", + "35674": "AB887X", + "35677": "AB887X", + "35699": "AB887X", + "35739": "AB887X", + "35740": "AB887X", + "35741": "AB887X", + "35742": "AB887X", + "35744": "AB887X", + "35745": "AB887X", + "35746": "AB887X", + "35747": "AB887X", + "35748": "AB887X", + "35749": "AB887X", + "35750": "AB887X", + "35751": "AB887X", + "35752": "AB887X", + "35754": "AB887X", + "35755": "AB887X", + "35756": "AB887X", + "35757": "AB887X", + "35758": "AB887X", + "35759": "AB887X", + "35760": "AB887X", + "35761": "AB887X", + "35762": "AB887X", + "35763": "AB887X", + "35764": "AB887X", + "35765": "AB887X", + "35766": "AB887X", + "35767": "AB887X", + "35768": "AB887X", + "35769": "AB887X", + "35771": "AB887X", + "35772": "AB887X", + "35773": "AB887X", + "35774": "AB887X", + "35775": "AB887X", + "35776": "AB887X", + "35801": "AB887X", + "35802": "AB887X", + "35803": "AB887X", + "35804": "AB887X", + "35805": "AB887X", + "35806": "AB887X", + "35807": "AB887X", + "35808": "AB887X", + "35809": "AB887X", + "35810": "AB887X", + "35811": "AB887X", + "35812": "AB887X", + "35813": "AB887X", + "35814": "AB887X", + "35815": "AB887X", + "35816": "AB887X", + "35824": "AB887X", + "35893": "AB887X", + "35894": "AB887X", + "35895": "AB887X", + "35896": "AB887X", + "35897": "AB887X", + "35898": "AB887X", + "35899": "AB887X", + "35901": "AB887X", + "35902": "AB887X", + "35903": "AB887X", + "35904": "AB887X", + "35905": "AB887X", + "35906": "AB887X", + "35907": "AB887X", + "35950": "AB887X", + "35951": "AB887X", + "35952": "AB887X", + "35953": "AB887X", + "35954": "AB887X", + "35956": "AB887X", + "35957": "AB887X", + "35958": "AB887X", + "35959": "AB887X", + "35960": "AB887X", + "35961": "AB887X", + "35962": "AB887X", + "35963": "AB887X", + "35964": "AB887X", + "35966": "AB887X", + "35967": "AB887X", + "35968": "AB887X", + "35971": "AB887X", + "35972": "AB887X", + "35973": "AB887X", + "35974": "AB887X", + "35975": "AB887X", + "35976": "AB887X", + "35978": "AB887X", + "35979": "AB887X", + "35980": "AB887X", + "35981": "AB887X", + "35983": "AB887X", + "35984": "AB887X", + "35986": "AB887X", + "35987": "AB887X", + "35988": "AB887X", + "35989": "AB887X", + "35990": "AB887X", + "36003": "AB890X", + "36005": "AB890X", + "36006": "AB890X", + "36008": "AB890X", + "36009": "AB890X", + "36010": "AB890X", + "36013": "AB890X", + "36015": "AB890X", + "36016": "AB890X", + "36017": "AB890X", + "36020": "AB890X", + "36022": "AB890X", + "36023": "AB890X", + "36024": "AB890X", + "36025": "AB890X", + "36026": "AB890X", + "36027": "AB890X", + "36028": "AB890X", + "36029": "AB890X", + "36030": "AB890X", + "36031": "AB890X", + "36032": "AB890X", + "36033": "AB890X", + "36034": "AB890X", + "36035": "AB890X", + "36036": "AB890X", + "36037": "AB890X", + "36038": "AB890X", + "36039": "AB890X", + "36040": "AB890X", + "36041": "AB890X", + "36042": "AB890X", + "36043": "AB890X", + "36045": "AB890X", + "36046": "AB890X", + "36047": "AB890X", + "36048": "AB890X", + "36049": "AB890X", + "36051": "AB890X", + "36052": "AB890X", + "36053": "AB890X", + "36054": "AB890X", + "36057": "AB890X", + "36061": "AB890X", + "36062": "AB890X", + "36064": "AB890X", + "36065": "AB890X", + "36066": "AB890X", + "36067": "AB890X", + "36068": "AB890X", + "36069": "AB890X", + "36071": "AB890X", + "36072": "AB890X", + "36075": "AB890X", + "36078": "AB890X", + "36079": "AB890X", + "36080": "AB890X", + "36081": "AB890X", + "36082": "AB890X", + "36083": "AB890X", + "36087": "AB890X", + "36088": "AB890X", + "36089": "AB890X", + "36091": "AB887X", + "36092": "AB890X", + "36093": "AB890X", + "36101": "AB890X", + "36102": "AB890X", + "36103": "AB890X", + "36104": "AB890X", + "36105": "AB890X", + "36106": "AB890X", + "36107": "AB890X", + "36108": "AB890X", + "36109": "AB890X", + "36110": "AB890X", + "36111": "AB890X", + "36112": "AB890X", + "36113": "AB890X", + "36114": "AB890X", + "36115": "AB890X", + "36116": "AB890X", + "36117": "AB890X", + "36118": "AB890X", + "36119": "AB890X", + "36120": "AB890X", + "36121": "AB890X", + "36123": "AB890X", + "36124": "AB890X", + "36125": "AB890X", + "36130": "AB890X", + "36131": "AB890X", + "36132": "AB890X", + "36133": "AB890X", + "36134": "AB890X", + "36135": "AB890X", + "36140": "AB890X", + "36141": "AB890X", + "36142": "AB890X", + "36177": "AB890X", + "36191": "AB890X", + "36201": "AB887X", + "36202": "AB887X", + "36203": "AB887X", + "36204": "AB887X", + "36205": "AB887X", + "36206": "AB887X", + "36207": "AB887X", + "36210": "AB887X", + "36250": "AB887X", + "36251": "AB889X", + "36253": "AB887X", + "36254": "AB887X", + "36255": "AB889X", + "36256": "AB890X", + "36257": "AB887X", + "36258": "AB889X", + "36260": "AB887X", + "36261": "AB887X", + "36262": "AB887X", + "36263": "AB889X", + "36264": "AB887X", + "36265": "AB887X", + "36266": "AB889X", + "36267": "AB889X", + "36268": "AB887X", + "36269": "AB887X", + "36271": "AB887X", + "36272": "AB887X", + "36273": "AB887X", + "36274": "AB889X", + "36275": "AB887X", + "36276": "AB889X", + "36277": "AB887X", + "36278": "AB889X", + "36279": "AB887X", + "36280": "AB889X", + "36301": "AB890X", + "36302": "AB890X", + "36303": "AB890X", + "36304": "AB890X", + "36305": "AB890X", + "36310": "AB890X", + "36311": "AB890X", + "36312": "AB890X", + "36313": "AB890X", + "36314": "AB890X", + "36316": "AB890X", + "36317": "AB890X", + "36318": "AB890X", + "36319": "AB890X", + "36320": "AB890X", + "36321": "AB890X", + "36322": "AB890X", + "36323": "AB890X", + "36330": "AB890X", + "36331": "AB890X", + "36340": "AB890X", + "36343": "AB890X", + "36344": "AB890X", + "36345": "AB890X", + "36346": "AB890X", + "36349": "AB890X", + "36350": "AB890X", + "36351": "AB890X", + "36352": "AB890X", + "36353": "AB890X", + "36360": "AB890X", + "36361": "AB890X", + "36362": "AB890X", + "36370": "AB890X", + "36371": "AB890X", + "36373": "AB890X", + "36374": "AB890X", + "36375": "AB890X", + "36376": "AB890X", + "36401": "AB889X", + "36420": "AB890X", + "36421": "AB890X", + "36425": "AB889X", + "36426": "AB889X", + "36427": "AB889X", + "36429": "AB889X", + "36432": "AB889X", + "36435": "AB890X", + "36436": "AB889X", + "36439": "AB889X", + "36441": "AB889X", + "36442": "AB890X", + "36444": "AB889X", + "36445": "AB889X", + "36446": "AB889X", + "36449": "AB889X", + "36451": "AB889X", + "36453": "AB890X", + "36454": "AB889X", + "36455": "AB890X", + "36456": "AB890X", + "36457": "AB889X", + "36458": "AB889X", + "36460": "AB889X", + "36461": "AB889X", + "36462": "AB889X", + "36467": "AB890X", + "36470": "AB889X", + "36471": "AB889X", + "36473": "AB889X", + "36474": "AB890X", + "36475": "AB889X", + "36476": "AB890X", + "36477": "AB890X", + "36480": "AB889X", + "36481": "AB889X", + "36482": "AB889X", + "36483": "AB890X", + "36501": "AB889X", + "36502": "AB889X", + "36503": "AB889X", + "36504": "AB889X", + "36505": "AB889X", + "36507": "AB889X", + "36509": "AB889X", + "36511": "AB889X", + "36512": "AB889X", + "36513": "AB889X", + "36515": "AB889X", + "36518": "AB889X", + "36521": "AB889X", + "36522": "AB889X", + "36523": "AB889X", + "36524": "AB889X", + "36525": "AB889X", + "36526": "AB889X", + "36527": "AB889X", + "36528": "AB889X", + "36529": "AB889X", + "36530": "AB889X", + "36532": "AB889X", + "36533": "AB889X", + "36535": "AB889X", + "36536": "AB889X", + "36538": "AB889X", + "36539": "AB889X", + "36540": "AB889X", + "36541": "AB889X", + "36542": "AB889X", + "36543": "AB889X", + "36544": "AB889X", + "36545": "AB889X", + "36547": "AB889X", + "36548": "AB889X", + "36549": "AB889X", + "36550": "AB889X", + "36551": "AB889X", + "36553": "AB889X", + "36555": "AB889X", + "36556": "AB889X", + "36558": "AB889X", + "36559": "AB889X", + "36560": "AB889X", + "36561": "AB889X", + "36562": "AB889X", + "36564": "AB889X", + "36567": "AB889X", + "36568": "AB889X", + "36569": "AB889X", + "36571": "AB889X", + "36572": "AB889X", + "36574": "AB889X", + "36575": "AB889X", + "36576": "AB889X", + "36577": "AB889X", + "36578": "AB889X", + "36579": "AB889X", + "36580": "AB889X", + "36581": "AB889X", + "36582": "AB889X", + "36583": "AB889X", + "36584": "AB889X", + "36585": "AB889X", + "36587": "AB889X", + "36590": "AB889X", + "36601": "AB889X", + "36602": "AB889X", + "36603": "AB889X", + "36604": "AB889X", + "36605": "AB889X", + "36606": "AB889X", + "36607": "AB889X", + "36608": "AB889X", + "36609": "AB889X", + "36610": "AB889X", + "36611": "AB889X", + "36612": "AB889X", + "36613": "AB889X", + "36615": "AB889X", + "36616": "AB889X", + "36617": "AB889X", + "36618": "AB889X", + "36619": "AB889X", + "36621": "AB889X", + "36622": "AB889X", + "36625": "AB889X", + "36628": "AB889X", + "36630": "AB889X", + "36633": "AB889X", + "36640": "AB889X", + "36641": "AB889X", + "36644": "AB889X", + "36652": "AB889X", + "36660": "AB889X", + "36663": "AB889X", + "36670": "AB889X", + "36671": "AB889X", + "36675": "AB889X", + "36685": "AB889X", + "36688": "AB889X", + "36689": "AB889X", + "36690": "AB889X", + "36691": "AB889X", + "36693": "AB889X", + "36695": "AB889X", + "36701": "AB890X", + "36702": "AB890X", + "36703": "AB890X", + "36720": "AB890X", + "36721": "AB890X", + "36722": "AB890X", + "36723": "AB890X", + "36726": "AB890X", + "36727": "AB889X", + "36728": "AB890X", + "36732": "AB890X", + "36736": "AB890X", + "36738": "AB890X", + "36740": "AB887X", + "36741": "AB890X", + "36742": "AB890X", + "36744": "AB887X", + "36745": "AB890X", + "36748": "AB890X", + "36749": "AB890X", + "36750": "AB887X", + "36751": "AB890X", + "36752": "AB890X", + "36753": "AB890X", + "36754": "AB890X", + "36756": "AB887X", + "36758": "AB890X", + "36759": "AB890X", + "36761": "AB890X", + "36762": "AB889X", + "36763": "AB890X", + "36764": "AB890X", + "36765": "AB887X", + "36766": "AB890X", + "36767": "AB890X", + "36768": "AB890X", + "36769": "AB890X", + "36773": "AB890X", + "36775": "AB890X", + "36776": "AB887X", + "36782": "AB890X", + "36783": "AB890X", + "36784": "AB889X", + "36785": "AB890X", + "36786": "AB887X", + "36790": "AB887X", + "36792": "AB887X", + "36793": "AB887X", + "36801": "AB890X", + "36802": "AB890X", + "36803": "AB890X", + "36804": "AB890X", + "36830": "AB890X", + "36831": "AB890X", + "36832": "AB890X", + "36849": "AB890X", + "36850": "AB890X", + "36851": "AB890X", + "36852": "AB890X", + "36853": "AB890X", + "36854": "AB890X", + "36855": "AB890X", + "36856": "AB890X", + "36858": "AB890X", + "36859": "AB890X", + "36860": "AB890X", + "36861": "AB890X", + "36862": "AB890X", + "36863": "AB890X", + "36865": "AB890X", + "36866": "AB890X", + "36867": "AB890X", + "36868": "AB890X", + "36869": "AB890X", + "36870": "AB890X", + "36871": "AB890X", + "36872": "AB890X", + "36874": "AB890X", + "36875": "AB890X", + "36877": "AB890X", + "36879": "AB890X", + "36901": "AB887X", + "36904": "AB889X", + "36907": "AB887X", + "36908": "AB889X", + "36910": "AB889X", + "36912": "AB889X", + "36913": "AB889X", + "36915": "AB889X", + "36916": "AB889X", + "36919": "AB889X", + "36921": "AB889X", + "36922": "AB889X", + "36925": "AB887X", + "37010": "AB887X", + "37011": "AB887X", + "37012": "AB887X", + "37013": "AB887X", + "37014": "AB887X", + "37015": "AB887X", + "37016": "AB887X", + "37018": "AB887X", + "37019": "AB887X", + "37020": "AB887X", + "37022": "AB887X", + "37023": "AB887X", + "37024": "AB887X", + "37025": "AB887X", + "37026": "AB887X", + "37027": "AB887X", + "37028": "AB887X", + "37029": "AB887X", + "37030": "AB887X", + "37031": "AB887X", + "37032": "AB887X", + "37033": "AB887X", + "37034": "AB887X", + "37035": "AB887X", + "37036": "AB887X", + "37037": "AB887X", + "37040": "AB887X", + "37041": "AB887X", + "37042": "AB887X", + "37043": "AB887X", + "37044": "AB887X", + "37046": "AB887X", + "37047": "AB887X", + "37048": "AB887X", + "37049": "AB887X", + "37050": "AB887X", + "37051": "AB887X", + "37052": "AB887X", + "37055": "AB887X", + "37056": "AB887X", + "37057": "AB887X", + "37058": "AB887X", + "37059": "AB887X", + "37060": "AB887X", + "37061": "AB887X", + "37062": "AB887X", + "37063": "AB887X", + "37064": "AB887X", + "37065": "AB887X", + "37066": "AB887X", + "37067": "AB887X", + "37068": "AB887X", + "37069": "AB887X", + "37070": "AB887X", + "37071": "AB887X", + "37072": "AB887X", + "37073": "AB887X", + "37074": "AB887X", + "37075": "AB887X", + "37076": "AB887X", + "37077": "AB887X", + "37078": "AB887X", + "37079": "AB887X", + "37080": "AB887X", + "37082": "AB887X", + "37083": "AB887X", + "37085": "AB887X", + "37086": "AB887X", + "37087": "AB887X", + "37088": "AB887X", + "37089": "AB887X", + "37090": "AB887X", + "37091": "AB887X", + "37095": "AB887X", + "37096": "AB887X", + "37097": "AB887X", + "37098": "AB887X", + "37101": "AB887X", + "37110": "AB887X", + "37111": "AB887X", + "37115": "AB887X", + "37116": "AB887X", + "37118": "AB887X", + "37119": "AB887X", + "37121": "AB887X", + "37122": "AB887X", + "37127": "AB887X", + "37128": "AB887X", + "37129": "AB887X", + "37130": "AB887X", + "37131": "AB887X", + "37132": "AB887X", + "37133": "AB887X", + "37134": "AB887X", + "37135": "AB887X", + "37136": "AB887X", + "37137": "AB887X", + "37138": "AB887X", + "37140": "AB887X", + "37141": "AB887X", + "37142": "AB887X", + "37143": "AB887X", + "37144": "AB887X", + "37145": "AB887X", + "37146": "AB887X", + "37148": "AB887X", + "37149": "AB887X", + "37150": "AB887X", + "37151": "AB887X", + "37152": "AB887X", + "37153": "AB887X", + "37160": "AB887X", + "37161": "AB887X", + "37162": "AB887X", + "37165": "AB887X", + "37166": "AB887X", + "37167": "AB887X", + "37171": "AB887X", + "37172": "AB887X", + "37174": "AB887X", + "37175": "AB887X", + "37178": "AB887X", + "37179": "AB887X", + "37180": "AB887X", + "37181": "AB887X", + "37183": "AB887X", + "37184": "AB887X", + "37185": "AB887X", + "37186": "AB887X", + "37187": "AB887X", + "37188": "AB887X", + "37189": "AB887X", + "37190": "AB887X", + "37191": "AB887X", + "37201": "AB887X", + "37202": "AB887X", + "37203": "AB890X", + "37204": "AB887X", + "37205": "AB887X", + "37206": "AB887X", + "37207": "AB887X", + "37208": "AB887X", + "37209": "AB887X", + "37210": "AB887X", + "37211": "AB887X", + "37212": "AB887X", + "37213": "AB887X", + "37214": "AB887X", + "37215": "AB887X", + "37216": "AB887X", + "37217": "AB887X", + "37218": "AB887X", + "37219": "AB887X", + "37220": "AB887X", + "37221": "AB887X", + "37222": "AB887X", + "37224": "AB887X", + "37227": "AB887X", + "37228": "AB887X", + "37229": "AB887X", + "37230": "AB887X", + "37232": "AB887X", + "37234": "AB887X", + "37235": "AB887X", + "37236": "AB887X", + "37237": "AB887X", + "37238": "AB887X", + "37240": "AB887X", + "37241": "AB887X", + "37242": "AB887X", + "37243": "AB887X", + "37244": "AB887X", + "37245": "AB887X", + "37246": "AB887X", + "37247": "AB887X", + "37248": "AB887X", + "37249": "AB887X", + "37250": "AB887X", + "37301": "AB887X", + "37302": "AB888X", + "37303": "AB888X", + "37304": "AB888X", + "37305": "AB888X", + "37306": "AB887X", + "37307": "AB888X", + "37308": "AB888X", + "37309": "AB888X", + "37310": "AB888X", + "37311": "AB888X", + "37312": "AB888X", + "37313": "AB888X", + "37314": "AB888X", + "37315": "AB888X", + "37316": "AB888X", + "37317": "AB888X", + "37318": "AB887X", + "37320": "AB888X", + "37321": "AB888X", + "37322": "AB888X", + "37323": "AB888X", + "37324": "AB887X", + "37325": "AB888X", + "37326": "AB888X", + "37327": "AB888X", + "37328": "AB887X", + "37329": "AB888X", + "37330": "AB887X", + "37331": "AB888X", + "37332": "AB888X", + "37333": "AB888X", + "37334": "AB887X", + "37335": "AB887X", + "37336": "AB888X", + "37337": "AB888X", + "37338": "AB888X", + "37339": "AB888X", + "37340": "AB888X", + "37341": "AB888X", + "37342": "AB887X", + "37343": "AB888X", + "37345": "AB887X", + "37347": "AB888X", + "37348": "AB887X", + "37349": "AB887X", + "37350": "AB888X", + "37351": "AB888X", + "37352": "AB887X", + "37353": "AB888X", + "37354": "AB888X", + "37355": "AB887X", + "37356": "AB888X", + "37357": "AB887X", + "37359": "AB887X", + "37360": "AB887X", + "37361": "AB888X", + "37362": "AB888X", + "37363": "AB888X", + "37364": "AB888X", + "37365": "AB888X", + "37366": "AB887X", + "37367": "AB888X", + "37369": "AB888X", + "37370": "AB888X", + "37371": "AB888X", + "37372": "AB887X", + "37373": "AB888X", + "37374": "AB888X", + "37375": "AB887X", + "37376": "AB887X", + "37377": "AB888X", + "37378": "AB887X", + "37379": "AB888X", + "37380": "AB888X", + "37381": "AB888X", + "37382": "AB887X", + "37383": "AB887X", + "37384": "AB888X", + "37385": "AB888X", + "37387": "AB888X", + "37388": "AB887X", + "37389": "AB887X", + "37391": "AB888X", + "37394": "AB887X", + "37396": "AB888X", + "37397": "AB888X", + "37398": "AB887X", + "37401": "AB888X", + "37402": "AB888X", + "37403": "AB888X", + "37404": "AB888X", + "37405": "AB888X", + "37406": "AB888X", + "37407": "AB888X", + "37408": "AB888X", + "37409": "AB888X", + "37410": "AB888X", + "37411": "AB888X", + "37412": "AB888X", + "37414": "AB888X", + "37415": "AB888X", + "37416": "AB888X", + "37419": "AB888X", + "37421": "AB888X", + "37422": "AB888X", + "37424": "AB888X", + "37450": "AB888X", + "37501": "AB889X", + "37544": "AB889X", + "37601": "AB888X", + "37602": "AB888X", + "37604": "AB888X", + "37605": "AB888X", + "37614": "AB888X", + "37615": "AB888X", + "37616": "AB888X", + "37617": "AB888X", + "37618": "AB888X", + "37620": "AB888X", + "37621": "AB888X", + "37625": "AB888X", + "37640": "AB888X", + "37641": "AB888X", + "37642": "AB888X", + "37643": "AB888X", + "37644": "AB888X", + "37645": "AB888X", + "37650": "AB888X", + "37656": "AB888X", + "37657": "AB888X", + "37658": "AB888X", + "37659": "AB888X", + "37660": "AB888X", + "37662": "AB888X", + "37663": "AB888X", + "37664": "AB888X", + "37665": "AB888X", + "37669": "AB888X", + "37680": "AB888X", + "37681": "AB888X", + "37682": "AB888X", + "37683": "AB887X", + "37684": "AB888X", + "37686": "AB888X", + "37687": "AB888X", + "37688": "AB888X", + "37690": "AB888X", + "37691": "AB888X", + "37692": "AB888X", + "37694": "AB888X", + "37699": "AB888X", + "37701": "AB888X", + "37705": "AB888X", + "37707": "AB888X", + "37708": "AB888X", + "37709": "AB888X", + "37710": "AB888X", + "37711": "AB888X", + "37713": "AB888X", + "37714": "AB888X", + "37715": "AB888X", + "37716": "AB888X", + "37717": "AB888X", + "37719": "AB888X", + "37721": "AB888X", + "37722": "AB888X", + "37723": "AB888X", + "37724": "AB888X", + "37725": "AB888X", + "37726": "AB888X", + "37727": "AB888X", + "37729": "AB888X", + "37730": "AB888X", + "37731": "AB888X", + "37732": "AB888X", + "37733": "AB888X", + "37737": "AB888X", + "37738": "AB888X", + "37742": "AB888X", + "37743": "AB888X", + "37744": "AB888X", + "37745": "AB888X", + "37748": "AB888X", + "37752": "AB888X", + "37753": "AB888X", + "37754": "AB888X", + "37755": "AB888X", + "37756": "AB888X", + "37757": "AB888X", + "37760": "AB888X", + "37762": "AB888X", + "37763": "AB888X", + "37764": "AB888X", + "37765": "AB888X", + "37766": "AB888X", + "37769": "AB888X", + "37770": "AB888X", + "37771": "AB888X", + "37772": "AB888X", + "37773": "AB888X", + "37774": "AB888X", + "37777": "AB888X", + "37778": "AB888X", + "37779": "AB888X", + "37801": "AB888X", + "37802": "AB888X", + "37803": "AB888X", + "37804": "AB888X", + "37806": "AB888X", + "37807": "AB888X", + "37809": "AB888X", + "37810": "AB888X", + "37811": "AB888X", + "37813": "AB888X", + "37814": "AB888X", + "37815": "AB888X", + "37816": "AB888X", + "37818": "AB888X", + "37819": "AB888X", + "37820": "AB888X", + "37821": "AB888X", + "37822": "AB888X", + "37824": "AB888X", + "37825": "AB888X", + "37826": "AB888X", + "37828": "AB888X", + "37829": "AB888X", + "37830": "AB888X", + "37831": "AB888X", + "37840": "AB888X", + "37841": "AB888X", + "37843": "AB888X", + "37845": "AB888X", + "37846": "AB888X", + "37847": "AB888X", + "37848": "AB888X", + "37849": "AB888X", + "37851": "AB888X", + "37852": "AB888X", + "37853": "AB888X", + "37854": "AB888X", + "37857": "AB888X", + "37860": "AB888X", + "37861": "AB888X", + "37862": "AB888X", + "37863": "AB888X", + "37864": "AB888X", + "37865": "AB888X", + "37866": "AB888X", + "37867": "AB888X", + "37868": "AB888X", + "37869": "AB888X", + "37870": "AB888X", + "37871": "AB888X", + "37872": "AB888X", + "37873": "AB888X", + "37874": "AB888X", + "37876": "AB888X", + "37877": "AB888X", + "37878": "AB888X", + "37879": "AB888X", + "37880": "AB888X", + "37881": "AB888X", + "37882": "AB888X", + "37885": "AB888X", + "37886": "AB888X", + "37887": "AB888X", + "37888": "AB888X", + "37890": "AB888X", + "37891": "AB888X", + "37892": "AB888X", + "37901": "AB888X", + "37902": "AB888X", + "37909": "AB888X", + "37912": "AB888X", + "37914": "AB888X", + "37915": "AB888X", + "37916": "AB888X", + "37917": "AB888X", + "37918": "AB888X", + "37919": "AB888X", + "37920": "AB888X", + "37921": "AB888X", + "37922": "AB888X", + "37923": "AB888X", + "37924": "AB888X", + "37927": "AB888X", + "37928": "AB888X", + "37929": "AB888X", + "37930": "AB888X", + "37931": "AB888X", + "37932": "AB888X", + "37933": "AB888X", + "37934": "AB888X", + "37938": "AB888X", + "37939": "AB888X", + "37940": "AB888X", + "37950": "AB888X", + "37990": "AB888X", + "37995": "AB888X", + "37996": "AB888X", + "37997": "AB888X", + "37998": "AB888X", + "38001": "AB889X", + "38002": "AB889X", + "38004": "AB889X", + "38006": "AB889X", + "38007": "AB889X", + "38008": "AB889X", + "38010": "AB889X", + "38011": "AB889X", + "38012": "AB889X", + "38014": "AB889X", + "38015": "AB889X", + "38016": "AB889X", + "38017": "AB889X", + "38018": "AB889X", + "38019": "AB889X", + "38021": "AB889X", + "38023": "AB889X", + "38024": "AB889X", + "38025": "AB889X", + "38027": "AB889X", + "38028": "AB889X", + "38029": "AB889X", + "38030": "AB889X", + "38034": "AB889X", + "38036": "AB889X", + "38037": "AB889X", + "38039": "AB889X", + "38040": "AB889X", + "38041": "AB889X", + "38042": "AB889X", + "38044": "AB889X", + "38045": "AB889X", + "38046": "AB889X", + "38047": "AB889X", + "38048": "AB889X", + "38049": "AB889X", + "38050": "AB889X", + "38052": "AB889X", + "38053": "AB889X", + "38054": "AB889X", + "38055": "AB889X", + "38057": "AB889X", + "38058": "AB889X", + "38059": "AB889X", + "38060": "AB889X", + "38061": "AB889X", + "38063": "AB889X", + "38066": "AB889X", + "38067": "AB889X", + "38068": "AB889X", + "38069": "AB889X", + "38070": "AB889X", + "38071": "AB889X", + "38075": "AB889X", + "38076": "AB889X", + "38077": "AB889X", + "38079": "AB889X", + "38080": "AB889X", + "38083": "AB889X", + "38088": "AB889X", + "38101": "AB889X", + "38103": "AB889X", + "38104": "AB889X", + "38105": "AB889X", + "38106": "AB889X", + "38107": "AB889X", + "38108": "AB889X", + "38109": "AB889X", + "38110": "AB889X", + "38111": "AB889X", + "38112": "AB889X", + "38113": "AB889X", + "38114": "AB889X", + "38115": "AB889X", + "38116": "AB889X", + "38117": "AB889X", + "38118": "AB889X", + "38119": "AB889X", + "38120": "AB889X", + "38122": "AB889X", + "38124": "AB889X", + "38125": "AB889X", + "38126": "AB889X", + "38127": "AB889X", + "38128": "AB889X", + "38130": "AB889X", + "38131": "AB889X", + "38132": "AB889X", + "38133": "AB889X", + "38134": "AB889X", + "38135": "AB889X", + "38136": "AB889X", + "38137": "AB889X", + "38138": "AB889X", + "38139": "AB889X", + "38141": "AB889X", + "38142": "AB889X", + "38145": "AB889X", + "38147": "AB889X", + "38148": "AB889X", + "38150": "AB889X", + "38151": "AB889X", + "38152": "AB889X", + "38157": "AB889X", + "38159": "AB889X", + "38161": "AB889X", + "38163": "AB889X", + "38165": "AB889X", + "38166": "AB889X", + "38167": "AB889X", + "38168": "AB889X", + "38173": "AB889X", + "38174": "AB889X", + "38175": "AB889X", + "38177": "AB889X", + "38181": "AB889X", + "38182": "AB889X", + "38183": "AB889X", + "38184": "AB889X", + "38186": "AB889X", + "38187": "AB889X", + "38188": "AB889X", + "38190": "AB889X", + "38193": "AB889X", + "38194": "AB889X", + "38197": "AB889X", + "38201": "AB889X", + "38220": "AB889X", + "38221": "AB889X", + "38222": "AB889X", + "38223": "AB889X", + "38224": "AB889X", + "38225": "AB888X", + "38226": "AB888X", + "38227": "AB888X", + "38229": "AB889X", + "38230": "AB888X", + "38231": "AB889X", + "38232": "AB888X", + "38233": "AB889X", + "38235": "AB889X", + "38236": "AB889X", + "38237": "AB888X", + "38238": "AB888X", + "38240": "AB888X", + "38241": "AB888X", + "38242": "AB887X", + "38251": "AB888X", + "38253": "AB888X", + "38254": "AB888X", + "38255": "AB888X", + "38256": "AB889X", + "38257": "AB888X", + "38258": "AB889X", + "38259": "AB889X", + "38260": "AB888X", + "38261": "AB888X", + "38271": "AB888X", + "38281": "AB888X", + "38301": "AB889X", + "38302": "AB889X", + "38303": "AB889X", + "38305": "AB889X", + "38308": "AB889X", + "38310": "AB889X", + "38311": "AB889X", + "38313": "AB889X", + "38314": "AB889X", + "38315": "AB889X", + "38316": "AB889X", + "38317": "AB889X", + "38318": "AB889X", + "38320": "AB887X", + "38321": "AB889X", + "38324": "AB889X", + "38326": "AB889X", + "38327": "AB889X", + "38328": "AB889X", + "38329": "AB889X", + "38330": "AB889X", + "38331": "AB889X", + "38332": "AB889X", + "38333": "AB889X", + "38334": "AB889X", + "38336": "AB889X", + "38337": "AB889X", + "38338": "AB889X", + "38339": "AB889X", + "38340": "AB889X", + "38341": "AB889X", + "38342": "AB889X", + "38343": "AB889X", + "38344": "AB889X", + "38345": "AB889X", + "38346": "AB889X", + "38347": "AB889X", + "38348": "AB889X", + "38351": "AB889X", + "38352": "AB889X", + "38355": "AB889X", + "38356": "AB889X", + "38357": "AB889X", + "38358": "AB889X", + "38359": "AB889X", + "38361": "AB889X", + "38362": "AB889X", + "38363": "AB889X", + "38365": "AB889X", + "38366": "AB889X", + "38367": "AB889X", + "38368": "AB889X", + "38369": "AB889X", + "38370": "AB889X", + "38371": "AB889X", + "38372": "AB889X", + "38374": "AB889X", + "38375": "AB889X", + "38376": "AB889X", + "38377": "AB889X", + "38378": "AB889X", + "38379": "AB889X", + "38380": "AB889X", + "38381": "AB889X", + "38382": "AB889X", + "38387": "AB889X", + "38388": "AB889X", + "38389": "AB889X", + "38390": "AB889X", + "38391": "AB889X", + "38392": "AB889X", + "38393": "AB889X", + "38401": "AB887X", + "38402": "AB887X", + "38425": "AB889X", + "38449": "AB887X", + "38450": "AB889X", + "38451": "AB887X", + "38452": "AB889X", + "38453": "AB887X", + "38454": "AB887X", + "38455": "AB887X", + "38456": "AB887X", + "38457": "AB887X", + "38459": "AB887X", + "38460": "AB887X", + "38461": "AB887X", + "38462": "AB887X", + "38463": "AB887X", + "38464": "AB887X", + "38468": "AB887X", + "38469": "AB887X", + "38471": "AB889X", + "38472": "AB887X", + "38473": "AB887X", + "38474": "AB887X", + "38475": "AB889X", + "38476": "AB887X", + "38477": "AB887X", + "38478": "AB887X", + "38481": "AB887X", + "38482": "AB887X", + "38483": "AB887X", + "38485": "AB887X", + "38486": "AB887X", + "38487": "AB887X", + "38488": "AB887X", + "38501": "AB887X", + "38502": "AB887X", + "38503": "AB887X", + "38504": "AB888X", + "38505": "AB887X", + "38506": "AB887X", + "38541": "AB887X", + "38542": "AB887X", + "38543": "AB888X", + "38544": "AB887X", + "38545": "AB887X", + "38547": "AB887X", + "38548": "AB887X", + "38549": "AB888X", + "38550": "AB887X", + "38551": "AB887X", + "38552": "AB887X", + "38553": "AB888X", + "38554": "AB887X", + "38555": "AB888X", + "38556": "AB888X", + "38557": "AB888X", + "38558": "AB888X", + "38559": "AB887X", + "38560": "AB887X", + "38562": "AB887X", + "38563": "AB887X", + "38564": "AB887X", + "38565": "AB888X", + "38567": "AB887X", + "38568": "AB887X", + "38569": "AB887X", + "38570": "AB887X", + "38571": "AB888X", + "38572": "AB888X", + "38573": "AB887X", + "38574": "AB887X", + "38575": "AB887X", + "38577": "AB888X", + "38578": "AB888X", + "38579": "AB887X", + "38580": "AB887X", + "38581": "AB887X", + "38582": "AB887X", + "38583": "AB887X", + "38585": "AB887X", + "38587": "AB887X", + "38588": "AB887X", + "38589": "AB887X", + "38601": "AB889X", + "38602": "AB889X", + "38603": "AB889X", + "38606": "AB889X", + "38609": "AB889X", + "38610": "AB889X", + "38611": "AB889X", + "38614": "AB889X", + "38617": "AB889X", + "38618": "AB889X", + "38619": "AB889X", + "38620": "AB889X", + "38621": "AB889X", + "38622": "AB889X", + "38623": "AB889X", + "38625": "AB889X", + "38626": "AB889X", + "38627": "AB889X", + "38628": "AB889X", + "38629": "AB889X", + "38630": "AB889X", + "38631": "AB889X", + "38632": "AB889X", + "38633": "AB889X", + "38634": "AB889X", + "38635": "AB889X", + "38637": "AB889X", + "38638": "AB889X", + "38639": "AB889X", + "38641": "AB889X", + "38642": "AB889X", + "38643": "AB889X", + "38644": "AB889X", + "38645": "AB889X", + "38646": "AB889X", + "38647": "AB889X", + "38649": "AB889X", + "38650": "AB889X", + "38651": "AB889X", + "38652": "AB889X", + "38654": "AB889X", + "38655": "AB889X", + "38658": "AB889X", + "38659": "AB889X", + "38661": "AB889X", + "38663": "AB889X", + "38664": "AB889X", + "38665": "AB889X", + "38666": "AB889X", + "38668": "AB889X", + "38669": "AB889X", + "38670": "AB889X", + "38671": "AB889X", + "38672": "AB889X", + "38673": "AB889X", + "38674": "AB889X", + "38675": "AB889X", + "38676": "AB889X", + "38677": "AB889X", + "38679": "AB889X", + "38680": "AB889X", + "38683": "AB889X", + "38685": "AB889X", + "38686": "AB889X", + "38701": "AB889X", + "38702": "AB889X", + "38703": "AB889X", + "38704": "AB889X", + "38720": "AB889X", + "38721": "AB889X", + "38722": "AB889X", + "38723": "AB889X", + "38725": "AB889X", + "38726": "AB889X", + "38730": "AB889X", + "38731": "AB889X", + "38732": "AB889X", + "38733": "AB889X", + "38736": "AB889X", + "38737": "AB889X", + "38738": "AB889X", + "38739": "AB889X", + "38740": "AB889X", + "38744": "AB889X", + "38745": "AB889X", + "38746": "AB889X", + "38748": "AB889X", + "38749": "AB889X", + "38751": "AB889X", + "38753": "AB889X", + "38754": "AB889X", + "38756": "AB889X", + "38759": "AB889X", + "38760": "AB889X", + "38761": "AB889X", + "38762": "AB889X", + "38764": "AB889X", + "38765": "AB889X", + "38767": "AB889X", + "38768": "AB889X", + "38769": "AB889X", + "38771": "AB889X", + "38772": "AB889X", + "38773": "AB889X", + "38774": "AB889X", + "38776": "AB889X", + "38778": "AB889X", + "38780": "AB889X", + "38781": "AB889X", + "38782": "AB889X", + "38801": "AB889X", + "38802": "AB889X", + "38803": "AB889X", + "38804": "AB889X", + "38820": "AB889X", + "38821": "AB889X", + "38824": "AB889X", + "38825": "AB889X", + "38826": "AB889X", + "38827": "AB889X", + "38828": "AB889X", + "38829": "AB889X", + "38833": "AB889X", + "38834": "AB889X", + "38835": "AB889X", + "38838": "AB889X", + "38839": "AB889X", + "38841": "AB889X", + "38843": "AB889X", + "38844": "AB889X", + "38846": "AB889X", + "38847": "AB889X", + "38848": "AB889X", + "38849": "AB889X", + "38850": "AB889X", + "38851": "AB889X", + "38852": "AB889X", + "38855": "AB889X", + "38856": "AB889X", + "38857": "AB889X", + "38858": "AB889X", + "38859": "AB889X", + "38860": "AB889X", + "38862": "AB889X", + "38863": "AB889X", + "38864": "AB889X", + "38865": "AB889X", + "38866": "AB889X", + "38868": "AB889X", + "38869": "AB889X", + "38870": "AB889X", + "38871": "AB889X", + "38873": "AB889X", + "38874": "AB889X", + "38875": "AB889X", + "38876": "AB889X", + "38877": "AB889X", + "38878": "AB889X", + "38879": "AB889X", + "38880": "AB889X", + "38901": "AB889X", + "38902": "AB889X", + "38913": "AB889X", + "38914": "AB889X", + "38915": "AB889X", + "38916": "AB889X", + "38917": "AB889X", + "38920": "AB889X", + "38921": "AB889X", + "38922": "AB889X", + "38923": "AB889X", + "38924": "AB889X", + "38925": "AB889X", + "38926": "AB889X", + "38927": "AB889X", + "38928": "AB889X", + "38929": "AB889X", + "38930": "AB889X", + "38935": "AB889X", + "38940": "AB889X", + "38941": "AB889X", + "38943": "AB889X", + "38944": "AB889X", + "38945": "AB889X", + "38946": "AB889X", + "38947": "AB889X", + "38948": "AB889X", + "38949": "AB889X", + "38950": "AB889X", + "38951": "AB889X", + "38952": "AB889X", + "38953": "AB889X", + "38954": "AB889X", + "38955": "AB889X", + "38957": "AB889X", + "38958": "AB889X", + "38959": "AB889X", + "38960": "AB889X", + "38961": "AB889X", + "38962": "AB889X", + "38963": "AB889X", + "38964": "AB889X", + "38965": "AB889X", + "38966": "AB889X", + "38967": "AB889X", + "39000": "AB889X", + "39038": "AB889X", + "39039": "AB889X", + "39040": "AB889X", + "39041": "AB889X", + "39042": "AB889X", + "39043": "AB889X", + "39044": "AB889X", + "39045": "AB889X", + "39046": "AB889X", + "39047": "AB889X", + "39051": "AB889X", + "39054": "AB889X", + "39056": "AB889X", + "39057": "AB889X", + "39058": "AB889X", + "39059": "AB889X", + "39060": "AB889X", + "39061": "AB889X", + "39062": "AB889X", + "39063": "AB889X", + "39066": "AB889X", + "39067": "AB889X", + "39069": "AB889X", + "39071": "AB889X", + "39072": "AB889X", + "39073": "AB889X", + "39074": "AB889X", + "39077": "AB889X", + "39078": "AB889X", + "39079": "AB889X", + "39080": "AB889X", + "39081": "AB889X", + "39082": "AB889X", + "39083": "AB889X", + "39086": "AB889X", + "39087": "AB889X", + "39088": "AB889X", + "39090": "AB889X", + "39092": "AB889X", + "39094": "AB889X", + "39095": "AB889X", + "39096": "AB889X", + "39097": "AB889X", + "39098": "AB889X", + "39107": "AB889X", + "39108": "AB889X", + "39109": "AB889X", + "39110": "AB889X", + "39111": "AB889X", + "39113": "AB889X", + "39114": "AB889X", + "39115": "AB889X", + "39116": "AB889X", + "39117": "AB889X", + "39119": "AB889X", + "39120": "AB887X", + "39121": "AB887X", + "39122": "AB887X", + "39130": "AB889X", + "39140": "AB889X", + "39144": "AB889X", + "39145": "AB889X", + "39146": "AB889X", + "39148": "AB889X", + "39149": "AB889X", + "39150": "AB889X", + "39151": "AB889X", + "39152": "AB889X", + "39153": "AB889X", + "39154": "AB889X", + "39156": "AB889X", + "39157": "AB889X", + "39158": "AB889X", + "39159": "AB889X", + "39160": "AB889X", + "39161": "AB889X", + "39162": "AB889X", + "39163": "AB889X", + "39165": "AB887X", + "39166": "AB889X", + "39167": "AB889X", + "39168": "AB889X", + "39169": "AB889X", + "39170": "AB889X", + "39171": "AB889X", + "39173": "AB889X", + "39174": "AB889X", + "39175": "AB889X", + "39176": "AB889X", + "39177": "AB889X", + "39179": "AB889X", + "39180": "AB889X", + "39181": "AB889X", + "39182": "AB889X", + "39183": "AB889X", + "39189": "AB889X", + "39190": "AB887X", + "39191": "AB889X", + "39192": "AB889X", + "39193": "AB889X", + "39194": "AB889X", + "39201": "AB889X", + "39202": "AB889X", + "39203": "AB889X", + "39204": "AB889X", + "39205": "AB889X", + "39206": "AB889X", + "39207": "AB889X", + "39208": "AB889X", + "39209": "AB889X", + "39210": "AB889X", + "39211": "AB889X", + "39212": "AB889X", + "39213": "AB889X", + "39215": "AB889X", + "39216": "AB889X", + "39217": "AB889X", + "39218": "AB889X", + "39225": "AB889X", + "39232": "AB889X", + "39235": "AB889X", + "39236": "AB889X", + "39250": "AB889X", + "39269": "AB889X", + "39271": "AB889X", + "39272": "AB889X", + "39282": "AB889X", + "39283": "AB889X", + "39284": "AB889X", + "39286": "AB889X", + "39288": "AB889X", + "39289": "AB889X", + "39296": "AB889X", + "39298": "AB889X", + "39301": "AB889X", + "39302": "AB889X", + "39303": "AB889X", + "39304": "AB889X", + "39305": "AB889X", + "39307": "AB889X", + "39309": "AB889X", + "39320": "AB889X", + "39322": "AB889X", + "39323": "AB889X", + "39324": "AB889X", + "39325": "AB889X", + "39326": "AB889X", + "39327": "AB889X", + "39328": "AB889X", + "39330": "AB889X", + "39332": "AB889X", + "39335": "AB889X", + "39336": "AB889X", + "39337": "AB889X", + "39338": "AB889X", + "39339": "AB889X", + "39341": "AB889X", + "39342": "AB889X", + "39345": "AB889X", + "39346": "AB889X", + "39347": "AB889X", + "39348": "AB889X", + "39350": "AB889X", + "39351": "AB889X", + "39352": "AB889X", + "39354": "AB889X", + "39355": "AB889X", + "39356": "AB889X", + "39358": "AB889X", + "39359": "AB889X", + "39360": "AB889X", + "39361": "AB889X", + "39362": "AB889X", + "39363": "AB889X", + "39364": "AB889X", + "39365": "AB889X", + "39366": "AB889X", + "39367": "AB889X", + "39391": "AB889X", + "39392": "AB889X", + "39401": "AB889X", + "39402": "AB889X", + "39403": "AB889X", + "39404": "AB889X", + "39406": "AB889X", + "39407": "AB889X", + "39421": "AB889X", + "39422": "AB889X", + "39423": "AB889X", + "39425": "AB889X", + "39426": "AB889X", + "39427": "AB889X", + "39428": "AB889X", + "39429": "AB889X", + "39436": "AB889X", + "39437": "AB889X", + "39439": "AB889X", + "39440": "AB889X", + "39441": "AB889X", + "39442": "AB889X", + "39443": "AB889X", + "39451": "AB889X", + "39452": "AB889X", + "39455": "AB889X", + "39456": "AB889X", + "39457": "AB889X", + "39459": "AB889X", + "39460": "AB889X", + "39461": "AB889X", + "39462": "AB889X", + "39463": "AB889X", + "39464": "AB889X", + "39465": "AB889X", + "39466": "AB889X", + "39470": "AB889X", + "39474": "AB889X", + "39475": "AB889X", + "39476": "AB889X", + "39477": "AB889X", + "39478": "AB889X", + "39479": "AB889X", + "39480": "AB889X", + "39481": "AB889X", + "39482": "AB889X", + "39483": "AB889X", + "39501": "AB889X", + "39502": "AB889X", + "39503": "AB889X", + "39505": "AB889X", + "39506": "AB889X", + "39507": "AB889X", + "39520": "AB889X", + "39521": "AB889X", + "39522": "AB889X", + "39525": "AB889X", + "39529": "AB889X", + "39530": "AB889X", + "39531": "AB889X", + "39532": "AB889X", + "39533": "AB889X", + "39534": "AB889X", + "39535": "AB889X", + "39540": "AB889X", + "39552": "AB889X", + "39553": "AB889X", + "39555": "AB889X", + "39556": "AB889X", + "39558": "AB889X", + "39560": "AB889X", + "39561": "AB889X", + "39562": "AB889X", + "39563": "AB889X", + "39564": "AB889X", + "39565": "AB889X", + "39566": "AB889X", + "39567": "AB889X", + "39568": "AB889X", + "39569": "AB889X", + "39571": "AB889X", + "39572": "AB889X", + "39573": "AB889X", + "39574": "AB889X", + "39576": "AB889X", + "39577": "AB889X", + "39581": "AB889X", + "39595": "AB889X", + "39601": "AB889X", + "39602": "AB889X", + "39603": "AB889X", + "39626": "AB889X", + "39629": "AB889X", + "39630": "AB889X", + "39631": "AB889X", + "39632": "AB889X", + "39633": "AB889X", + "39635": "AB889X", + "39638": "AB889X", + "39641": "AB889X", + "39643": "AB889X", + "39645": "AB889X", + "39647": "AB889X", + "39648": "AB889X", + "39649": "AB889X", + "39652": "AB889X", + "39653": "AB889X", + "39654": "AB889X", + "39656": "AB889X", + "39657": "AB889X", + "39661": "AB889X", + "39662": "AB889X", + "39663": "AB889X", + "39664": "AB889X", + "39665": "AB889X", + "39666": "AB889X", + "39667": "AB889X", + "39668": "AB889X", + "39669": "AB889X", + "39701": "AB889X", + "39702": "AB889X", + "39703": "AB889X", + "39704": "AB889X", + "39705": "AB889X", + "39710": "AB889X", + "39730": "AB889X", + "39733": "AB889X", + "39735": "AB889X", + "39736": "AB889X", + "39737": "AB889X", + "39739": "AB889X", + "39740": "AB889X", + "39741": "AB889X", + "39743": "AB889X", + "39744": "AB889X", + "39745": "AB889X", + "39746": "AB889X", + "39747": "AB889X", + "39750": "AB889X", + "39751": "AB889X", + "39752": "AB889X", + "39753": "AB889X", + "39754": "AB889X", + "39755": "AB889X", + "39756": "AB889X", + "39759": "AB889X", + "39760": "AB889X", + "39762": "AB889X", + "39766": "AB889X", + "39767": "AB889X", + "39769": "AB889X", + "39771": "AB889X", + "39772": "AB889X", + "39773": "AB889X", + "39776": "AB889X", + "39813": "AB891X", + "39815": "AB891X", + "39817": "AB891X", + "39818": "AB891X", + "39819": "AB891X", + "39823": "AB890X", + "39824": "AB890X", + "39825": "AB891X", + "39826": "AB891X", + "39827": "AB891X", + "39828": "AB891X", + "39829": "AB891X", + "39832": "AB890X", + "39834": "AB891X", + "39836": "AB890X", + "39837": "AB891X", + "39840": "AB890X", + "39841": "AB890X", + "39842": "AB891X", + "39845": "AB891X", + "39846": "AB891X", + "39851": "AB890X", + "39852": "AB891X", + "39854": "AB890X", + "39859": "AB891X", + "39861": "AB890X", + "39862": "AB891X", + "39866": "AB891X", + "39867": "AB890X", + "39870": "AB891X", + "39877": "AB891X", + "39885": "AB891X", + "39886": "AB890X", + "39897": "AB891X", + "39901": "AB889X", + "40003": "AB888X", + "40004": "AB888X", + "40006": "AB888X", + "40007": "AB888X", + "40008": "AB888X", + "40009": "AB888X", + "40010": "AB888X", + "40011": "AB888X", + "40012": "AB888X", + "40013": "AB888X", + "40014": "AB888X", + "40018": "AB888X", + "40019": "AB888X", + "40020": "AB888X", + "40022": "AB888X", + "40023": "AB888X", + "40025": "AB888X", + "40026": "AB888X", + "40027": "AB888X", + "40031": "AB888X", + "40032": "AB888X", + "40033": "AB888X", + "40036": "AB888X", + "40037": "AB888X", + "40040": "AB888X", + "40041": "AB888X", + "40045": "AB888X", + "40046": "AB888X", + "40047": "AB888X", + "40048": "AB888X", + "40049": "AB888X", + "40050": "AB888X", + "40051": "AB888X", + "40052": "AB888X", + "40055": "AB888X", + "40056": "AB888X", + "40057": "AB888X", + "40058": "AB888X", + "40059": "AB888X", + "40060": "AB888X", + "40061": "AB888X", + "40062": "AB888X", + "40063": "AB888X", + "40065": "AB888X", + "40066": "AB888X", + "40067": "AB888X", + "40068": "AB888X", + "40069": "AB888X", + "40070": "AB888X", + "40071": "AB888X", + "40075": "AB888X", + "40076": "AB888X", + "40077": "AB888X", + "40078": "AB888X", + "40104": "AB888X", + "40107": "AB888X", + "40108": "AB888X", + "40109": "AB888X", + "40110": "AB888X", + "40111": "AB888X", + "40115": "AB888X", + "40117": "AB888X", + "40118": "AB888X", + "40119": "AB888X", + "40121": "AB888X", + "40129": "AB888X", + "40140": "AB888X", + "40142": "AB888X", + "40143": "AB888X", + "40144": "AB888X", + "40145": "AB888X", + "40146": "AB888X", + "40150": "AB888X", + "40152": "AB888X", + "40153": "AB888X", + "40155": "AB888X", + "40157": "AB888X", + "40159": "AB888X", + "40160": "AB888X", + "40161": "AB888X", + "40162": "AB888X", + "40165": "AB888X", + "40170": "AB888X", + "40171": "AB888X", + "40175": "AB888X", + "40176": "AB888X", + "40177": "AB888X", + "40178": "AB888X", + "40201": "AB888X", + "40202": "AB888X", + "40203": "AB888X", + "40204": "AB888X", + "40205": "AB888X", + "40206": "AB888X", + "40207": "AB888X", + "40208": "AB888X", + "40209": "AB888X", + "40210": "AB888X", + "40211": "AB888X", + "40212": "AB888X", + "40213": "AB888X", + "40214": "AB888X", + "40215": "AB888X", + "40216": "AB888X", + "40217": "AB888X", + "40218": "AB888X", + "40219": "AB888X", + "40220": "AB888X", + "40221": "AB888X", + "40222": "AB888X", + "40223": "AB888X", + "40224": "AB888X", + "40225": "AB888X", + "40228": "AB888X", + "40229": "AB888X", + "40231": "AB888X", + "40232": "AB888X", + "40233": "AB888X", + "40241": "AB888X", + "40242": "AB888X", + "40243": "AB888X", + "40245": "AB888X", + "40250": "AB888X", + "40251": "AB888X", + "40252": "AB888X", + "40253": "AB888X", + "40255": "AB888X", + "40256": "AB888X", + "40257": "AB888X", + "40258": "AB888X", + "40259": "AB888X", + "40261": "AB888X", + "40266": "AB888X", + "40268": "AB888X", + "40269": "AB888X", + "40270": "AB888X", + "40272": "AB888X", + "40280": "AB888X", + "40281": "AB888X", + "40282": "AB888X", + "40283": "AB888X", + "40285": "AB888X", + "40287": "AB888X", + "40289": "AB888X", + "40290": "AB888X", + "40291": "AB888X", + "40292": "AB888X", + "40293": "AB888X", + "40294": "AB888X", + "40295": "AB888X", + "40296": "AB888X", + "40297": "AB888X", + "40298": "AB888X", + "40299": "AB888X", + "40310": "AB888X", + "40311": "AB888X", + "40312": "AB888X", + "40313": "AB888X", + "40316": "AB888X", + "40317": "AB888X", + "40319": "AB888X", + "40322": "AB888X", + "40324": "AB888X", + "40328": "AB888X", + "40330": "AB888X", + "40334": "AB888X", + "40336": "AB888X", + "40337": "AB888X", + "40339": "AB888X", + "40340": "AB888X", + "40342": "AB888X", + "40346": "AB888X", + "40347": "AB888X", + "40348": "AB888X", + "40350": "AB888X", + "40351": "AB888X", + "40353": "AB888X", + "40355": "AB890X", + "40356": "AB888X", + "40357": "AB888X", + "40358": "AB888X", + "40359": "AB890X", + "40360": "AB888X", + "40361": "AB888X", + "40362": "AB888X", + "40363": "AB890X", + "40366": "AB888X", + "40370": "AB888X", + "40371": "AB888X", + "40372": "AB888X", + "40374": "AB888X", + "40376": "AB888X", + "40379": "AB888X", + "40380": "AB888X", + "40383": "AB888X", + "40384": "AB888X", + "40385": "AB888X", + "40386": "AB888X", + "40387": "AB888X", + "40390": "AB888X", + "40391": "AB888X", + "40392": "AB888X", + "40400": "AB888X", + "40402": "AB888X", + "40403": "AB888X", + "40404": "AB888X", + "40405": "AB888X", + "40409": "AB888X", + "40410": "AB888X", + "40419": "AB888X", + "40422": "AB888X", + "40423": "AB888X", + "40427": "AB888X", + "40434": "AB888X", + "40437": "AB888X", + "40440": "AB888X", + "40442": "AB888X", + "40444": "AB888X", + "40445": "AB888X", + "40446": "AB888X", + "40447": "AB888X", + "40448": "AB888X", + "40452": "AB888X", + "40456": "AB888X", + "40460": "AB888X", + "40461": "AB888X", + "40464": "AB888X", + "40468": "AB888X", + "40472": "AB888X", + "40473": "AB888X", + "40475": "AB888X", + "40476": "AB888X", + "40481": "AB888X", + "40484": "AB888X", + "40486": "AB888X", + "40488": "AB888X", + "40489": "AB888X", + "40492": "AB888X", + "40495": "AB888X", + "40501": "AB888X", + "40502": "AB888X", + "40503": "AB888X", + "40504": "AB888X", + "40505": "AB888X", + "40506": "AB888X", + "40507": "AB888X", + "40508": "AB888X", + "40509": "AB888X", + "40510": "AB888X", + "40511": "AB888X", + "40512": "AB888X", + "40513": "AB888X", + "40514": "AB888X", + "40515": "AB888X", + "40516": "AB888X", + "40517": "AB888X", + "40522": "AB888X", + "40523": "AB888X", + "40524": "AB888X", + "40526": "AB888X", + "40533": "AB888X", + "40536": "AB888X", + "40544": "AB888X", + "40546": "AB888X", + "40550": "AB888X", + "40555": "AB888X", + "40574": "AB888X", + "40575": "AB888X", + "40576": "AB888X", + "40577": "AB888X", + "40578": "AB888X", + "40579": "AB888X", + "40580": "AB888X", + "40581": "AB888X", + "40582": "AB888X", + "40583": "AB888X", + "40585": "AB888X", + "40588": "AB888X", + "40591": "AB888X", + "40598": "AB888X", + "40601": "AB888X", + "40602": "AB888X", + "40603": "AB888X", + "40604": "AB888X", + "40618": "AB888X", + "40619": "AB888X", + "40620": "AB888X", + "40621": "AB888X", + "40622": "AB888X", + "40701": "AB888X", + "40702": "AB888X", + "40724": "AB888X", + "40729": "AB888X", + "40730": "AB888X", + "40734": "AB888X", + "40737": "AB888X", + "40740": "AB888X", + "40741": "AB888X", + "40742": "AB888X", + "40743": "AB888X", + "40744": "AB888X", + "40745": "AB888X", + "40754": "AB888X", + "40755": "AB888X", + "40759": "AB888X", + "40763": "AB888X", + "40769": "AB888X", + "40771": "AB888X", + "40801": "AB888X", + "40803": "AB888X", + "40806": "AB888X", + "40807": "AB888X", + "40808": "AB888X", + "40810": "AB888X", + "40813": "AB888X", + "40815": "AB888X", + "40816": "AB888X", + "40818": "AB888X", + "40819": "AB888X", + "40820": "AB888X", + "40823": "AB888X", + "40824": "AB888X", + "40826": "AB888X", + "40827": "AB888X", + "40828": "AB888X", + "40829": "AB888X", + "40830": "AB888X", + "40831": "AB888X", + "40840": "AB888X", + "40843": "AB888X", + "40844": "AB888X", + "40845": "AB888X", + "40847": "AB888X", + "40849": "AB888X", + "40854": "AB888X", + "40855": "AB888X", + "40856": "AB888X", + "40858": "AB888X", + "40862": "AB888X", + "40863": "AB888X", + "40865": "AB888X", + "40868": "AB888X", + "40870": "AB888X", + "40873": "AB888X", + "40874": "AB888X", + "40902": "AB888X", + "40903": "AB888X", + "40906": "AB888X", + "40913": "AB888X", + "40914": "AB888X", + "40915": "AB888X", + "40921": "AB888X", + "40923": "AB888X", + "40927": "AB888X", + "40930": "AB888X", + "40931": "AB888X", + "40932": "AB888X", + "40935": "AB888X", + "40939": "AB888X", + "40940": "AB888X", + "40941": "AB888X", + "40943": "AB888X", + "40944": "AB888X", + "40946": "AB888X", + "40949": "AB888X", + "40951": "AB888X", + "40953": "AB888X", + "40955": "AB888X", + "40958": "AB888X", + "40962": "AB888X", + "40964": "AB888X", + "40965": "AB888X", + "40972": "AB888X", + "40977": "AB888X", + "40979": "AB888X", + "40981": "AB888X", + "40982": "AB888X", + "40983": "AB888X", + "40988": "AB888X", + "40995": "AB888X", + "40997": "AB888X", + "40999": "AB888X", + "41001": "AB890X", + "41002": "AB890X", + "41003": "AB888X", + "41004": "AB890X", + "41005": "AB890X", + "41006": "AB888X", + "41007": "AB888X", + "41008": "AB888X", + "41010": "AB890X", + "41011": "AB890X", + "41012": "AB890X", + "41014": "AB890X", + "41015": "AB890X", + "41016": "AB890X", + "41017": "AB890X", + "41018": "AB890X", + "41019": "AB890X", + "41022": "AB890X", + "41030": "AB890X", + "41031": "AB888X", + "41033": "AB890X", + "41034": "AB890X", + "41035": "AB890X", + "41037": "AB890X", + "41039": "AB890X", + "41040": "AB890X", + "41041": "AB890X", + "41042": "AB890X", + "41043": "AB890X", + "41044": "AB890X", + "41045": "AB888X", + "41046": "AB890X", + "41048": "AB890X", + "41049": "AB890X", + "41051": "AB890X", + "41052": "AB890X", + "41053": "AB890X", + "41054": "AB890X", + "41055": "AB890X", + "41056": "AB890X", + "41059": "AB888X", + "41061": "AB888X", + "41062": "AB890X", + "41063": "AB890X", + "41064": "AB890X", + "41065": "AB890X", + "41071": "AB888X", + "41072": "AB888X", + "41073": "AB888X", + "41074": "AB888X", + "41075": "AB888X", + "41076": "AB888X", + "41080": "AB890X", + "41081": "AB890X", + "41083": "AB888X", + "41085": "AB888X", + "41086": "AB890X", + "41091": "AB890X", + "41092": "AB890X", + "41093": "AB890X", + "41094": "AB890X", + "41095": "AB890X", + "41096": "AB890X", + "41097": "AB890X", + "41098": "AB888X", + "41099": "AB888X", + "41101": "AB900X", + "41102": "AB900X", + "41105": "AB900X", + "41114": "AB900X", + "41121": "AB900X", + "41124": "AB900X", + "41128": "AB888X", + "41129": "AB900X", + "41132": "AB888X", + "41135": "AB890X", + "41139": "AB900X", + "41141": "AB900X", + "41142": "AB888X", + "41143": "AB900X", + "41144": "AB900X", + "41146": "AB888X", + "41149": "AB900X", + "41159": "AB900X", + "41160": "AB900X", + "41164": "AB900X", + "41166": "AB890X", + "41168": "AB900X", + "41169": "AB900X", + "41171": "AB900X", + "41173": "AB900X", + "41174": "AB900X", + "41175": "AB900X", + "41179": "AB890X", + "41180": "AB900X", + "41181": "AB900X", + "41183": "AB900X", + "41189": "AB890X", + "41201": "AB900X", + "41203": "AB900X", + "41204": "AB900X", + "41214": "AB900X", + "41216": "AB900X", + "41219": "AB900X", + "41222": "AB900X", + "41224": "AB900X", + "41226": "AB900X", + "41230": "AB900X", + "41231": "AB900X", + "41232": "AB900X", + "41234": "AB900X", + "41235": "AB900X", + "41238": "AB900X", + "41240": "AB900X", + "41250": "AB900X", + "41254": "AB900X", + "41255": "AB900X", + "41256": "AB900X", + "41257": "AB900X", + "41260": "AB900X", + "41262": "AB900X", + "41263": "AB900X", + "41264": "AB900X", + "41265": "AB900X", + "41267": "AB900X", + "41268": "AB900X", + "41271": "AB900X", + "41274": "AB900X", + "41301": "AB888X", + "41307": "AB888X", + "41310": "AB888X", + "41311": "AB888X", + "41313": "AB888X", + "41314": "AB888X", + "41317": "AB888X", + "41332": "AB888X", + "41333": "AB888X", + "41338": "AB888X", + "41339": "AB888X", + "41347": "AB888X", + "41348": "AB888X", + "41351": "AB888X", + "41352": "AB900X", + "41360": "AB888X", + "41362": "AB888X", + "41364": "AB888X", + "41365": "AB888X", + "41366": "AB888X", + "41367": "AB888X", + "41368": "AB888X", + "41385": "AB888X", + "41386": "AB888X", + "41390": "AB888X", + "41397": "AB888X", + "41408": "AB900X", + "41413": "AB900X", + "41421": "AB900X", + "41425": "AB900X", + "41426": "AB900X", + "41433": "AB900X", + "41451": "AB900X", + "41459": "AB900X", + "41464": "AB900X", + "41465": "AB900X", + "41472": "AB900X", + "41477": "AB900X", + "41501": "AB900X", + "41502": "AB900X", + "41503": "AB900X", + "41512": "AB900X", + "41513": "AB900X", + "41514": "AB900X", + "41517": "AB900X", + "41519": "AB900X", + "41520": "AB900X", + "41522": "AB900X", + "41524": "AB900X", + "41526": "AB900X", + "41527": "AB900X", + "41528": "AB900X", + "41531": "AB900X", + "41534": "AB900X", + "41535": "AB900X", + "41537": "AB888X", + "41538": "AB900X", + "41539": "AB900X", + "41540": "AB900X", + "41542": "AB900X", + "41543": "AB900X", + "41544": "AB900X", + "41547": "AB900X", + "41548": "AB900X", + "41549": "AB900X", + "41553": "AB900X", + "41554": "AB900X", + "41555": "AB900X", + "41557": "AB900X", + "41558": "AB900X", + "41559": "AB900X", + "41560": "AB900X", + "41561": "AB900X", + "41562": "AB900X", + "41563": "AB900X", + "41564": "AB900X", + "41566": "AB900X", + "41567": "AB900X", + "41568": "AB900X", + "41571": "AB900X", + "41572": "AB900X", + "41601": "AB900X", + "41602": "AB900X", + "41603": "AB900X", + "41604": "AB900X", + "41605": "AB900X", + "41606": "AB900X", + "41607": "AB900X", + "41612": "AB900X", + "41615": "AB900X", + "41616": "AB900X", + "41619": "AB900X", + "41621": "AB900X", + "41622": "AB900X", + "41630": "AB900X", + "41631": "AB900X", + "41632": "AB900X", + "41635": "AB900X", + "41636": "AB900X", + "41640": "AB900X", + "41642": "AB900X", + "41643": "AB900X", + "41645": "AB900X", + "41647": "AB900X", + "41649": "AB900X", + "41650": "AB900X", + "41651": "AB900X", + "41653": "AB900X", + "41655": "AB900X", + "41659": "AB900X", + "41660": "AB900X", + "41663": "AB900X", + "41666": "AB900X", + "41667": "AB900X", + "41669": "AB900X", + "41695": "AB900X", + "41701": "AB888X", + "41702": "AB888X", + "41712": "AB888X", + "41713": "AB888X", + "41714": "AB888X", + "41719": "AB888X", + "41721": "AB888X", + "41722": "AB888X", + "41723": "AB888X", + "41725": "AB900X", + "41727": "AB888X", + "41729": "AB888X", + "41731": "AB888X", + "41735": "AB888X", + "41736": "AB888X", + "41739": "AB888X", + "41740": "AB900X", + "41743": "AB900X", + "41745": "AB888X", + "41746": "AB888X", + "41747": "AB888X", + "41749": "AB888X", + "41751": "AB888X", + "41754": "AB888X", + "41759": "AB900X", + "41760": "AB888X", + "41762": "AB888X", + "41763": "AB888X", + "41764": "AB888X", + "41766": "AB888X", + "41772": "AB900X", + "41773": "AB888X", + "41774": "AB888X", + "41775": "AB888X", + "41776": "AB888X", + "41777": "AB888X", + "41778": "AB888X", + "41804": "AB888X", + "41810": "AB888X", + "41812": "AB888X", + "41815": "AB888X", + "41817": "AB900X", + "41819": "AB888X", + "41821": "AB888X", + "41822": "AB900X", + "41824": "AB888X", + "41825": "AB888X", + "41826": "AB888X", + "41828": "AB900X", + "41831": "AB900X", + "41832": "AB888X", + "41833": "AB888X", + "41834": "AB900X", + "41835": "AB888X", + "41836": "AB900X", + "41837": "AB888X", + "41838": "AB888X", + "41839": "AB900X", + "41840": "AB888X", + "41843": "AB900X", + "41844": "AB900X", + "41845": "AB888X", + "41847": "AB900X", + "41848": "AB888X", + "41849": "AB888X", + "41855": "AB888X", + "41858": "AB888X", + "41859": "AB900X", + "41861": "AB900X", + "41862": "AB900X", + "42001": "AB888X", + "42002": "AB888X", + "42003": "AB888X", + "42020": "AB888X", + "42021": "AB888X", + "42022": "AB888X", + "42023": "AB888X", + "42024": "AB888X", + "42025": "AB888X", + "42027": "AB888X", + "42028": "AB888X", + "42029": "AB888X", + "42031": "AB888X", + "42032": "AB888X", + "42033": "AB888X", + "42035": "AB888X", + "42036": "AB888X", + "42037": "AB888X", + "42038": "AB888X", + "42039": "AB888X", + "42040": "AB888X", + "42041": "AB888X", + "42044": "AB888X", + "42045": "AB888X", + "42047": "AB888X", + "42048": "AB888X", + "42049": "AB888X", + "42050": "AB888X", + "42051": "AB888X", + "42053": "AB888X", + "42054": "AB888X", + "42055": "AB888X", + "42056": "AB888X", + "42058": "AB888X", + "42060": "AB888X", + "42061": "AB888X", + "42063": "AB888X", + "42064": "AB888X", + "42066": "AB888X", + "42069": "AB888X", + "42070": "AB888X", + "42071": "AB888X", + "42076": "AB888X", + "42078": "AB888X", + "42079": "AB888X", + "42081": "AB888X", + "42082": "AB888X", + "42083": "AB888X", + "42084": "AB888X", + "42085": "AB888X", + "42086": "AB888X", + "42087": "AB888X", + "42088": "AB888X", + "42101": "AB887X", + "42102": "AB887X", + "42103": "AB887X", + "42104": "AB887X", + "42120": "AB887X", + "42122": "AB887X", + "42123": "AB887X", + "42124": "AB887X", + "42127": "AB887X", + "42128": "AB887X", + "42129": "AB887X", + "42130": "AB887X", + "42131": "AB887X", + "42133": "AB887X", + "42134": "AB887X", + "42135": "AB887X", + "42140": "AB887X", + "42141": "AB887X", + "42142": "AB887X", + "42151": "AB887X", + "42152": "AB887X", + "42153": "AB887X", + "42154": "AB887X", + "42156": "AB887X", + "42157": "AB887X", + "42159": "AB887X", + "42160": "AB887X", + "42163": "AB887X", + "42164": "AB887X", + "42166": "AB887X", + "42167": "AB887X", + "42170": "AB887X", + "42171": "AB887X", + "42201": "AB887X", + "42202": "AB887X", + "42204": "AB887X", + "42206": "AB887X", + "42207": "AB887X", + "42210": "AB887X", + "42211": "AB887X", + "42214": "AB887X", + "42215": "AB887X", + "42216": "AB887X", + "42217": "AB887X", + "42219": "AB887X", + "42220": "AB887X", + "42221": "AB887X", + "42223": "AB887X", + "42232": "AB887X", + "42234": "AB887X", + "42236": "AB887X", + "42240": "AB887X", + "42241": "AB887X", + "42252": "AB887X", + "42254": "AB887X", + "42256": "AB887X", + "42259": "AB887X", + "42261": "AB887X", + "42262": "AB887X", + "42265": "AB887X", + "42266": "AB887X", + "42273": "AB887X", + "42274": "AB887X", + "42275": "AB887X", + "42276": "AB887X", + "42280": "AB887X", + "42283": "AB887X", + "42285": "AB887X", + "42286": "AB887X", + "42287": "AB887X", + "42288": "AB887X", + "42301": "AB888X", + "42302": "AB888X", + "42303": "AB888X", + "42304": "AB888X", + "42320": "AB888X", + "42321": "AB888X", + "42322": "AB888X", + "42323": "AB888X", + "42324": "AB888X", + "42325": "AB888X", + "42326": "AB888X", + "42327": "AB888X", + "42328": "AB888X", + "42330": "AB888X", + "42332": "AB888X", + "42333": "AB888X", + "42334": "AB888X", + "42336": "AB888X", + "42337": "AB888X", + "42338": "AB888X", + "42339": "AB888X", + "42340": "AB888X", + "42343": "AB888X", + "42344": "AB888X", + "42345": "AB888X", + "42347": "AB888X", + "42348": "AB888X", + "42349": "AB888X", + "42350": "AB888X", + "42351": "AB888X", + "42352": "AB888X", + "42354": "AB888X", + "42355": "AB888X", + "42356": "AB888X", + "42358": "AB888X", + "42361": "AB888X", + "42364": "AB888X", + "42365": "AB888X", + "42366": "AB888X", + "42367": "AB888X", + "42368": "AB888X", + "42369": "AB888X", + "42370": "AB888X", + "42371": "AB888X", + "42372": "AB888X", + "42374": "AB888X", + "42375": "AB888X", + "42376": "AB888X", + "42377": "AB888X", + "42378": "AB888X", + "42402": "AB888X", + "42403": "AB888X", + "42404": "AB888X", + "42406": "AB888X", + "42408": "AB888X", + "42409": "AB888X", + "42410": "AB888X", + "42411": "AB888X", + "42413": "AB888X", + "42419": "AB888X", + "42420": "AB888X", + "42431": "AB888X", + "42436": "AB888X", + "42437": "AB888X", + "42440": "AB888X", + "42441": "AB888X", + "42442": "AB888X", + "42444": "AB888X", + "42445": "AB888X", + "42450": "AB888X", + "42451": "AB888X", + "42452": "AB888X", + "42453": "AB888X", + "42455": "AB888X", + "42456": "AB888X", + "42457": "AB888X", + "42458": "AB888X", + "42459": "AB888X", + "42460": "AB888X", + "42461": "AB888X", + "42462": "AB888X", + "42463": "AB888X", + "42464": "AB888X", + "42501": "AB888X", + "42502": "AB888X", + "42503": "AB888X", + "42516": "AB888X", + "42518": "AB888X", + "42519": "AB888X", + "42528": "AB888X", + "42533": "AB888X", + "42539": "AB888X", + "42541": "AB888X", + "42544": "AB888X", + "42553": "AB888X", + "42558": "AB888X", + "42564": "AB888X", + "42565": "AB888X", + "42566": "AB888X", + "42567": "AB888X", + "42602": "AB888X", + "42603": "AB888X", + "42629": "AB888X", + "42631": "AB888X", + "42633": "AB888X", + "42634": "AB888X", + "42635": "AB888X", + "42638": "AB888X", + "42642": "AB888X", + "42647": "AB888X", + "42649": "AB888X", + "42653": "AB888X", + "42701": "AB888X", + "42702": "AB888X", + "42712": "AB888X", + "42713": "AB887X", + "42715": "AB888X", + "42716": "AB888X", + "42717": "AB887X", + "42718": "AB888X", + "42719": "AB888X", + "42720": "AB888X", + "42721": "AB888X", + "42722": "AB887X", + "42724": "AB888X", + "42726": "AB888X", + "42728": "AB888X", + "42729": "AB887X", + "42731": "AB887X", + "42732": "AB888X", + "42733": "AB888X", + "42740": "AB888X", + "42741": "AB888X", + "42742": "AB888X", + "42743": "AB888X", + "42746": "AB887X", + "42748": "AB888X", + "42749": "AB887X", + "42753": "AB888X", + "42754": "AB888X", + "42755": "AB888X", + "42757": "AB888X", + "42758": "AB888X", + "42759": "AB887X", + "42762": "AB888X", + "42764": "AB888X", + "42765": "AB887X", + "42776": "AB888X", + "42782": "AB888X", + "42784": "AB888X", + "42788": "AB888X", + "43000": "AB890X", + "43001": "AB890X", + "43002": "AB890X", + "43003": "AB890X", + "43004": "AB890X", + "43005": "AB890X", + "43006": "AB890X", + "43007": "AB890X", + "43008": "AB890X", + "43009": "AB890X", + "43010": "AB890X", + "43011": "AB890X", + "43013": "AB890X", + "43014": "AB890X", + "43015": "AB890X", + "43016": "AB890X", + "43017": "AB890X", + "43018": "AB890X", + "43019": "AB890X", + "43021": "AB890X", + "43022": "AB890X", + "43023": "AB890X", + "43025": "AB890X", + "43026": "AB890X", + "43027": "AB890X", + "43028": "AB890X", + "43029": "AB890X", + "43030": "AB890X", + "43031": "AB890X", + "43032": "AB890X", + "43033": "AB890X", + "43035": "AB890X", + "43036": "AB890X", + "43037": "AB890X", + "43040": "AB890X", + "43041": "AB890X", + "43044": "AB890X", + "43045": "AB890X", + "43046": "AB890X", + "43047": "AB890X", + "43048": "AB890X", + "43050": "AB890X", + "43054": "AB890X", + "43055": "AB890X", + "43056": "AB890X", + "43058": "AB889X", + "43060": "AB890X", + "43061": "AB890X", + "43062": "AB890X", + "43064": "AB890X", + "43065": "AB890X", + "43066": "AB890X", + "43067": "AB890X", + "43068": "AB890X", + "43070": "AB890X", + "43071": "AB890X", + "43072": "AB890X", + "43073": "AB890X", + "43074": "AB890X", + "43076": "AB890X", + "43077": "AB890X", + "43078": "AB890X", + "43080": "AB890X", + "43081": "AB890X", + "43082": "AB890X", + "43083": "AB890X", + "43084": "AB890X", + "43085": "AB890X", + "43086": "AB890X", + "43093": "AB890X", + "43098": "AB890X", + "43101": "AB890X", + "43102": "AB890X", + "43103": "AB890X", + "43105": "AB890X", + "43106": "AB890X", + "43107": "AB890X", + "43109": "AB890X", + "43110": "AB890X", + "43111": "AB890X", + "43112": "AB890X", + "43113": "AB890X", + "43115": "AB890X", + "43116": "AB890X", + "43117": "AB890X", + "43119": "AB890X", + "43123": "AB890X", + "43125": "AB890X", + "43126": "AB890X", + "43127": "AB890X", + "43128": "AB890X", + "43130": "AB890X", + "43135": "AB890X", + "43136": "AB890X", + "43137": "AB890X", + "43138": "AB890X", + "43140": "AB890X", + "43142": "AB890X", + "43143": "AB890X", + "43144": "AB890X", + "43145": "AB890X", + "43146": "AB890X", + "43147": "AB890X", + "43148": "AB890X", + "43149": "AB890X", + "43150": "AB890X", + "43151": "AB890X", + "43152": "AB890X", + "43153": "AB890X", + "43154": "AB890X", + "43155": "AB890X", + "43156": "AB890X", + "43157": "AB890X", + "43158": "AB890X", + "43160": "AB890X", + "43162": "AB890X", + "43163": "AB890X", + "43164": "AB890X", + "43195": "AB890X", + "43196": "AB890X", + "43198": "AB890X", + "43199": "AB890X", + "43201": "AB890X", + "43202": "AB890X", + "43203": "AB890X", + "43204": "AB890X", + "43205": "AB890X", + "43206": "AB890X", + "43207": "AB890X", + "43209": "AB890X", + "43210": "AB890X", + "43211": "AB890X", + "43212": "AB890X", + "43213": "AB890X", + "43214": "AB890X", + "43215": "AB890X", + "43216": "AB890X", + "43217": "AB890X", + "43218": "AB890X", + "43219": "AB890X", + "43220": "AB890X", + "43221": "AB890X", + "43222": "AB890X", + "43223": "AB890X", + "43224": "AB890X", + "43226": "AB890X", + "43227": "AB890X", + "43228": "AB890X", + "43229": "AB890X", + "43230": "AB890X", + "43231": "AB890X", + "43232": "AB890X", + "43234": "AB890X", + "43235": "AB890X", + "43236": "AB890X", + "43240": "AB890X", + "43251": "AB890X", + "43260": "AB890X", + "43265": "AB890X", + "43266": "AB890X", + "43268": "AB890X", + "43270": "AB890X", + "43271": "AB890X", + "43272": "AB890X", + "43279": "AB890X", + "43287": "AB890X", + "43291": "AB890X", + "43299": "AB890X", + "43301": "AB890X", + "43302": "AB890X", + "43306": "AB890X", + "43307": "AB890X", + "43310": "AB890X", + "43311": "AB890X", + "43314": "AB890X", + "43315": "AB890X", + "43316": "AB890X", + "43317": "AB890X", + "43318": "AB890X", + "43319": "AB890X", + "43320": "AB890X", + "43321": "AB890X", + "43322": "AB890X", + "43323": "AB890X", + "43324": "AB890X", + "43325": "AB890X", + "43326": "AB890X", + "43330": "AB890X", + "43331": "AB890X", + "43332": "AB890X", + "43333": "AB890X", + "43334": "AB890X", + "43335": "AB890X", + "43336": "AB890X", + "43337": "AB890X", + "43338": "AB890X", + "43340": "AB890X", + "43341": "AB890X", + "43342": "AB890X", + "43343": "AB890X", + "43344": "AB890X", + "43345": "AB890X", + "43346": "AB890X", + "43347": "AB890X", + "43348": "AB890X", + "43349": "AB890X", + "43350": "AB890X", + "43351": "AB890X", + "43356": "AB890X", + "43357": "AB890X", + "43358": "AB890X", + "43359": "AB890X", + "43360": "AB890X", + "43402": "AB890X", + "43403": "AB890X", + "43406": "AB890X", + "43407": "AB890X", + "43408": "AB890X", + "43410": "AB890X", + "43412": "AB890X", + "43413": "AB890X", + "43414": "AB890X", + "43416": "AB890X", + "43420": "AB890X", + "43430": "AB890X", + "43431": "AB890X", + "43432": "AB890X", + "43433": "AB890X", + "43434": "AB890X", + "43435": "AB890X", + "43436": "AB890X", + "43437": "AB890X", + "43438": "AB890X", + "43439": "AB890X", + "43440": "AB890X", + "43441": "AB890X", + "43442": "AB890X", + "43443": "AB890X", + "43445": "AB890X", + "43446": "AB890X", + "43447": "AB890X", + "43449": "AB890X", + "43450": "AB890X", + "43451": "AB890X", + "43452": "AB890X", + "43456": "AB890X", + "43457": "AB890X", + "43458": "AB890X", + "43460": "AB890X", + "43462": "AB890X", + "43463": "AB890X", + "43464": "AB890X", + "43465": "AB890X", + "43466": "AB890X", + "43467": "AB890X", + "43468": "AB890X", + "43469": "AB890X", + "43501": "AB890X", + "43502": "AB890X", + "43504": "AB890X", + "43505": "AB890X", + "43506": "AB890X", + "43510": "AB890X", + "43511": "AB890X", + "43512": "AB890X", + "43515": "AB890X", + "43516": "AB890X", + "43517": "AB890X", + "43518": "AB890X", + "43519": "AB890X", + "43520": "AB890X", + "43521": "AB890X", + "43522": "AB890X", + "43523": "AB890X", + "43524": "AB890X", + "43525": "AB890X", + "43526": "AB890X", + "43527": "AB890X", + "43528": "AB890X", + "43529": "AB890X", + "43530": "AB890X", + "43531": "AB890X", + "43532": "AB890X", + "43533": "AB890X", + "43534": "AB890X", + "43535": "AB890X", + "43536": "AB890X", + "43537": "AB890X", + "43540": "AB890X", + "43541": "AB890X", + "43542": "AB890X", + "43543": "AB890X", + "43545": "AB890X", + "43547": "AB890X", + "43548": "AB890X", + "43549": "AB890X", + "43550": "AB890X", + "43551": "AB890X", + "43552": "AB890X", + "43553": "AB890X", + "43554": "AB890X", + "43555": "AB890X", + "43556": "AB890X", + "43557": "AB890X", + "43558": "AB890X", + "43560": "AB890X", + "43565": "AB890X", + "43566": "AB890X", + "43567": "AB890X", + "43569": "AB890X", + "43570": "AB890X", + "43571": "AB890X", + "43601": "AB890X", + "43603": "AB890X", + "43604": "AB890X", + "43605": "AB889X", + "43606": "AB890X", + "43607": "AB890X", + "43608": "AB890X", + "43609": "AB890X", + "43610": "AB890X", + "43611": "AB890X", + "43612": "AB889X", + "43613": "AB890X", + "43614": "AB890X", + "43615": "AB890X", + "43616": "AB890X", + "43617": "AB890X", + "43618": "AB890X", + "43619": "AB890X", + "43620": "AB890X", + "43623": "AB890X", + "43635": "AB890X", + "43652": "AB890X", + "43654": "AB890X", + "43656": "AB890X", + "43657": "AB890X", + "43659": "AB890X", + "43660": "AB890X", + "43661": "AB890X", + "43666": "AB890X", + "43667": "AB890X", + "43681": "AB890X", + "43682": "AB890X", + "43697": "AB890X", + "43699": "AB890X", + "43701": "AB890X", + "43702": "AB890X", + "43710": "AB900X", + "43711": "AB900X", + "43713": "AB900X", + "43716": "AB900X", + "43717": "AB900X", + "43718": "AB900X", + "43719": "AB900X", + "43720": "AB890X", + "43721": "AB890X", + "43722": "AB890X", + "43723": "AB890X", + "43724": "AB900X", + "43725": "AB890X", + "43727": "AB890X", + "43728": "AB900X", + "43730": "AB890X", + "43731": "AB890X", + "43732": "AB890X", + "43733": "AB890X", + "43734": "AB890X", + "43735": "AB890X", + "43736": "AB900X", + "43738": "AB890X", + "43739": "AB890X", + "43740": "AB890X", + "43746": "AB890X", + "43747": "AB900X", + "43748": "AB890X", + "43749": "AB890X", + "43750": "AB890X", + "43752": "AB900X", + "43754": "AB900X", + "43755": "AB890X", + "43756": "AB900X", + "43757": "AB900X", + "43758": "AB900X", + "43759": "AB900X", + "43760": "AB890X", + "43761": "AB890X", + "43762": "AB890X", + "43764": "AB890X", + "43766": "AB890X", + "43767": "AB890X", + "43768": "AB890X", + "43771": "AB890X", + "43772": "AB890X", + "43773": "AB890X", + "43777": "AB890X", + "43778": "AB890X", + "43779": "AB900X", + "43780": "AB890X", + "43782": "AB890X", + "43783": "AB890X", + "43786": "AB900X", + "43787": "AB900X", + "43788": "AB900X", + "43789": "AB900X", + "43791": "AB890X", + "43793": "AB900X", + "43802": "AB890X", + "43803": "AB890X", + "43804": "AB890X", + "43805": "AB890X", + "43811": "AB890X", + "43812": "AB890X", + "43821": "AB890X", + "43822": "AB890X", + "43824": "AB890X", + "43828": "AB890X", + "43830": "AB890X", + "43832": "AB890X", + "43836": "AB890X", + "43837": "AB890X", + "43840": "AB890X", + "43842": "AB890X", + "43843": "AB890X", + "43844": "AB890X", + "43845": "AB890X", + "43901": "AB900X", + "43902": "AB900X", + "43903": "AB900X", + "43905": "AB900X", + "43906": "AB900X", + "43907": "AB900X", + "43908": "AB900X", + "43909": "AB900X", + "43910": "AB900X", + "43912": "AB900X", + "43913": "AB900X", + "43914": "AB900X", + "43915": "AB900X", + "43916": "AB900X", + "43917": "AB900X", + "43920": "AB900X", + "43925": "AB900X", + "43926": "AB900X", + "43927": "AB900X", + "43928": "AB900X", + "43930": "AB900X", + "43931": "AB900X", + "43932": "AB900X", + "43933": "AB900X", + "43934": "AB900X", + "43935": "AB900X", + "43937": "AB900X", + "43938": "AB900X", + "43939": "AB900X", + "43940": "AB900X", + "43941": "AB900X", + "43942": "AB900X", + "43943": "AB900X", + "43944": "AB900X", + "43945": "AB890X", + "43946": "AB900X", + "43947": "AB900X", + "43948": "AB900X", + "43950": "AB900X", + "43951": "AB900X", + "43952": "AB900X", + "43953": "AB900X", + "43961": "AB900X", + "43962": "AB890X", + "43963": "AB900X", + "43964": "AB900X", + "43967": "AB900X", + "43968": "AB900X", + "43970": "AB900X", + "43971": "AB900X", + "43972": "AB900X", + "43973": "AB890X", + "43974": "AB900X", + "43976": "AB900X", + "43977": "AB900X", + "43981": "AB900X", + "43983": "AB900X", + "43984": "AB900X", + "43985": "AB900X", + "43986": "AB900X", + "43988": "AB900X", + "44001": "AB890X", + "44003": "AB890X", + "44004": "AB890X", + "44005": "AB890X", + "44010": "AB890X", + "44011": "AB890X", + "44012": "AB890X", + "44017": "AB890X", + "44021": "AB890X", + "44022": "AB890X", + "44023": "AB890X", + "44024": "AB890X", + "44026": "AB890X", + "44028": "AB890X", + "44030": "AB890X", + "44032": "AB890X", + "44033": "AB890X", + "44035": "AB890X", + "44036": "AB890X", + "44039": "AB890X", + "44040": "AB890X", + "44041": "AB890X", + "44044": "AB890X", + "44045": "AB890X", + "44046": "AB890X", + "44047": "AB890X", + "44048": "AB890X", + "44049": "AB890X", + "44050": "AB890X", + "44052": "AB890X", + "44053": "AB890X", + "44054": "AB890X", + "44055": "AB890X", + "44056": "AB890X", + "44057": "AB890X", + "44060": "AB890X", + "44061": "AB890X", + "44062": "AB890X", + "44064": "AB890X", + "44065": "AB890X", + "44067": "AB890X", + "44068": "AB890X", + "44070": "AB890X", + "44072": "AB890X", + "44073": "AB890X", + "44074": "AB890X", + "44076": "AB890X", + "44077": "AB890X", + "44080": "AB890X", + "44081": "AB890X", + "44082": "AB890X", + "44084": "AB890X", + "44085": "AB890X", + "44086": "AB890X", + "44087": "AB890X", + "44088": "AB890X", + "44089": "AB890X", + "44090": "AB890X", + "44092": "AB890X", + "44093": "AB890X", + "44094": "AB890X", + "44095": "AB890X", + "44096": "AB890X", + "44097": "AB890X", + "44099": "AB890X", + "44101": "AB890X", + "44102": "AB890X", + "44103": "AB890X", + "44104": "AB890X", + "44105": "AB890X", + "44106": "AB890X", + "44107": "AB890X", + "44108": "AB890X", + "44109": "AB890X", + "44110": "AB890X", + "44111": "AB890X", + "44112": "AB890X", + "44113": "AB890X", + "44114": "AB890X", + "44115": "AB890X", + "44116": "AB890X", + "44117": "AB890X", + "44118": "AB890X", + "44119": "AB890X", + "44120": "AB890X", + "44121": "AB890X", + "44122": "AB890X", + "44123": "AB890X", + "44124": "AB890X", + "44125": "AB890X", + "44126": "AB890X", + "44127": "AB890X", + "44128": "AB890X", + "44129": "AB890X", + "44130": "AB890X", + "44131": "AB890X", + "44132": "AB890X", + "44133": "AB890X", + "44134": "AB890X", + "44135": "AB890X", + "44136": "AB890X", + "44137": "AB890X", + "44138": "AB890X", + "44139": "AB890X", + "44140": "AB890X", + "44141": "AB890X", + "44142": "AB890X", + "44143": "AB889X", + "44144": "AB890X", + "44145": "AB890X", + "44146": "AB890X", + "44147": "AB890X", + "44149": "AB890X", + "44178": "AB890X", + "44181": "AB890X", + "44185": "AB890X", + "44188": "AB890X", + "44189": "AB890X", + "44190": "AB890X", + "44191": "AB890X", + "44192": "AB890X", + "44193": "AB890X", + "44194": "AB890X", + "44195": "AB890X", + "44197": "AB890X", + "44198": "AB890X", + "44199": "AB890X", + "44201": "AB890X", + "44202": "AB890X", + "44203": "AB890X", + "44210": "AB890X", + "44211": "AB890X", + "44212": "AB890X", + "44214": "AB890X", + "44215": "AB890X", + "44216": "AB890X", + "44217": "AB890X", + "44221": "AB890X", + "44222": "AB890X", + "44223": "AB890X", + "44224": "AB890X", + "44230": "AB890X", + "44231": "AB890X", + "44232": "AB890X", + "44233": "AB890X", + "44234": "AB890X", + "44235": "AB890X", + "44236": "AB890X", + "44237": "AB890X", + "44240": "AB890X", + "44241": "AB890X", + "44242": "AB890X", + "44243": "AB890X", + "44250": "AB890X", + "44251": "AB890X", + "44253": "AB890X", + "44254": "AB890X", + "44255": "AB890X", + "44256": "AB890X", + "44258": "AB890X", + "44260": "AB890X", + "44262": "AB890X", + "44264": "AB890X", + "44265": "AB890X", + "44266": "AB890X", + "44270": "AB890X", + "44272": "AB890X", + "44273": "AB890X", + "44274": "AB890X", + "44275": "AB890X", + "44276": "AB890X", + "44278": "AB890X", + "44280": "AB890X", + "44281": "AB890X", + "44282": "AB890X", + "44285": "AB890X", + "44286": "AB890X", + "44287": "AB890X", + "44288": "AB890X", + "44301": "AB890X", + "44302": "AB890X", + "44303": "AB890X", + "44304": "AB890X", + "44305": "AB890X", + "44306": "AB890X", + "44307": "AB890X", + "44308": "AB890X", + "44309": "AB890X", + "44310": "AB890X", + "44311": "AB890X", + "44312": "AB890X", + "44313": "AB890X", + "44314": "AB890X", + "44315": "AB890X", + "44316": "AB890X", + "44317": "AB890X", + "44319": "AB890X", + "44320": "AB890X", + "44321": "AB890X", + "44322": "AB890X", + "44325": "AB890X", + "44326": "AB890X", + "44328": "AB890X", + "44333": "AB890X", + "44334": "AB890X", + "44372": "AB890X", + "44393": "AB890X", + "44396": "AB890X", + "44398": "AB890X", + "44399": "AB890X", + "44401": "AB900X", + "44402": "AB900X", + "44403": "AB900X", + "44404": "AB900X", + "44405": "AB900X", + "44406": "AB900X", + "44408": "AB890X", + "44410": "AB900X", + "44411": "AB890X", + "44412": "AB890X", + "44413": "AB890X", + "44415": "AB890X", + "44416": "AB900X", + "44417": "AB900X", + "44418": "AB900X", + "44420": "AB900X", + "44422": "AB900X", + "44423": "AB890X", + "44424": "AB900X", + "44425": "AB900X", + "44427": "AB889X", + "44428": "AB900X", + "44429": "AB900X", + "44430": "AB900X", + "44431": "AB890X", + "44432": "AB890X", + "44436": "AB900X", + "44437": "AB900X", + "44438": "AB900X", + "44439": "AB900X", + "44440": "AB900X", + "44441": "AB890X", + "44442": "AB900X", + "44443": "AB900X", + "44444": "AB900X", + "44445": "AB890X", + "44446": "AB900X", + "44449": "AB890X", + "44450": "AB900X", + "44451": "AB900X", + "44452": "AB900X", + "44453": "AB900X", + "44454": "AB900X", + "44455": "AB890X", + "44460": "AB900X", + "44470": "AB900X", + "44471": "AB900X", + "44473": "AB900X", + "44481": "AB900X", + "44482": "AB900X", + "44483": "AB900X", + "44484": "AB900X", + "44485": "AB900X", + "44486": "AB900X", + "44488": "AB900X", + "44490": "AB890X", + "44491": "AB900X", + "44492": "AB890X", + "44493": "AB890X", + "44501": "AB900X", + "44502": "AB900X", + "44503": "AB900X", + "44504": "AB900X", + "44505": "AB900X", + "44506": "AB900X", + "44507": "AB900X", + "44509": "AB900X", + "44510": "AB900X", + "44511": "AB900X", + "44512": "AB900X", + "44513": "AB900X", + "44514": "AB900X", + "44515": "AB900X", + "44555": "AB900X", + "44601": "AB890X", + "44606": "AB890X", + "44607": "AB890X", + "44608": "AB890X", + "44609": "AB900X", + "44610": "AB890X", + "44611": "AB890X", + "44612": "AB890X", + "44613": "AB890X", + "44614": "AB890X", + "44615": "AB890X", + "44617": "AB890X", + "44618": "AB890X", + "44619": "AB900X", + "44620": "AB890X", + "44621": "AB890X", + "44622": "AB890X", + "44624": "AB890X", + "44625": "AB890X", + "44626": "AB890X", + "44627": "AB890X", + "44628": "AB890X", + "44629": "AB890X", + "44630": "AB890X", + "44631": "AB890X", + "44632": "AB890X", + "44633": "AB890X", + "44634": "AB890X", + "44636": "AB890X", + "44637": "AB890X", + "44638": "AB890X", + "44639": "AB890X", + "44640": "AB890X", + "44641": "AB890X", + "44643": "AB890X", + "44644": "AB890X", + "44645": "AB890X", + "44646": "AB890X", + "44647": "AB890X", + "44648": "AB890X", + "44650": "AB890X", + "44651": "AB890X", + "44652": "AB890X", + "44653": "AB890X", + "44654": "AB890X", + "44656": "AB890X", + "44657": "AB890X", + "44659": "AB890X", + "44660": "AB890X", + "44661": "AB890X", + "44662": "AB890X", + "44663": "AB890X", + "44665": "AB890X", + "44666": "AB890X", + "44667": "AB890X", + "44669": "AB890X", + "44670": "AB890X", + "44671": "AB890X", + "44672": "AB900X", + "44675": "AB890X", + "44676": "AB890X", + "44677": "AB890X", + "44678": "AB890X", + "44679": "AB890X", + "44680": "AB890X", + "44681": "AB890X", + "44682": "AB890X", + "44683": "AB890X", + "44685": "AB890X", + "44687": "AB890X", + "44688": "AB890X", + "44689": "AB890X", + "44690": "AB890X", + "44691": "AB890X", + "44693": "AB900X", + "44695": "AB900X", + "44697": "AB890X", + "44699": "AB900X", + "44701": "AB890X", + "44702": "AB890X", + "44703": "AB890X", + "44704": "AB890X", + "44705": "AB890X", + "44706": "AB890X", + "44707": "AB890X", + "44708": "AB890X", + "44709": "AB890X", + "44710": "AB890X", + "44711": "AB890X", + "44712": "AB890X", + "44714": "AB890X", + "44718": "AB890X", + "44720": "AB890X", + "44721": "AB890X", + "44730": "AB890X", + "44735": "AB890X", + "44750": "AB890X", + "44767": "AB890X", + "44799": "AB890X", + "44802": "AB890X", + "44804": "AB890X", + "44805": "AB890X", + "44807": "AB890X", + "44809": "AB890X", + "44811": "AB890X", + "44813": "AB890X", + "44814": "AB890X", + "44815": "AB890X", + "44816": "AB890X", + "44817": "AB890X", + "44818": "AB890X", + "44820": "AB890X", + "44822": "AB890X", + "44824": "AB890X", + "44825": "AB890X", + "44826": "AB890X", + "44827": "AB890X", + "44828": "AB890X", + "44830": "AB890X", + "44833": "AB890X", + "44836": "AB890X", + "44837": "AB890X", + "44838": "AB890X", + "44839": "AB890X", + "44840": "AB890X", + "44841": "AB890X", + "44842": "AB890X", + "44843": "AB890X", + "44844": "AB890X", + "44845": "AB890X", + "44846": "AB890X", + "44847": "AB890X", + "44848": "AB890X", + "44849": "AB890X", + "44850": "AB890X", + "44851": "AB890X", + "44853": "AB890X", + "44854": "AB890X", + "44855": "AB890X", + "44856": "AB890X", + "44857": "AB890X", + "44859": "AB890X", + "44860": "AB890X", + "44861": "AB890X", + "44862": "AB890X", + "44864": "AB890X", + "44865": "AB890X", + "44866": "AB890X", + "44867": "AB890X", + "44870": "AB890X", + "44871": "AB890X", + "44874": "AB890X", + "44875": "AB890X", + "44878": "AB890X", + "44880": "AB890X", + "44881": "AB890X", + "44882": "AB890X", + "44883": "AB890X", + "44887": "AB890X", + "44888": "AB890X", + "44889": "AB890X", + "44890": "AB890X", + "44901": "AB890X", + "44902": "AB890X", + "44903": "AB890X", + "44904": "AB890X", + "44905": "AB890X", + "44906": "AB890X", + "44907": "AB890X", + "44999": "AB890X", + "45001": "AB890X", + "45002": "AB890X", + "45003": "AB890X", + "45004": "AB890X", + "45005": "AB890X", + "45011": "AB890X", + "45012": "AB890X", + "45013": "AB890X", + "45014": "AB890X", + "45015": "AB890X", + "45018": "AB890X", + "45025": "AB890X", + "45026": "AB890X", + "45030": "AB890X", + "45032": "AB890X", + "45033": "AB890X", + "45034": "AB890X", + "45036": "AB890X", + "45039": "AB890X", + "45040": "AB890X", + "45041": "AB890X", + "45042": "AB888X", + "45043": "AB890X", + "45044": "AB890X", + "45047": "AB890X", + "45050": "AB890X", + "45051": "AB890X", + "45052": "AB890X", + "45053": "AB890X", + "45054": "AB890X", + "45055": "AB890X", + "45056": "AB890X", + "45061": "AB890X", + "45062": "AB890X", + "45063": "AB890X", + "45064": "AB890X", + "45065": "AB890X", + "45066": "AB890X", + "45067": "AB890X", + "45068": "AB890X", + "45069": "AB890X", + "45070": "AB890X", + "45071": "AB890X", + "45101": "AB890X", + "45102": "AB890X", + "45103": "AB890X", + "45105": "AB890X", + "45106": "AB890X", + "45107": "AB890X", + "45110": "AB890X", + "45111": "AB890X", + "45112": "AB890X", + "45113": "AB890X", + "45114": "AB890X", + "45115": "AB890X", + "45118": "AB890X", + "45119": "AB890X", + "45120": "AB890X", + "45121": "AB890X", + "45122": "AB890X", + "45123": "AB890X", + "45130": "AB890X", + "45131": "AB890X", + "45132": "AB890X", + "45133": "AB890X", + "45135": "AB890X", + "45138": "AB890X", + "45140": "AB890X", + "45142": "AB890X", + "45144": "AB890X", + "45145": "AB890X", + "45146": "AB890X", + "45147": "AB890X", + "45148": "AB890X", + "45150": "AB890X", + "45152": "AB890X", + "45153": "AB890X", + "45154": "AB890X", + "45155": "AB890X", + "45156": "AB890X", + "45157": "AB890X", + "45158": "AB890X", + "45159": "AB890X", + "45160": "AB890X", + "45162": "AB890X", + "45164": "AB890X", + "45166": "AB890X", + "45167": "AB890X", + "45168": "AB890X", + "45169": "AB890X", + "45171": "AB890X", + "45172": "AB890X", + "45174": "AB890X", + "45176": "AB890X", + "45177": "AB890X", + "45201": "AB890X", + "45202": "AB890X", + "45203": "AB890X", + "45204": "AB890X", + "45205": "AB890X", + "45206": "AB890X", + "45207": "AB890X", + "45208": "AB890X", + "45209": "AB890X", + "45211": "AB890X", + "45212": "AB890X", + "45213": "AB890X", + "45214": "AB890X", + "45215": "AB890X", + "45216": "AB890X", + "45217": "AB890X", + "45218": "AB890X", + "45219": "AB890X", + "45220": "AB890X", + "45221": "AB890X", + "45222": "AB890X", + "45223": "AB890X", + "45224": "AB890X", + "45225": "AB890X", + "45226": "AB890X", + "45227": "AB890X", + "45228": "AB890X", + "45229": "AB890X", + "45230": "AB890X", + "45231": "AB890X", + "45232": "AB890X", + "45233": "AB890X", + "45234": "AB890X", + "45235": "AB890X", + "45236": "AB890X", + "45237": "AB890X", + "45238": "AB890X", + "45239": "AB890X", + "45240": "AB890X", + "45241": "AB890X", + "45242": "AB890X", + "45243": "AB890X", + "45244": "AB890X", + "45245": "AB890X", + "45246": "AB890X", + "45247": "AB890X", + "45248": "AB890X", + "45249": "AB890X", + "45250": "AB890X", + "45251": "AB890X", + "45252": "AB890X", + "45253": "AB890X", + "45254": "AB890X", + "45255": "AB890X", + "45258": "AB890X", + "45262": "AB890X", + "45263": "AB890X", + "45264": "AB890X", + "45267": "AB890X", + "45268": "AB890X", + "45269": "AB890X", + "45270": "AB890X", + "45271": "AB890X", + "45273": "AB890X", + "45274": "AB890X", + "45275": "AB890X", + "45277": "AB890X", + "45280": "AB890X", + "45296": "AB890X", + "45298": "AB890X", + "45299": "AB890X", + "45301": "AB890X", + "45302": "AB890X", + "45303": "AB890X", + "45304": "AB890X", + "45305": "AB890X", + "45306": "AB890X", + "45307": "AB890X", + "45308": "AB890X", + "45309": "AB890X", + "45310": "AB890X", + "45311": "AB890X", + "45312": "AB890X", + "45314": "AB890X", + "45315": "AB890X", + "45316": "AB890X", + "45317": "AB890X", + "45318": "AB890X", + "45319": "AB890X", + "45320": "AB890X", + "45321": "AB890X", + "45322": "AB890X", + "45323": "AB890X", + "45324": "AB890X", + "45325": "AB890X", + "45326": "AB890X", + "45327": "AB890X", + "45328": "AB890X", + "45330": "AB890X", + "45331": "AB890X", + "45332": "AB890X", + "45333": "AB890X", + "45334": "AB890X", + "45335": "AB890X", + "45336": "AB890X", + "45337": "AB890X", + "45338": "AB890X", + "45339": "AB890X", + "45340": "AB890X", + "45341": "AB890X", + "45342": "AB890X", + "45343": "AB890X", + "45344": "AB890X", + "45345": "AB890X", + "45346": "AB890X", + "45347": "AB890X", + "45348": "AB890X", + "45349": "AB890X", + "45350": "AB890X", + "45351": "AB890X", + "45352": "AB890X", + "45353": "AB890X", + "45354": "AB890X", + "45356": "AB890X", + "45358": "AB890X", + "45359": "AB890X", + "45360": "AB890X", + "45361": "AB890X", + "45362": "AB890X", + "45363": "AB890X", + "45365": "AB890X", + "45367": "AB890X", + "45368": "AB890X", + "45369": "AB890X", + "45370": "AB890X", + "45371": "AB890X", + "45372": "AB890X", + "45373": "AB890X", + "45374": "AB890X", + "45377": "AB890X", + "45378": "AB890X", + "45380": "AB890X", + "45381": "AB890X", + "45382": "AB890X", + "45383": "AB890X", + "45384": "AB890X", + "45385": "AB890X", + "45387": "AB890X", + "45388": "AB890X", + "45389": "AB890X", + "45390": "AB888X", + "45401": "AB890X", + "45402": "AB890X", + "45403": "AB890X", + "45404": "AB890X", + "45405": "AB890X", + "45406": "AB890X", + "45408": "AB890X", + "45409": "AB890X", + "45410": "AB890X", + "45412": "AB890X", + "45413": "AB890X", + "45414": "AB890X", + "45415": "AB890X", + "45416": "AB890X", + "45417": "AB890X", + "45418": "AB890X", + "45419": "AB890X", + "45420": "AB890X", + "45422": "AB890X", + "45423": "AB890X", + "45424": "AB890X", + "45426": "AB890X", + "45427": "AB890X", + "45428": "AB890X", + "45429": "AB890X", + "45430": "AB890X", + "45431": "AB890X", + "45432": "AB890X", + "45433": "AB890X", + "45434": "AB890X", + "45435": "AB890X", + "45437": "AB890X", + "45439": "AB890X", + "45440": "AB900X", + "45441": "AB890X", + "45448": "AB890X", + "45449": "AB890X", + "45454": "AB890X", + "45458": "AB890X", + "45459": "AB890X", + "45463": "AB890X", + "45469": "AB890X", + "45470": "AB890X", + "45475": "AB890X", + "45479": "AB890X", + "45481": "AB890X", + "45482": "AB890X", + "45490": "AB890X", + "45501": "AB890X", + "45502": "AB890X", + "45503": "AB890X", + "45504": "AB890X", + "45505": "AB890X", + "45506": "AB890X", + "45600": "AB890X", + "45601": "AB890X", + "45612": "AB890X", + "45613": "AB890X", + "45614": "AB900X", + "45616": "AB890X", + "45617": "AB890X", + "45618": "AB890X", + "45619": "AB900X", + "45620": "AB900X", + "45621": "AB900X", + "45622": "AB890X", + "45623": "AB900X", + "45624": "AB890X", + "45628": "AB890X", + "45629": "AB900X", + "45630": "AB900X", + "45631": "AB900X", + "45633": "AB890X", + "45634": "AB890X", + "45636": "AB900X", + "45638": "AB900X", + "45640": "AB900X", + "45642": "AB890X", + "45643": "AB900X", + "45644": "AB890X", + "45645": "AB900X", + "45646": "AB890X", + "45647": "AB890X", + "45648": "AB900X", + "45650": "AB890X", + "45651": "AB900X", + "45652": "AB900X", + "45653": "AB900X", + "45654": "AB890X", + "45656": "AB900X", + "45657": "AB900X", + "45658": "AB900X", + "45659": "AB900X", + "45660": "AB890X", + "45661": "AB890X", + "45662": "AB900X", + "45663": "AB900X", + "45669": "AB900X", + "45671": "AB900X", + "45672": "AB900X", + "45673": "AB900X", + "45674": "AB900X", + "45675": "AB900X", + "45677": "AB900X", + "45678": "AB900X", + "45679": "AB890X", + "45680": "AB900X", + "45681": "AB890X", + "45682": "AB900X", + "45683": "AB900X", + "45684": "AB890X", + "45685": "AB900X", + "45686": "AB900X", + "45687": "AB890X", + "45688": "AB900X", + "45690": "AB890X", + "45692": "AB900X", + "45693": "AB890X", + "45694": "AB900X", + "45695": "AB890X", + "45696": "AB900X", + "45697": "AB890X", + "45698": "AB890X", + "45699": "AB900X", + "45701": "AB890X", + "45710": "AB890X", + "45711": "AB890X", + "45712": "AB900X", + "45713": "AB900X", + "45714": "AB900X", + "45715": "AB900X", + "45716": "AB890X", + "45717": "AB890X", + "45719": "AB890X", + "45720": "AB900X", + "45721": "AB900X", + "45723": "AB890X", + "45724": "AB900X", + "45727": "AB900X", + "45729": "AB900X", + "45732": "AB890X", + "45734": "AB900X", + "45735": "AB890X", + "45739": "AB890X", + "45740": "AB890X", + "45741": "AB900X", + "45742": "AB900X", + "45743": "AB900X", + "45744": "AB900X", + "45745": "AB900X", + "45746": "AB900X", + "45750": "AB900X", + "45760": "AB900X", + "45761": "AB890X", + "45764": "AB890X", + "45766": "AB890X", + "45767": "AB900X", + "45768": "AB900X", + "45769": "AB900X", + "45770": "AB900X", + "45771": "AB890X", + "45772": "AB900X", + "45773": "AB900X", + "45775": "AB900X", + "45776": "AB890X", + "45777": "AB890X", + "45778": "AB890X", + "45779": "AB900X", + "45780": "AB890X", + "45782": "AB890X", + "45783": "AB900X", + "45784": "AB900X", + "45786": "AB900X", + "45787": "AB900X", + "45788": "AB900X", + "45789": "AB900X", + "45801": "AB890X", + "45802": "AB890X", + "45804": "AB890X", + "45805": "AB890X", + "45806": "AB890X", + "45807": "AB888X", + "45808": "AB890X", + "45809": "AB890X", + "45810": "AB890X", + "45812": "AB890X", + "45813": "AB890X", + "45814": "AB890X", + "45815": "AB890X", + "45816": "AB890X", + "45817": "AB890X", + "45819": "AB890X", + "45820": "AB890X", + "45821": "AB890X", + "45822": "AB890X", + "45826": "AB890X", + "45827": "AB890X", + "45828": "AB890X", + "45830": "AB890X", + "45831": "AB890X", + "45832": "AB888X", + "45833": "AB888X", + "45835": "AB890X", + "45836": "AB890X", + "45837": "AB890X", + "45838": "AB888X", + "45839": "AB890X", + "45840": "AB890X", + "45841": "AB890X", + "45843": "AB890X", + "45844": "AB888X", + "45845": "AB890X", + "45846": "AB890X", + "45848": "AB890X", + "45849": "AB890X", + "45850": "AB890X", + "45851": "AB890X", + "45853": "AB890X", + "45854": "AB890X", + "45855": "AB890X", + "45856": "AB890X", + "45858": "AB890X", + "45859": "AB890X", + "45860": "AB890X", + "45861": "AB890X", + "45862": "AB890X", + "45863": "AB888X", + "45864": "AB890X", + "45865": "AB890X", + "45866": "AB890X", + "45867": "AB890X", + "45868": "AB890X", + "45869": "AB890X", + "45870": "AB890X", + "45871": "AB890X", + "45872": "AB890X", + "45873": "AB890X", + "45874": "AB888X", + "45875": "AB890X", + "45876": "AB890X", + "45877": "AB890X", + "45879": "AB890X", + "45880": "AB890X", + "45881": "AB890X", + "45882": "AB888X", + "45883": "AB890X", + "45884": "AB890X", + "45885": "AB890X", + "45886": "AB888X", + "45887": "AB888X", + "45888": "AB890X", + "45889": "AB890X", + "45890": "AB890X", + "45891": "AB888X", + "45893": "AB890X", + "45894": "AB888X", + "45895": "AB890X", + "45896": "AB890X", + "45897": "AB890X", + "45898": "AB888X", + "45899": "AB888X", + "45999": "AB890X", + "46001": "AB888X", + "46011": "AB888X", + "46012": "AB888X", + "46013": "AB888X", + "46014": "AB888X", + "46015": "AB888X", + "46016": "AB888X", + "46017": "AB888X", + "46018": "AB888X", + "46030": "AB888X", + "46031": "AB888X", + "46032": "AB888X", + "46033": "AB888X", + "46034": "AB888X", + "46035": "AB888X", + "46036": "AB888X", + "46037": "AB888X", + "46038": "AB888X", + "46039": "AB888X", + "46040": "AB888X", + "46041": "AB888X", + "46044": "AB888X", + "46045": "AB888X", + "46047": "AB888X", + "46048": "AB888X", + "46049": "AB888X", + "46050": "AB888X", + "46051": "AB888X", + "46052": "AB888X", + "46055": "AB888X", + "46056": "AB888X", + "46057": "AB888X", + "46058": "AB888X", + "46060": "AB888X", + "46061": "AB888X", + "46062": "AB888X", + "46063": "AB888X", + "46064": "AB888X", + "46065": "AB888X", + "46067": "AB888X", + "46068": "AB888X", + "46069": "AB888X", + "46070": "AB888X", + "46071": "AB888X", + "46072": "AB888X", + "46074": "AB888X", + "46075": "AB888X", + "46076": "AB888X", + "46077": "AB888X", + "46082": "AB888X", + "46102": "AB888X", + "46103": "AB888X", + "46104": "AB888X", + "46105": "AB888X", + "46106": "AB888X", + "46107": "AB888X", + "46110": "AB888X", + "46111": "AB888X", + "46112": "AB888X", + "46113": "AB888X", + "46115": "AB888X", + "46117": "AB888X", + "46118": "AB888X", + "46120": "AB888X", + "46121": "AB888X", + "46122": "AB888X", + "46123": "AB888X", + "46124": "AB888X", + "46125": "AB888X", + "46126": "AB888X", + "46127": "AB888X", + "46128": "AB888X", + "46129": "AB888X", + "46130": "AB888X", + "46131": "AB888X", + "46133": "AB888X", + "46135": "AB888X", + "46140": "AB888X", + "46142": "AB888X", + "46143": "AB888X", + "46144": "AB888X", + "46146": "AB888X", + "46147": "AB888X", + "46148": "AB888X", + "46149": "AB888X", + "46150": "AB888X", + "46151": "AB888X", + "46154": "AB888X", + "46155": "AB888X", + "46156": "AB888X", + "46157": "AB888X", + "46158": "AB888X", + "46160": "AB888X", + "46161": "AB888X", + "46162": "AB888X", + "46163": "AB888X", + "46164": "AB888X", + "46165": "AB888X", + "46166": "AB888X", + "46167": "AB888X", + "46168": "AB888X", + "46170": "AB888X", + "46171": "AB888X", + "46172": "AB888X", + "46173": "AB888X", + "46175": "AB888X", + "46176": "AB888X", + "46180": "AB888X", + "46181": "AB888X", + "46182": "AB888X", + "46183": "AB888X", + "46184": "AB888X", + "46186": "AB888X", + "46201": "AB888X", + "46202": "AB888X", + "46203": "AB888X", + "46204": "AB888X", + "46205": "AB888X", + "46206": "AB888X", + "46207": "AB888X", + "46208": "AB888X", + "46209": "AB888X", + "46211": "AB888X", + "46214": "AB888X", + "46216": "AB888X", + "46217": "AB888X", + "46218": "AB888X", + "46219": "AB888X", + "46220": "AB888X", + "46221": "AB888X", + "46222": "AB888X", + "46223": "AB888X", + "46224": "AB888X", + "46225": "AB888X", + "46226": "AB888X", + "46227": "AB888X", + "46228": "AB888X", + "46229": "AB888X", + "46230": "AB888X", + "46231": "AB888X", + "46234": "AB888X", + "46235": "AB888X", + "46236": "AB888X", + "46237": "AB888X", + "46239": "AB888X", + "46240": "AB888X", + "46241": "AB888X", + "46242": "AB888X", + "46244": "AB888X", + "46247": "AB888X", + "46249": "AB888X", + "46250": "AB888X", + "46251": "AB888X", + "46253": "AB888X", + "46254": "AB888X", + "46255": "AB888X", + "46256": "AB888X", + "46259": "AB888X", + "46260": "AB888X", + "46262": "AB888X", + "46266": "AB888X", + "46268": "AB888X", + "46274": "AB888X", + "46275": "AB888X", + "46277": "AB888X", + "46278": "AB888X", + "46280": "AB888X", + "46282": "AB888X", + "46283": "AB888X", + "46285": "AB888X", + "46290": "AB888X", + "46291": "AB888X", + "46295": "AB888X", + "46296": "AB888X", + "46298": "AB888X", + "46301": "AB887X", + "46302": "AB887X", + "46303": "AB887X", + "46304": "AB887X", + "46307": "AB887X", + "46308": "AB887X", + "46310": "AB887X", + "46311": "AB887X", + "46312": "AB887X", + "46319": "AB887X", + "46320": "AB887X", + "46321": "AB887X", + "46322": "AB887X", + "46323": "AB887X", + "46324": "AB887X", + "46325": "AB887X", + "46327": "AB887X", + "46340": "AB887X", + "46341": "AB887X", + "46342": "AB887X", + "46345": "AB887X", + "46346": "AB887X", + "46347": "AB887X", + "46348": "AB887X", + "46349": "AB888X", + "46350": "AB887X", + "46352": "AB887X", + "46355": "AB887X", + "46356": "AB887X", + "46360": "AB887X", + "46361": "AB887X", + "46365": "AB887X", + "46366": "AB887X", + "46368": "AB887X", + "46371": "AB887X", + "46372": "AB888X", + "46373": "AB887X", + "46374": "AB887X", + "46375": "AB887X", + "46376": "AB887X", + "46377": "AB887X", + "46379": "AB888X", + "46380": "AB887X", + "46381": "AB888X", + "46382": "AB887X", + "46383": "AB887X", + "46384": "AB887X", + "46385": "AB887X", + "46390": "AB887X", + "46391": "AB887X", + "46392": "AB887X", + "46393": "AB887X", + "46394": "AB887X", + "46401": "AB887X", + "46402": "AB887X", + "46403": "AB887X", + "46404": "AB887X", + "46405": "AB887X", + "46406": "AB887X", + "46407": "AB887X", + "46408": "AB887X", + "46409": "AB887X", + "46410": "AB887X", + "46411": "AB887X", + "46501": "AB887X", + "46502": "AB888X", + "46504": "AB887X", + "46506": "AB887X", + "46507": "AB887X", + "46508": "AB888X", + "46510": "AB888X", + "46511": "AB887X", + "46513": "AB887X", + "46514": "AB887X", + "46515": "AB887X", + "46516": "AB887X", + "46517": "AB887X", + "46524": "AB888X", + "46526": "AB887X", + "46527": "AB887X", + "46528": "AB887X", + "46530": "AB887X", + "46531": "AB887X", + "46532": "AB887X", + "46534": "AB887X", + "46536": "AB887X", + "46537": "AB887X", + "46538": "AB888X", + "46539": "AB888X", + "46540": "AB887X", + "46542": "AB888X", + "46543": "AB887X", + "46544": "AB887X", + "46545": "AB887X", + "46546": "AB887X", + "46550": "AB887X", + "46552": "AB887X", + "46553": "AB890X", + "46554": "AB887X", + "46555": "AB888X", + "46556": "AB887X", + "46561": "AB887X", + "46562": "AB888X", + "46563": "AB887X", + "46565": "AB888X", + "46567": "AB888X", + "46570": "AB887X", + "46571": "AB888X", + "46572": "AB887X", + "46573": "AB887X", + "46574": "AB887X", + "46580": "AB887X", + "46581": "AB888X", + "46582": "AB887X", + "46590": "AB888X", + "46595": "AB887X", + "46601": "AB887X", + "46604": "AB887X", + "46613": "AB887X", + "46614": "AB887X", + "46615": "AB887X", + "46616": "AB887X", + "46617": "AB887X", + "46619": "AB887X", + "46620": "AB887X", + "46624": "AB887X", + "46626": "AB887X", + "46628": "AB887X", + "46634": "AB887X", + "46635": "AB887X", + "46637": "AB887X", + "46660": "AB887X", + "46680": "AB887X", + "46699": "AB887X", + "46701": "AB888X", + "46702": "AB888X", + "46703": "AB888X", + "46704": "AB888X", + "46705": "AB888X", + "46706": "AB888X", + "46710": "AB888X", + "46711": "AB888X", + "46713": "AB888X", + "46714": "AB888X", + "46721": "AB888X", + "46723": "AB888X", + "46725": "AB888X", + "46730": "AB888X", + "46731": "AB888X", + "46732": "AB888X", + "46733": "AB888X", + "46737": "AB888X", + "46738": "AB888X", + "46740": "AB888X", + "46741": "AB888X", + "46742": "AB888X", + "46743": "AB888X", + "46745": "AB888X", + "46746": "AB889X", + "46747": "AB888X", + "46748": "AB888X", + "46750": "AB888X", + "46755": "AB888X", + "46759": "AB888X", + "46760": "AB888X", + "46761": "AB888X", + "46763": "AB888X", + "46764": "AB888X", + "46765": "AB888X", + "46766": "AB888X", + "46767": "AB888X", + "46769": "AB888X", + "46770": "AB888X", + "46771": "AB888X", + "46772": "AB888X", + "46773": "AB888X", + "46774": "AB888X", + "46776": "AB888X", + "46777": "AB888X", + "46778": "AB888X", + "46779": "AB888X", + "46780": "AB888X", + "46781": "AB888X", + "46782": "AB888X", + "46783": "AB888X", + "46784": "AB888X", + "46785": "AB888X", + "46786": "AB888X", + "46787": "AB888X", + "46788": "AB888X", + "46789": "AB888X", + "46791": "AB888X", + "46792": "AB888X", + "46793": "AB888X", + "46794": "AB888X", + "46795": "AB888X", + "46796": "AB888X", + "46797": "AB888X", + "46798": "AB888X", + "46799": "AB888X", + "46801": "AB888X", + "46802": "AB888X", + "46803": "AB888X", + "46804": "AB888X", + "46805": "AB888X", + "46806": "AB888X", + "46807": "AB888X", + "46808": "AB888X", + "46809": "AB888X", + "46814": "AB888X", + "46815": "AB888X", + "46816": "AB888X", + "46818": "AB888X", + "46819": "AB888X", + "46825": "AB888X", + "46835": "AB888X", + "46845": "AB888X", + "46850": "AB888X", + "46851": "AB888X", + "46852": "AB888X", + "46853": "AB888X", + "46854": "AB888X", + "46855": "AB888X", + "46856": "AB888X", + "46857": "AB888X", + "46858": "AB888X", + "46859": "AB888X", + "46860": "AB888X", + "46861": "AB888X", + "46862": "AB888X", + "46863": "AB888X", + "46864": "AB888X", + "46865": "AB888X", + "46866": "AB888X", + "46867": "AB888X", + "46868": "AB888X", + "46869": "AB888X", + "46885": "AB888X", + "46895": "AB888X", + "46896": "AB888X", + "46897": "AB888X", + "46898": "AB888X", + "46899": "AB888X", + "46901": "AB888X", + "46902": "AB888X", + "46903": "AB888X", + "46904": "AB888X", + "46910": "AB887X", + "46911": "AB888X", + "46912": "AB887X", + "46913": "AB888X", + "46914": "AB888X", + "46915": "AB888X", + "46916": "AB888X", + "46917": "AB888X", + "46919": "AB888X", + "46920": "AB888X", + "46921": "AB888X", + "46922": "AB887X", + "46923": "AB888X", + "46926": "AB888X", + "46928": "AB888X", + "46929": "AB888X", + "46930": "AB888X", + "46931": "AB887X", + "46932": "AB888X", + "46933": "AB888X", + "46935": "AB887X", + "46936": "AB888X", + "46937": "AB888X", + "46938": "AB888X", + "46939": "AB887X", + "46940": "AB888X", + "46941": "AB888X", + "46942": "AB888X", + "46943": "AB888X", + "46945": "AB887X", + "46946": "AB888X", + "46947": "AB888X", + "46950": "AB888X", + "46951": "AB888X", + "46952": "AB888X", + "46953": "AB888X", + "46957": "AB888X", + "46958": "AB888X", + "46959": "AB888X", + "46960": "AB887X", + "46961": "AB888X", + "46962": "AB888X", + "46965": "AB888X", + "46967": "AB888X", + "46968": "AB887X", + "46970": "AB888X", + "46971": "AB888X", + "46974": "AB888X", + "46975": "AB887X", + "46977": "AB888X", + "46978": "AB888X", + "46979": "AB888X", + "46980": "AB888X", + "46982": "AB888X", + "46984": "AB888X", + "46985": "AB887X", + "46986": "AB888X", + "46987": "AB888X", + "46988": "AB888X", + "46989": "AB888X", + "46990": "AB888X", + "46991": "AB888X", + "46992": "AB888X", + "46994": "AB888X", + "46995": "AB888X", + "46996": "AB887X", + "46998": "AB888X", + "47001": "AB890X", + "47003": "AB888X", + "47006": "AB888X", + "47010": "AB888X", + "47011": "AB888X", + "47012": "AB888X", + "47016": "AB888X", + "47017": "AB888X", + "47018": "AB890X", + "47019": "AB888X", + "47020": "AB888X", + "47021": "AB888X", + "47022": "AB890X", + "47023": "AB888X", + "47024": "AB888X", + "47025": "AB890X", + "47030": "AB888X", + "47031": "AB890X", + "47032": "AB890X", + "47033": "AB888X", + "47034": "AB888X", + "47035": "AB888X", + "47036": "AB888X", + "47037": "AB888X", + "47038": "AB888X", + "47039": "AB888X", + "47040": "AB890X", + "47041": "AB890X", + "47042": "AB888X", + "47043": "AB888X", + "47060": "AB890X", + "47102": "AB888X", + "47104": "AB888X", + "47106": "AB888X", + "47107": "AB888X", + "47108": "AB888X", + "47110": "AB888X", + "47111": "AB888X", + "47112": "AB888X", + "47114": "AB888X", + "47115": "AB888X", + "47116": "AB888X", + "47117": "AB888X", + "47118": "AB888X", + "47119": "AB888X", + "47120": "AB888X", + "47122": "AB888X", + "47123": "AB888X", + "47124": "AB888X", + "47125": "AB888X", + "47126": "AB888X", + "47129": "AB888X", + "47130": "AB888X", + "47131": "AB888X", + "47132": "AB888X", + "47133": "AB888X", + "47134": "AB888X", + "47135": "AB888X", + "47136": "AB888X", + "47137": "AB888X", + "47138": "AB888X", + "47139": "AB888X", + "47140": "AB888X", + "47141": "AB888X", + "47142": "AB888X", + "47143": "AB888X", + "47144": "AB888X", + "47145": "AB888X", + "47146": "AB888X", + "47147": "AB888X", + "47150": "AB888X", + "47151": "AB888X", + "47160": "AB888X", + "47161": "AB888X", + "47162": "AB888X", + "47163": "AB888X", + "47164": "AB888X", + "47165": "AB888X", + "47166": "AB888X", + "47167": "AB888X", + "47170": "AB888X", + "47172": "AB888X", + "47174": "AB888X", + "47175": "AB888X", + "47177": "AB888X", + "47190": "AB888X", + "47199": "AB888X", + "47201": "AB888X", + "47202": "AB888X", + "47203": "AB888X", + "47220": "AB888X", + "47223": "AB888X", + "47224": "AB888X", + "47225": "AB888X", + "47226": "AB888X", + "47227": "AB888X", + "47228": "AB888X", + "47229": "AB888X", + "47230": "AB888X", + "47231": "AB888X", + "47232": "AB888X", + "47234": "AB888X", + "47235": "AB888X", + "47236": "AB888X", + "47240": "AB888X", + "47243": "AB888X", + "47244": "AB888X", + "47245": "AB888X", + "47246": "AB888X", + "47247": "AB888X", + "47249": "AB888X", + "47250": "AB888X", + "47260": "AB888X", + "47261": "AB888X", + "47263": "AB888X", + "47264": "AB888X", + "47265": "AB888X", + "47270": "AB888X", + "47272": "AB888X", + "47273": "AB888X", + "47274": "AB888X", + "47280": "AB888X", + "47281": "AB888X", + "47282": "AB888X", + "47283": "AB888X", + "47302": "AB888X", + "47303": "AB888X", + "47304": "AB888X", + "47305": "AB888X", + "47306": "AB888X", + "47307": "AB888X", + "47308": "AB888X", + "47320": "AB888X", + "47322": "AB888X", + "47324": "AB888X", + "47325": "AB888X", + "47326": "AB888X", + "47327": "AB888X", + "47330": "AB888X", + "47331": "AB888X", + "47334": "AB888X", + "47335": "AB888X", + "47336": "AB888X", + "47337": "AB888X", + "47338": "AB888X", + "47339": "AB888X", + "47340": "AB888X", + "47341": "AB888X", + "47342": "AB888X", + "47344": "AB888X", + "47345": "AB888X", + "47346": "AB888X", + "47348": "AB888X", + "47351": "AB888X", + "47352": "AB888X", + "47353": "AB888X", + "47354": "AB888X", + "47355": "AB888X", + "47356": "AB888X", + "47357": "AB888X", + "47358": "AB888X", + "47359": "AB888X", + "47360": "AB888X", + "47361": "AB888X", + "47362": "AB888X", + "47366": "AB888X", + "47367": "AB888X", + "47368": "AB888X", + "47369": "AB888X", + "47370": "AB888X", + "47371": "AB888X", + "47373": "AB888X", + "47374": "AB888X", + "47375": "AB888X", + "47380": "AB888X", + "47381": "AB888X", + "47382": "AB888X", + "47383": "AB888X", + "47384": "AB888X", + "47385": "AB888X", + "47386": "AB888X", + "47387": "AB888X", + "47388": "AB888X", + "47390": "AB888X", + "47392": "AB888X", + "47393": "AB888X", + "47394": "AB888X", + "47396": "AB888X", + "47401": "AB888X", + "47402": "AB888X", + "47403": "AB888X", + "47404": "AB888X", + "47405": "AB888X", + "47406": "AB888X", + "47407": "AB888X", + "47408": "AB888X", + "47420": "AB888X", + "47421": "AB888X", + "47424": "AB888X", + "47426": "AB888X", + "47427": "AB888X", + "47429": "AB888X", + "47430": "AB888X", + "47431": "AB888X", + "47432": "AB888X", + "47433": "AB888X", + "47434": "AB888X", + "47435": "AB888X", + "47436": "AB888X", + "47437": "AB888X", + "47438": "AB888X", + "47439": "AB888X", + "47441": "AB888X", + "47443": "AB888X", + "47445": "AB888X", + "47446": "AB888X", + "47448": "AB888X", + "47449": "AB888X", + "47451": "AB888X", + "47452": "AB888X", + "47453": "AB888X", + "47454": "AB888X", + "47455": "AB888X", + "47456": "AB888X", + "47457": "AB888X", + "47458": "AB888X", + "47459": "AB888X", + "47460": "AB888X", + "47462": "AB888X", + "47463": "AB888X", + "47464": "AB888X", + "47465": "AB888X", + "47467": "AB888X", + "47468": "AB888X", + "47469": "AB888X", + "47470": "AB888X", + "47471": "AB888X", + "47472": "AB888X", + "47490": "AB888X", + "47501": "AB888X", + "47512": "AB888X", + "47513": "AB888X", + "47514": "AB888X", + "47515": "AB888X", + "47516": "AB888X", + "47519": "AB888X", + "47520": "AB888X", + "47521": "AB888X", + "47522": "AB888X", + "47523": "AB888X", + "47524": "AB888X", + "47525": "AB888X", + "47527": "AB888X", + "47528": "AB888X", + "47529": "AB888X", + "47531": "AB888X", + "47532": "AB888X", + "47535": "AB888X", + "47536": "AB888X", + "47537": "AB888X", + "47541": "AB888X", + "47542": "AB888X", + "47545": "AB888X", + "47546": "AB888X", + "47547": "AB888X", + "47549": "AB888X", + "47550": "AB888X", + "47551": "AB888X", + "47552": "AB888X", + "47553": "AB888X", + "47556": "AB888X", + "47557": "AB888X", + "47558": "AB888X", + "47561": "AB888X", + "47562": "AB888X", + "47564": "AB888X", + "47567": "AB888X", + "47568": "AB888X", + "47573": "AB888X", + "47574": "AB888X", + "47575": "AB888X", + "47576": "AB888X", + "47577": "AB888X", + "47578": "AB888X", + "47579": "AB888X", + "47580": "AB888X", + "47581": "AB888X", + "47584": "AB888X", + "47585": "AB888X", + "47586": "AB888X", + "47588": "AB888X", + "47590": "AB888X", + "47591": "AB888X", + "47596": "AB888X", + "47597": "AB888X", + "47598": "AB888X", + "47601": "AB888X", + "47610": "AB888X", + "47611": "AB888X", + "47612": "AB888X", + "47613": "AB888X", + "47614": "AB888X", + "47615": "AB888X", + "47616": "AB888X", + "47617": "AB888X", + "47618": "AB888X", + "47619": "AB888X", + "47620": "AB888X", + "47629": "AB888X", + "47630": "AB888X", + "47631": "AB888X", + "47633": "AB888X", + "47634": "AB888X", + "47635": "AB888X", + "47637": "AB888X", + "47638": "AB888X", + "47639": "AB888X", + "47640": "AB888X", + "47647": "AB888X", + "47648": "AB888X", + "47649": "AB888X", + "47654": "AB888X", + "47660": "AB888X", + "47665": "AB888X", + "47666": "AB888X", + "47670": "AB888X", + "47683": "AB888X", + "47701": "AB888X", + "47702": "AB888X", + "47703": "AB888X", + "47704": "AB888X", + "47705": "AB888X", + "47706": "AB888X", + "47708": "AB888X", + "47710": "AB888X", + "47711": "AB888X", + "47712": "AB888X", + "47713": "AB888X", + "47714": "AB888X", + "47715": "AB888X", + "47716": "AB888X", + "47719": "AB888X", + "47720": "AB888X", + "47721": "AB888X", + "47722": "AB888X", + "47724": "AB888X", + "47725": "AB888X", + "47727": "AB888X", + "47728": "AB888X", + "47730": "AB888X", + "47731": "AB888X", + "47732": "AB888X", + "47733": "AB888X", + "47734": "AB888X", + "47735": "AB888X", + "47736": "AB888X", + "47737": "AB888X", + "47739": "AB888X", + "47740": "AB888X", + "47741": "AB888X", + "47744": "AB888X", + "47747": "AB888X", + "47750": "AB888X", + "47801": "AB888X", + "47802": "AB888X", + "47803": "AB888X", + "47804": "AB888X", + "47805": "AB888X", + "47807": "AB888X", + "47808": "AB888X", + "47809": "AB888X", + "47811": "AB888X", + "47812": "AB888X", + "47813": "AB888X", + "47814": "AB888X", + "47830": "AB888X", + "47831": "AB888X", + "47832": "AB888X", + "47833": "AB888X", + "47834": "AB888X", + "47836": "AB888X", + "47837": "AB888X", + "47838": "AB888X", + "47840": "AB888X", + "47841": "AB888X", + "47842": "AB888X", + "47845": "AB888X", + "47846": "AB888X", + "47847": "AB888X", + "47848": "AB888X", + "47849": "AB888X", + "47850": "AB888X", + "47851": "AB888X", + "47852": "AB888X", + "47853": "AB888X", + "47854": "AB888X", + "47855": "AB888X", + "47856": "AB888X", + "47857": "AB888X", + "47858": "AB888X", + "47859": "AB888X", + "47860": "AB888X", + "47861": "AB888X", + "47862": "AB888X", + "47863": "AB888X", + "47864": "AB888X", + "47865": "AB888X", + "47866": "AB888X", + "47868": "AB888X", + "47869": "AB888X", + "47870": "AB888X", + "47871": "AB888X", + "47872": "AB888X", + "47874": "AB888X", + "47875": "AB888X", + "47876": "AB888X", + "47878": "AB888X", + "47879": "AB888X", + "47880": "AB888X", + "47881": "AB888X", + "47882": "AB888X", + "47884": "AB888X", + "47885": "AB888X", + "47901": "AB888X", + "47902": "AB888X", + "47903": "AB888X", + "47904": "AB888X", + "47905": "AB888X", + "47906": "AB888X", + "47907": "AB888X", + "47909": "AB888X", + "47916": "AB888X", + "47917": "AB888X", + "47918": "AB888X", + "47920": "AB888X", + "47921": "AB888X", + "47922": "AB888X", + "47923": "AB888X", + "47924": "AB888X", + "47925": "AB888X", + "47926": "AB888X", + "47928": "AB888X", + "47929": "AB888X", + "47930": "AB888X", + "47932": "AB888X", + "47933": "AB888X", + "47934": "AB888X", + "47935": "AB888X", + "47936": "AB888X", + "47937": "AB888X", + "47938": "AB888X", + "47939": "AB888X", + "47940": "AB888X", + "47941": "AB888X", + "47942": "AB888X", + "47943": "AB887X", + "47944": "AB888X", + "47946": "AB888X", + "47948": "AB888X", + "47949": "AB888X", + "47950": "AB888X", + "47951": "AB888X", + "47952": "AB888X", + "47954": "AB888X", + "47955": "AB888X", + "47957": "AB887X", + "47958": "AB888X", + "47959": "AB888X", + "47960": "AB888X", + "47962": "AB888X", + "47963": "AB888X", + "47964": "AB888X", + "47965": "AB888X", + "47966": "AB888X", + "47967": "AB888X", + "47968": "AB888X", + "47969": "AB888X", + "47970": "AB888X", + "47971": "AB888X", + "47974": "AB888X", + "47975": "AB888X", + "47977": "AB888X", + "47978": "AB887X", + "47980": "AB888X", + "47981": "AB888X", + "47982": "AB888X", + "47983": "AB888X", + "47984": "AB888X", + "47986": "AB888X", + "47987": "AB888X", + "47988": "AB888X", + "47989": "AB888X", + "47990": "AB888X", + "47991": "AB888X", + "47992": "AB888X", + "47993": "AB888X", + "47994": "AB888X", + "47995": "AB888X", + "47996": "AB888X", + "47997": "AB888X", + "48001": "AB889X", + "48002": "AB889X", + "48003": "AB889X", + "48004": "AB889X", + "48005": "AB889X", + "48006": "AB889X", + "48007": "AB889X", + "48009": "AB889X", + "48012": "AB889X", + "48014": "AB889X", + "48015": "AB889X", + "48017": "AB889X", + "48021": "AB889X", + "48022": "AB889X", + "48023": "AB889X", + "48025": "AB889X", + "48026": "AB889X", + "48027": "AB889X", + "48028": "AB889X", + "48030": "AB889X", + "48032": "AB889X", + "48033": "AB889X", + "48034": "AB889X", + "48035": "AB889X", + "48036": "AB889X", + "48037": "AB889X", + "48038": "AB889X", + "48039": "AB889X", + "48040": "AB889X", + "48041": "AB889X", + "48042": "AB889X", + "48043": "AB889X", + "48044": "AB889X", + "48045": "AB889X", + "48046": "AB889X", + "48047": "AB889X", + "48048": "AB889X", + "48049": "AB889X", + "48050": "AB889X", + "48051": "AB889X", + "48054": "AB889X", + "48059": "AB889X", + "48060": "AB889X", + "48061": "AB889X", + "48062": "AB889X", + "48063": "AB889X", + "48064": "AB889X", + "48065": "AB889X", + "48066": "AB889X", + "48067": "AB889X", + "48068": "AB889X", + "48069": "AB889X", + "48070": "AB889X", + "48071": "AB889X", + "48072": "AB889X", + "48073": "AB889X", + "48074": "AB889X", + "48075": "AB889X", + "48076": "AB889X", + "48079": "AB889X", + "48080": "AB889X", + "48081": "AB889X", + "48082": "AB889X", + "48083": "AB889X", + "48084": "AB889X", + "48085": "AB889X", + "48086": "AB889X", + "48088": "AB889X", + "48089": "AB889X", + "48090": "AB889X", + "48091": "AB889X", + "48092": "AB889X", + "48093": "AB889X", + "48094": "AB889X", + "48095": "AB889X", + "48096": "AB889X", + "48097": "AB889X", + "48098": "AB889X", + "48099": "AB889X", + "48101": "AB889X", + "48103": "AB889X", + "48104": "AB889X", + "48105": "AB889X", + "48106": "AB889X", + "48107": "AB889X", + "48108": "AB889X", + "48109": "AB889X", + "48110": "AB889X", + "48111": "AB889X", + "48112": "AB889X", + "48113": "AB889X", + "48114": "AB889X", + "48115": "AB889X", + "48116": "AB889X", + "48117": "AB889X", + "48118": "AB889X", + "48120": "AB889X", + "48121": "AB889X", + "48122": "AB889X", + "48123": "AB889X", + "48124": "AB889X", + "48125": "AB889X", + "48126": "AB889X", + "48127": "AB889X", + "48128": "AB889X", + "48130": "AB889X", + "48131": "AB889X", + "48133": "AB889X", + "48134": "AB889X", + "48135": "AB889X", + "48136": "AB889X", + "48137": "AB889X", + "48138": "AB889X", + "48139": "AB889X", + "48140": "AB889X", + "48141": "AB889X", + "48143": "AB889X", + "48144": "AB889X", + "48145": "AB889X", + "48146": "AB889X", + "48150": "AB889X", + "48151": "AB889X", + "48152": "AB889X", + "48153": "AB889X", + "48154": "AB889X", + "48157": "AB889X", + "48158": "AB889X", + "48159": "AB889X", + "48160": "AB889X", + "48161": "AB889X", + "48162": "AB889X", + "48164": "AB889X", + "48165": "AB889X", + "48166": "AB889X", + "48167": "AB889X", + "48168": "AB889X", + "48169": "AB889X", + "48170": "AB889X", + "48173": "AB889X", + "48174": "AB889X", + "48175": "AB889X", + "48176": "AB889X", + "48177": "AB889X", + "48178": "AB889X", + "48179": "AB889X", + "48180": "AB889X", + "48182": "AB889X", + "48183": "AB889X", + "48184": "AB889X", + "48185": "AB889X", + "48186": "AB889X", + "48187": "AB889X", + "48188": "AB889X", + "48189": "AB889X", + "48190": "AB889X", + "48191": "AB889X", + "48192": "AB889X", + "48193": "AB889X", + "48195": "AB889X", + "48197": "AB889X", + "48198": "AB889X", + "48201": "AB889X", + "48202": "AB889X", + "48203": "AB889X", + "48204": "AB889X", + "48205": "AB889X", + "48206": "AB889X", + "48207": "AB889X", + "48208": "AB889X", + "48209": "AB889X", + "48210": "AB889X", + "48211": "AB889X", + "48212": "AB889X", + "48213": "AB889X", + "48214": "AB889X", + "48215": "AB889X", + "48216": "AB889X", + "48217": "AB889X", + "48218": "AB889X", + "48219": "AB889X", + "48220": "AB889X", + "48221": "AB889X", + "48222": "AB889X", + "48223": "AB889X", + "48224": "AB889X", + "48225": "AB889X", + "48226": "AB889X", + "48227": "AB889X", + "48228": "AB889X", + "48229": "AB889X", + "48230": "AB889X", + "48231": "AB889X", + "48232": "AB889X", + "48233": "AB889X", + "48234": "AB889X", + "48235": "AB889X", + "48236": "AB889X", + "48237": "AB889X", + "48238": "AB889X", + "48239": "AB889X", + "48240": "AB889X", + "48242": "AB889X", + "48243": "AB889X", + "48244": "AB889X", + "48255": "AB889X", + "48260": "AB889X", + "48264": "AB889X", + "48265": "AB889X", + "48266": "AB889X", + "48267": "AB889X", + "48268": "AB889X", + "48269": "AB889X", + "48272": "AB889X", + "48275": "AB889X", + "48277": "AB889X", + "48278": "AB889X", + "48279": "AB889X", + "48283": "AB888X", + "48288": "AB889X", + "48301": "AB889X", + "48302": "AB889X", + "48303": "AB889X", + "48304": "AB889X", + "48306": "AB889X", + "48307": "AB889X", + "48308": "AB889X", + "48309": "AB889X", + "48310": "AB889X", + "48311": "AB889X", + "48312": "AB889X", + "48313": "AB889X", + "48314": "AB889X", + "48315": "AB889X", + "48316": "AB889X", + "48317": "AB889X", + "48318": "AB889X", + "48320": "AB889X", + "48321": "AB889X", + "48322": "AB889X", + "48323": "AB889X", + "48324": "AB889X", + "48325": "AB889X", + "48326": "AB889X", + "48327": "AB889X", + "48328": "AB889X", + "48329": "AB889X", + "48330": "AB889X", + "48331": "AB889X", + "48332": "AB889X", + "48333": "AB889X", + "48334": "AB889X", + "48335": "AB889X", + "48336": "AB889X", + "48340": "AB889X", + "48341": "AB889X", + "48342": "AB889X", + "48343": "AB889X", + "48346": "AB889X", + "48347": "AB889X", + "48348": "AB889X", + "48350": "AB889X", + "48353": "AB889X", + "48356": "AB889X", + "48357": "AB889X", + "48359": "AB889X", + "48360": "AB889X", + "48361": "AB889X", + "48362": "AB889X", + "48363": "AB889X", + "48366": "AB889X", + "48367": "AB889X", + "48370": "AB889X", + "48371": "AB889X", + "48374": "AB889X", + "48375": "AB889X", + "48376": "AB889X", + "48377": "AB889X", + "48380": "AB889X", + "48381": "AB889X", + "48382": "AB889X", + "48383": "AB889X", + "48386": "AB889X", + "48387": "AB889X", + "48390": "AB889X", + "48391": "AB889X", + "48393": "AB889X", + "48397": "AB889X", + "48401": "AB889X", + "48410": "AB889X", + "48411": "AB889X", + "48412": "AB889X", + "48413": "AB889X", + "48414": "AB889X", + "48415": "AB889X", + "48416": "AB889X", + "48417": "AB889X", + "48418": "AB889X", + "48419": "AB889X", + "48420": "AB889X", + "48421": "AB889X", + "48422": "AB889X", + "48423": "AB889X", + "48426": "AB889X", + "48427": "AB889X", + "48428": "AB889X", + "48429": "AB889X", + "48430": "AB889X", + "48432": "AB889X", + "48433": "AB889X", + "48434": "AB889X", + "48435": "AB889X", + "48436": "AB889X", + "48437": "AB889X", + "48438": "AB889X", + "48439": "AB889X", + "48440": "AB889X", + "48441": "AB889X", + "48442": "AB889X", + "48444": "AB889X", + "48445": "AB889X", + "48446": "AB889X", + "48449": "AB889X", + "48450": "AB889X", + "48451": "AB889X", + "48453": "AB889X", + "48454": "AB889X", + "48455": "AB889X", + "48456": "AB889X", + "48457": "AB889X", + "48458": "AB889X", + "48460": "AB889X", + "48461": "AB889X", + "48462": "AB889X", + "48463": "AB889X", + "48464": "AB889X", + "48465": "AB888X", + "48466": "AB889X", + "48467": "AB889X", + "48468": "AB889X", + "48469": "AB889X", + "48470": "AB889X", + "48471": "AB889X", + "48472": "AB889X", + "48473": "AB889X", + "48475": "AB889X", + "48476": "AB889X", + "48480": "AB889X", + "48501": "AB889X", + "48502": "AB889X", + "48503": "AB887X", + "48504": "AB889X", + "48505": "AB889X", + "48506": "AB889X", + "48507": "AB889X", + "48509": "AB889X", + "48519": "AB889X", + "48529": "AB889X", + "48531": "AB889X", + "48532": "AB889X", + "48550": "AB889X", + "48551": "AB889X", + "48552": "AB889X", + "48553": "AB889X", + "48554": "AB889X", + "48555": "AB889X", + "48556": "AB889X", + "48557": "AB889X", + "48559": "AB889X", + "48601": "AB889X", + "48602": "AB889X", + "48603": "AB889X", + "48604": "AB889X", + "48605": "AB889X", + "48606": "AB889X", + "48607": "AB889X", + "48608": "AB889X", + "48609": "AB889X", + "48610": "AB889X", + "48611": "AB889X", + "48612": "AB889X", + "48613": "AB889X", + "48614": "AB889X", + "48615": "AB889X", + "48616": "AB889X", + "48617": "AB889X", + "48618": "AB889X", + "48619": "AB889X", + "48620": "AB889X", + "48621": "AB889X", + "48622": "AB889X", + "48623": "AB889X", + "48624": "AB889X", + "48625": "AB889X", + "48626": "AB889X", + "48627": "AB889X", + "48628": "AB889X", + "48629": "AB889X", + "48630": "AB889X", + "48631": "AB889X", + "48632": "AB889X", + "48633": "AB889X", + "48634": "AB889X", + "48635": "AB889X", + "48636": "AB889X", + "48637": "AB889X", + "48638": "AB889X", + "48640": "AB889X", + "48641": "AB889X", + "48642": "AB889X", + "48647": "AB889X", + "48649": "AB889X", + "48650": "AB889X", + "48651": "AB889X", + "48652": "AB889X", + "48653": "AB889X", + "48654": "AB889X", + "48655": "AB889X", + "48656": "AB889X", + "48657": "AB889X", + "48658": "AB889X", + "48659": "AB889X", + "48661": "AB889X", + "48662": "AB889X", + "48663": "AB889X", + "48667": "AB889X", + "48670": "AB889X", + "48674": "AB889X", + "48686": "AB889X", + "48701": "AB889X", + "48703": "AB889X", + "48705": "AB889X", + "48706": "AB889X", + "48707": "AB889X", + "48708": "AB889X", + "48710": "AB889X", + "48720": "AB889X", + "48721": "AB889X", + "48722": "AB889X", + "48723": "AB889X", + "48724": "AB889X", + "48725": "AB889X", + "48726": "AB889X", + "48727": "AB889X", + "48728": "AB889X", + "48729": "AB889X", + "48730": "AB889X", + "48731": "AB889X", + "48732": "AB889X", + "48733": "AB889X", + "48734": "AB889X", + "48735": "AB889X", + "48736": "AB889X", + "48737": "AB889X", + "48738": "AB889X", + "48739": "AB889X", + "48740": "AB889X", + "48741": "AB889X", + "48742": "AB889X", + "48743": "AB889X", + "48744": "AB889X", + "48745": "AB889X", + "48746": "AB889X", + "48747": "AB889X", + "48748": "AB889X", + "48749": "AB889X", + "48750": "AB889X", + "48754": "AB889X", + "48755": "AB889X", + "48756": "AB889X", + "48757": "AB889X", + "48758": "AB889X", + "48759": "AB889X", + "48760": "AB889X", + "48761": "AB889X", + "48762": "AB889X", + "48763": "AB889X", + "48764": "AB889X", + "48765": "AB889X", + "48766": "AB889X", + "48767": "AB889X", + "48768": "AB889X", + "48769": "AB889X", + "48770": "AB889X", + "48787": "AB889X", + "48801": "AB889X", + "48802": "AB889X", + "48804": "AB889X", + "48805": "AB889X", + "48806": "AB889X", + "48807": "AB889X", + "48808": "AB889X", + "48809": "AB889X", + "48811": "AB889X", + "48812": "AB889X", + "48813": "AB889X", + "48815": "AB889X", + "48816": "AB889X", + "48817": "AB889X", + "48818": "AB889X", + "48819": "AB889X", + "48820": "AB889X", + "48821": "AB889X", + "48822": "AB889X", + "48823": "AB889X", + "48824": "AB889X", + "48825": "AB889X", + "48826": "AB889X", + "48827": "AB887X", + "48829": "AB889X", + "48830": "AB889X", + "48831": "AB889X", + "48832": "AB889X", + "48833": "AB889X", + "48834": "AB889X", + "48835": "AB889X", + "48836": "AB889X", + "48837": "AB889X", + "48838": "AB889X", + "48839": "AB889X", + "48840": "AB889X", + "48841": "AB889X", + "48842": "AB889X", + "48843": "AB889X", + "48844": "AB889X", + "48845": "AB889X", + "48846": "AB889X", + "48847": "AB889X", + "48848": "AB889X", + "48849": "AB889X", + "48850": "AB889X", + "48851": "AB889X", + "48852": "AB889X", + "48853": "AB889X", + "48854": "AB889X", + "48855": "AB889X", + "48856": "AB889X", + "48857": "AB889X", + "48858": "AB889X", + "48859": "AB889X", + "48860": "AB889X", + "48861": "AB889X", + "48862": "AB889X", + "48863": "AB889X", + "48864": "AB889X", + "48865": "AB889X", + "48866": "AB889X", + "48867": "AB889X", + "48870": "AB889X", + "48871": "AB889X", + "48872": "AB889X", + "48873": "AB889X", + "48874": "AB889X", + "48875": "AB889X", + "48876": "AB889X", + "48877": "AB889X", + "48878": "AB889X", + "48879": "AB889X", + "48880": "AB889X", + "48881": "AB889X", + "48882": "AB889X", + "48883": "AB889X", + "48884": "AB889X", + "48885": "AB889X", + "48886": "AB889X", + "48887": "AB889X", + "48888": "AB889X", + "48889": "AB889X", + "48890": "AB889X", + "48891": "AB889X", + "48892": "AB889X", + "48893": "AB889X", + "48894": "AB889X", + "48895": "AB889X", + "48896": "AB889X", + "48897": "AB889X", + "48901": "AB889X", + "48906": "AB889X", + "48907": "AB889X", + "48908": "AB889X", + "48909": "AB889X", + "48910": "AB889X", + "48911": "AB889X", + "48912": "AB889X", + "48913": "AB889X", + "48915": "AB889X", + "48916": "AB889X", + "48917": "AB889X", + "48918": "AB889X", + "48919": "AB889X", + "48921": "AB889X", + "48922": "AB889X", + "48924": "AB889X", + "48929": "AB889X", + "48930": "AB889X", + "48933": "AB889X", + "48937": "AB889X", + "48950": "AB889X", + "48951": "AB889X", + "48956": "AB889X", + "48980": "AB889X", + "49001": "AB889X", + "49002": "AB889X", + "49003": "AB889X", + "49004": "AB889X", + "49005": "AB889X", + "49006": "AB889X", + "49007": "AB889X", + "49008": "AB889X", + "49009": "AB889X", + "49010": "AB889X", + "49011": "AB889X", + "49012": "AB889X", + "49013": "AB889X", + "49014": "AB889X", + "49015": "AB889X", + "49016": "AB889X", + "49017": "AB889X", + "49018": "AB889X", + "49019": "AB889X", + "49020": "AB889X", + "49021": "AB889X", + "49022": "AB887X", + "49023": "AB889X", + "49024": "AB889X", + "49026": "AB889X", + "49027": "AB889X", + "49028": "AB889X", + "49029": "AB889X", + "49030": "AB889X", + "49031": "AB887X", + "49032": "AB889X", + "49033": "AB889X", + "49034": "AB889X", + "49035": "AB889X", + "49036": "AB889X", + "49038": "AB887X", + "49039": "AB887X", + "49040": "AB889X", + "49041": "AB889X", + "49042": "AB889X", + "49043": "AB889X", + "49045": "AB889X", + "49046": "AB889X", + "49047": "AB887X", + "49048": "AB889X", + "49050": "AB889X", + "49051": "AB889X", + "49052": "AB889X", + "49053": "AB889X", + "49055": "AB889X", + "49056": "AB889X", + "49057": "AB887X", + "49058": "AB889X", + "49060": "AB889X", + "49061": "AB887X", + "49062": "AB889X", + "49063": "AB889X", + "49064": "AB889X", + "49065": "AB889X", + "49066": "AB889X", + "49067": "AB889X", + "49068": "AB889X", + "49069": "AB889X", + "49070": "AB889X", + "49071": "AB889X", + "49072": "AB889X", + "49073": "AB889X", + "49074": "AB889X", + "49075": "AB889X", + "49076": "AB889X", + "49077": "AB889X", + "49078": "AB889X", + "49079": "AB889X", + "49080": "AB889X", + "49081": "AB889X", + "49082": "AB889X", + "49083": "AB889X", + "49084": "AB887X", + "49085": "AB887X", + "49087": "AB889X", + "49088": "AB889X", + "49089": "AB889X", + "49090": "AB889X", + "49091": "AB889X", + "49092": "AB889X", + "49093": "AB889X", + "49094": "AB889X", + "49095": "AB887X", + "49096": "AB889X", + "49097": "AB889X", + "49098": "AB887X", + "49099": "AB889X", + "49101": "AB887X", + "49102": "AB887X", + "49103": "AB887X", + "49104": "AB887X", + "49106": "AB887X", + "49107": "AB887X", + "49111": "AB887X", + "49112": "AB887X", + "49113": "AB887X", + "49115": "AB887X", + "49116": "AB887X", + "49117": "AB887X", + "49119": "AB887X", + "49120": "AB887X", + "49121": "AB887X", + "49125": "AB887X", + "49126": "AB887X", + "49127": "AB887X", + "49128": "AB887X", + "49129": "AB887X", + "49130": "AB887X", + "49201": "AB889X", + "49202": "AB889X", + "49203": "AB889X", + "49204": "AB889X", + "49220": "AB890X", + "49221": "AB890X", + "49224": "AB889X", + "49227": "AB889X", + "49228": "AB890X", + "49229": "AB890X", + "49230": "AB890X", + "49232": "AB889X", + "49233": "AB890X", + "49234": "AB889X", + "49235": "AB890X", + "49236": "AB890X", + "49237": "AB889X", + "49238": "AB890X", + "49239": "AB889X", + "49240": "AB889X", + "49241": "AB889X", + "49242": "AB889X", + "49245": "AB889X", + "49246": "AB889X", + "49247": "AB890X", + "49248": "AB890X", + "49249": "AB889X", + "49250": "AB889X", + "49251": "AB889X", + "49252": "AB889X", + "49253": "AB890X", + "49254": "AB889X", + "49255": "AB889X", + "49256": "AB890X", + "49257": "AB889X", + "49258": "AB889X", + "49259": "AB889X", + "49261": "AB889X", + "49262": "AB889X", + "49263": "AB889X", + "49264": "AB889X", + "49265": "AB890X", + "49266": "AB889X", + "49267": "AB889X", + "49268": "AB890X", + "49269": "AB889X", + "49270": "AB889X", + "49271": "AB889X", + "49272": "AB889X", + "49274": "AB889X", + "49276": "AB890X", + "49277": "AB889X", + "49279": "AB890X", + "49281": "AB889X", + "49282": "AB889X", + "49283": "AB889X", + "49284": "AB889X", + "49285": "AB889X", + "49286": "AB890X", + "49287": "AB890X", + "49288": "AB889X", + "49289": "AB890X", + "49301": "AB889X", + "49302": "AB889X", + "49303": "AB889X", + "49304": "AB889X", + "49305": "AB889X", + "49306": "AB889X", + "49307": "AB889X", + "49309": "AB889X", + "49310": "AB889X", + "49311": "AB889X", + "49312": "AB889X", + "49314": "AB889X", + "49315": "AB889X", + "49316": "AB889X", + "49317": "AB889X", + "49318": "AB889X", + "49319": "AB889X", + "49320": "AB889X", + "49321": "AB889X", + "49322": "AB889X", + "49323": "AB889X", + "49325": "AB889X", + "49326": "AB889X", + "49327": "AB889X", + "49328": "AB889X", + "49329": "AB889X", + "49330": "AB889X", + "49331": "AB889X", + "49332": "AB889X", + "49333": "AB889X", + "49335": "AB889X", + "49336": "AB889X", + "49337": "AB889X", + "49338": "AB889X", + "49339": "AB889X", + "49340": "AB889X", + "49341": "AB889X", + "49342": "AB889X", + "49343": "AB889X", + "49344": "AB889X", + "49345": "AB889X", + "49346": "AB889X", + "49347": "AB889X", + "49348": "AB889X", + "49349": "AB889X", + "49351": "AB889X", + "49355": "AB889X", + "49356": "AB889X", + "49357": "AB889X", + "49401": "AB889X", + "49402": "AB889X", + "49403": "AB889X", + "49404": "AB889X", + "49405": "AB889X", + "49406": "AB889X", + "49408": "AB889X", + "49409": "AB889X", + "49410": "AB889X", + "49411": "AB889X", + "49412": "AB889X", + "49413": "AB889X", + "49415": "AB889X", + "49416": "AB889X", + "49417": "AB889X", + "49418": "AB889X", + "49419": "AB889X", + "49420": "AB889X", + "49421": "AB889X", + "49422": "AB889X", + "49423": "AB889X", + "49424": "AB889X", + "49425": "AB889X", + "49426": "AB889X", + "49427": "AB889X", + "49428": "AB889X", + "49429": "AB889X", + "49430": "AB889X", + "49431": "AB889X", + "49434": "AB889X", + "49435": "AB889X", + "49436": "AB889X", + "49437": "AB889X", + "49440": "AB889X", + "49441": "AB889X", + "49442": "AB889X", + "49443": "AB889X", + "49444": "AB889X", + "49445": "AB889X", + "49446": "AB889X", + "49448": "AB889X", + "49449": "AB889X", + "49450": "AB889X", + "49451": "AB889X", + "49452": "AB889X", + "49453": "AB889X", + "49454": "AB889X", + "49455": "AB889X", + "49456": "AB889X", + "49457": "AB889X", + "49458": "AB889X", + "49459": "AB889X", + "49460": "AB889X", + "49461": "AB889X", + "49463": "AB889X", + "49464": "AB889X", + "49468": "AB889X", + "49501": "AB889X", + "49502": "AB889X", + "49503": "AB889X", + "49504": "AB889X", + "49505": "AB889X", + "49506": "AB889X", + "49507": "AB889X", + "49508": "AB889X", + "49509": "AB889X", + "49510": "AB889X", + "49512": "AB889X", + "49514": "AB889X", + "49515": "AB889X", + "49516": "AB889X", + "49518": "AB889X", + "49519": "AB889X", + "49523": "AB889X", + "49525": "AB889X", + "49528": "AB889X", + "49530": "AB889X", + "49534": "AB889X", + "49544": "AB889X", + "49546": "AB889X", + "49548": "AB889X", + "49550": "AB889X", + "49555": "AB889X", + "49560": "AB889X", + "49588": "AB889X", + "49599": "AB889X", + "49601": "AB889X", + "49610": "AB889X", + "49611": "AB889X", + "49612": "AB889X", + "49613": "AB889X", + "49614": "AB889X", + "49615": "AB889X", + "49616": "AB889X", + "49617": "AB889X", + "49618": "AB889X", + "49619": "AB889X", + "49620": "AB889X", + "49621": "AB889X", + "49622": "AB889X", + "49623": "AB889X", + "49625": "AB889X", + "49626": "AB889X", + "49627": "AB889X", + "49628": "AB889X", + "49629": "AB889X", + "49630": "AB889X", + "49631": "AB889X", + "49632": "AB889X", + "49633": "AB889X", + "49634": "AB889X", + "49635": "AB889X", + "49636": "AB889X", + "49637": "AB889X", + "49638": "AB889X", + "49639": "AB889X", + "49640": "AB889X", + "49642": "AB889X", + "49643": "AB889X", + "49644": "AB889X", + "49645": "AB889X", + "49646": "AB889X", + "49648": "AB889X", + "49649": "AB889X", + "49650": "AB889X", + "49651": "AB889X", + "49653": "AB889X", + "49654": "AB889X", + "49655": "AB889X", + "49656": "AB889X", + "49657": "AB889X", + "49659": "AB889X", + "49660": "AB889X", + "49663": "AB889X", + "49664": "AB889X", + "49665": "AB889X", + "49666": "AB889X", + "49667": "AB889X", + "49668": "AB889X", + "49670": "AB889X", + "49673": "AB889X", + "49674": "AB889X", + "49675": "AB889X", + "49676": "AB889X", + "49677": "AB889X", + "49679": "AB889X", + "49680": "AB889X", + "49682": "AB889X", + "49683": "AB889X", + "49684": "AB889X", + "49685": "AB889X", + "49686": "AB889X", + "49688": "AB889X", + "49689": "AB889X", + "49690": "AB889X", + "49696": "AB889X", + "49701": "AB889X", + "49705": "AB889X", + "49706": "AB889X", + "49707": "AB889X", + "49709": "AB889X", + "49710": "AB889X", + "49711": "AB889X", + "49712": "AB889X", + "49713": "AB889X", + "49715": "AB889X", + "49716": "AB889X", + "49717": "AB889X", + "49718": "AB889X", + "49719": "AB887X", + "49720": "AB889X", + "49721": "AB889X", + "49722": "AB889X", + "49723": "AB889X", + "49724": "AB889X", + "49725": "AB889X", + "49726": "AB889X", + "49727": "AB889X", + "49728": "AB889X", + "49729": "AB889X", + "49730": "AB889X", + "49733": "AB889X", + "49734": "AB889X", + "49735": "AB889X", + "49736": "AB889X", + "49737": "AB889X", + "49738": "AB889X", + "49739": "AB889X", + "49740": "AB889X", + "49743": "AB889X", + "49744": "AB889X", + "49745": "AB887X", + "49746": "AB889X", + "49747": "AB889X", + "49748": "AB889X", + "49749": "AB889X", + "49751": "AB889X", + "49752": "AB889X", + "49753": "AB889X", + "49755": "AB889X", + "49756": "AB889X", + "49757": "AB887X", + "49759": "AB889X", + "49760": "AB887X", + "49761": "AB889X", + "49762": "AB887X", + "49764": "AB889X", + "49765": "AB889X", + "49766": "AB889X", + "49768": "AB889X", + "49769": "AB889X", + "49770": "AB889X", + "49774": "AB889X", + "49775": "AB887X", + "49776": "AB889X", + "49777": "AB889X", + "49779": "AB889X", + "49780": "AB889X", + "49781": "AB889X", + "49782": "AB889X", + "49783": "AB889X", + "49784": "AB889X", + "49785": "AB889X", + "49786": "AB889X", + "49788": "AB889X", + "49790": "AB889X", + "49791": "AB889X", + "49792": "AB889X", + "49793": "AB889X", + "49795": "AB889X", + "49796": "AB889X", + "49797": "AB889X", + "49799": "AB889X", + "49801": "AB887X", + "49802": "AB887X", + "49805": "AB887X", + "49806": "AB887X", + "49807": "AB887X", + "49808": "AB887X", + "49812": "AB887X", + "49814": "AB887X", + "49815": "AB887X", + "49816": "AB887X", + "49817": "AB887X", + "49818": "AB887X", + "49819": "AB887X", + "49820": "AB887X", + "49821": "AB887X", + "49822": "AB887X", + "49825": "AB887X", + "49826": "AB887X", + "49827": "AB887X", + "49829": "AB887X", + "49831": "AB887X", + "49833": "AB887X", + "49834": "AB887X", + "49835": "AB887X", + "49836": "AB887X", + "49837": "AB887X", + "49838": "AB887X", + "49839": "AB887X", + "49840": "AB887X", + "49841": "AB887X", + "49845": "AB887X", + "49847": "AB887X", + "49848": "AB887X", + "49849": "AB887X", + "49852": "AB887X", + "49853": "AB887X", + "49854": "AB887X", + "49855": "AB887X", + "49858": "AB887X", + "49861": "AB887X", + "49862": "AB887X", + "49863": "AB887X", + "49864": "AB887X", + "49865": "AB887X", + "49866": "AB887X", + "49868": "AB887X", + "49870": "AB887X", + "49871": "AB887X", + "49872": "AB887X", + "49873": "AB887X", + "49874": "AB887X", + "49876": "AB887X", + "49877": "AB887X", + "49878": "AB887X", + "49879": "AB887X", + "49880": "AB887X", + "49881": "AB887X", + "49883": "AB887X", + "49884": "AB887X", + "49885": "AB887X", + "49886": "AB887X", + "49887": "AB887X", + "49891": "AB887X", + "49892": "AB887X", + "49893": "AB887X", + "49894": "AB887X", + "49895": "AB887X", + "49896": "AB887X", + "49901": "AB887X", + "49902": "AB887X", + "49903": "AB887X", + "49905": "AB887X", + "49908": "AB887X", + "49910": "AB889X", + "49911": "AB889X", + "49912": "AB889X", + "49913": "AB887X", + "49915": "AB887X", + "49916": "AB887X", + "49917": "AB887X", + "49918": "AB887X", + "49919": "AB887X", + "49920": "AB887X", + "49921": "AB887X", + "49922": "AB887X", + "49925": "AB889X", + "49927": "AB887X", + "49929": "AB889X", + "49930": "AB887X", + "49931": "AB887X", + "49934": "AB887X", + "49935": "AB887X", + "49938": "AB889X", + "49942": "AB887X", + "49945": "AB887X", + "49946": "AB887X", + "49947": "AB889X", + "49948": "AB887X", + "49950": "AB887X", + "49952": "AB887X", + "49953": "AB887X", + "49955": "AB887X", + "49958": "AB887X", + "49959": "AB889X", + "49960": "AB889X", + "49961": "AB887X", + "49962": "AB887X", + "49963": "AB887X", + "49964": "AB887X", + "49965": "AB887X", + "49967": "AB889X", + "49968": "AB889X", + "49969": "AB889X", + "49970": "AB887X", + "49971": "AB889X", + "50001": "AB888X", + "50002": "AB888X", + "50003": "AB888X", + "50005": "AB888X", + "50006": "AB888X", + "50007": "AB888X", + "50008": "AB888X", + "50009": "AB888X", + "50010": "AB888X", + "50011": "AB888X", + "50012": "AB888X", + "50013": "AB888X", + "50014": "AB888X", + "50020": "AB888X", + "50021": "AB888X", + "50022": "AB888X", + "50023": "AB888X", + "50025": "AB888X", + "50026": "AB888X", + "50027": "AB888X", + "50028": "AB888X", + "50029": "AB888X", + "50031": "AB888X", + "50032": "AB888X", + "50033": "AB888X", + "50034": "AB888X", + "50035": "AB888X", + "50036": "AB888X", + "50037": "AB888X", + "50038": "AB888X", + "50039": "AB888X", + "50040": "AB888X", + "50041": "AB888X", + "50042": "AB888X", + "50043": "AB888X", + "50044": "AB888X", + "50046": "AB888X", + "50047": "AB888X", + "50048": "AB888X", + "50049": "AB888X", + "50050": "AB888X", + "50051": "AB888X", + "50052": "AB888X", + "50054": "AB888X", + "50055": "AB888X", + "50056": "AB888X", + "50057": "AB888X", + "50058": "AB888X", + "50059": "AB888X", + "50060": "AB888X", + "50061": "AB888X", + "50062": "AB888X", + "50063": "AB888X", + "50064": "AB888X", + "50065": "AB888X", + "50066": "AB888X", + "50067": "AB888X", + "50068": "AB888X", + "50069": "AB888X", + "50070": "AB888X", + "50071": "AB888X", + "50072": "AB888X", + "50073": "AB888X", + "50074": "AB888X", + "50075": "AB888X", + "50076": "AB888X", + "50078": "AB888X", + "50101": "AB888X", + "50102": "AB888X", + "50103": "AB888X", + "50104": "AB888X", + "50105": "AB888X", + "50106": "AB888X", + "50107": "AB888X", + "50108": "AB888X", + "50109": "AB888X", + "50110": "AB888X", + "50111": "AB888X", + "50112": "AB888X", + "50115": "AB888X", + "50116": "AB888X", + "50117": "AB888X", + "50118": "AB888X", + "50119": "AB888X", + "50120": "AB888X", + "50122": "AB888X", + "50123": "AB888X", + "50124": "AB888X", + "50125": "AB888X", + "50126": "AB888X", + "50127": "AB888X", + "50128": "AB888X", + "50129": "AB888X", + "50130": "AB888X", + "50131": "AB888X", + "50132": "AB888X", + "50133": "AB888X", + "50134": "AB888X", + "50135": "AB888X", + "50136": "AB888X", + "50137": "AB888X", + "50138": "AB888X", + "50139": "AB888X", + "50140": "AB888X", + "50141": "AB888X", + "50142": "AB888X", + "50143": "AB888X", + "50144": "AB888X", + "50145": "AB888X", + "50146": "AB888X", + "50147": "AB888X", + "50148": "AB888X", + "50149": "AB888X", + "50150": "AB888X", + "50151": "AB888X", + "50152": "AB888X", + "50153": "AB888X", + "50154": "AB888X", + "50155": "AB888X", + "50156": "AB888X", + "50157": "AB888X", + "50158": "AB888X", + "50160": "AB888X", + "50161": "AB888X", + "50162": "AB888X", + "50163": "AB888X", + "50164": "AB888X", + "50165": "AB888X", + "50166": "AB888X", + "50167": "AB888X", + "50168": "AB888X", + "50169": "AB888X", + "50170": "AB888X", + "50171": "AB888X", + "50173": "AB888X", + "50174": "AB888X", + "50201": "AB888X", + "50206": "AB888X", + "50207": "AB888X", + "50208": "AB888X", + "50210": "AB888X", + "50211": "AB888X", + "50212": "AB888X", + "50213": "AB888X", + "50214": "AB888X", + "50216": "AB888X", + "50217": "AB888X", + "50218": "AB888X", + "50219": "AB888X", + "50220": "AB888X", + "50222": "AB888X", + "50223": "AB888X", + "50225": "AB888X", + "50226": "AB888X", + "50227": "AB888X", + "50228": "AB888X", + "50229": "AB888X", + "50230": "AB888X", + "50231": "AB888X", + "50232": "AB888X", + "50233": "AB888X", + "50234": "AB888X", + "50235": "AB888X", + "50236": "AB888X", + "50237": "AB888X", + "50238": "AB888X", + "50239": "AB888X", + "50240": "AB888X", + "50241": "AB888X", + "50242": "AB888X", + "50243": "AB888X", + "50244": "AB888X", + "50246": "AB888X", + "50247": "AB888X", + "50248": "AB888X", + "50249": "AB888X", + "50250": "AB888X", + "50251": "AB888X", + "50252": "AB888X", + "50254": "AB888X", + "50255": "AB888X", + "50256": "AB888X", + "50257": "AB888X", + "50258": "AB888X", + "50259": "AB888X", + "50261": "AB888X", + "50262": "AB888X", + "50263": "AB888X", + "50264": "AB888X", + "50265": "AB888X", + "50266": "AB888X", + "50268": "AB888X", + "50269": "AB888X", + "50271": "AB888X", + "50272": "AB888X", + "50273": "AB888X", + "50274": "AB888X", + "50275": "AB888X", + "50276": "AB888X", + "50277": "AB888X", + "50278": "AB888X", + "50301": "AB888X", + "50302": "AB888X", + "50303": "AB888X", + "50304": "AB888X", + "50305": "AB888X", + "50306": "AB888X", + "50307": "AB888X", + "50308": "AB888X", + "50309": "AB888X", + "50310": "AB888X", + "50311": "AB888X", + "50312": "AB888X", + "50313": "AB888X", + "50314": "AB888X", + "50315": "AB888X", + "50316": "AB888X", + "50317": "AB888X", + "50318": "AB888X", + "50319": "AB888X", + "50320": "AB888X", + "50321": "AB888X", + "50322": "AB888X", + "50323": "AB888X", + "50324": "AB888X", + "50325": "AB888X", + "50327": "AB888X", + "50328": "AB888X", + "50329": "AB888X", + "50330": "AB888X", + "50331": "AB888X", + "50332": "AB888X", + "50333": "AB888X", + "50334": "AB888X", + "50335": "AB888X", + "50336": "AB888X", + "50339": "AB888X", + "50340": "AB888X", + "50347": "AB888X", + "50350": "AB888X", + "50359": "AB888X", + "50360": "AB888X", + "50361": "AB888X", + "50362": "AB888X", + "50363": "AB888X", + "50364": "AB888X", + "50367": "AB888X", + "50368": "AB888X", + "50369": "AB888X", + "50380": "AB888X", + "50381": "AB888X", + "50391": "AB888X", + "50392": "AB888X", + "50393": "AB888X", + "50394": "AB888X", + "50395": "AB888X", + "50396": "AB888X", + "50397": "AB888X", + "50398": "AB888X", + "50401": "AB888X", + "50402": "AB888X", + "50420": "AB888X", + "50421": "AB888X", + "50423": "AB888X", + "50424": "AB889X", + "50426": "AB889X", + "50427": "AB888X", + "50428": "AB888X", + "50430": "AB888X", + "50431": "AB888X", + "50432": "AB888X", + "50433": "AB888X", + "50434": "AB889X", + "50435": "AB888X", + "50436": "AB889X", + "50438": "AB888X", + "50439": "AB888X", + "50440": "AB889X", + "50441": "AB888X", + "50444": "AB889X", + "50446": "AB889X", + "50447": "AB888X", + "50448": "AB889X", + "50449": "AB888X", + "50450": "AB889X", + "50451": "AB889X", + "50452": "AB888X", + "50453": "AB889X", + "50454": "AB889X", + "50455": "AB889X", + "50456": "AB889X", + "50457": "AB888X", + "50458": "AB888X", + "50459": "AB889X", + "50460": "AB889X", + "50461": "AB889X", + "50464": "AB888X", + "50465": "AB889X", + "50466": "AB889X", + "50467": "AB888X", + "50468": "AB888X", + "50469": "AB888X", + "50470": "AB888X", + "50471": "AB888X", + "50472": "AB889X", + "50473": "AB889X", + "50475": "AB888X", + "50476": "AB889X", + "50477": "AB888X", + "50478": "AB889X", + "50479": "AB888X", + "50480": "AB889X", + "50481": "AB889X", + "50482": "AB888X", + "50483": "AB889X", + "50484": "AB888X", + "50501": "AB888X", + "50510": "AB888X", + "50511": "AB889X", + "50514": "AB889X", + "50515": "AB888X", + "50516": "AB888X", + "50517": "AB889X", + "50518": "AB888X", + "50519": "AB888X", + "50520": "AB888X", + "50521": "AB888X", + "50522": "AB889X", + "50523": "AB888X", + "50524": "AB888X", + "50525": "AB888X", + "50526": "AB888X", + "50527": "AB888X", + "50528": "AB888X", + "50529": "AB888X", + "50530": "AB888X", + "50531": "AB889X", + "50532": "AB888X", + "50533": "AB888X", + "50535": "AB888X", + "50536": "AB888X", + "50538": "AB888X", + "50539": "AB889X", + "50540": "AB888X", + "50541": "AB888X", + "50542": "AB888X", + "50543": "AB888X", + "50544": "AB888X", + "50545": "AB888X", + "50546": "AB888X", + "50548": "AB888X", + "50551": "AB888X", + "50552": "AB888X", + "50554": "AB888X", + "50556": "AB889X", + "50557": "AB888X", + "50558": "AB888X", + "50559": "AB889X", + "50560": "AB889X", + "50561": "AB888X", + "50562": "AB888X", + "50563": "AB888X", + "50565": "AB888X", + "50566": "AB888X", + "50567": "AB888X", + "50568": "AB888X", + "50569": "AB888X", + "50570": "AB888X", + "50571": "AB888X", + "50573": "AB888X", + "50574": "AB888X", + "50575": "AB888X", + "50576": "AB888X", + "50577": "AB888X", + "50578": "AB889X", + "50579": "AB888X", + "50581": "AB888X", + "50582": "AB888X", + "50583": "AB888X", + "50585": "AB888X", + "50586": "AB888X", + "50588": "AB888X", + "50590": "AB889X", + "50591": "AB888X", + "50592": "AB888X", + "50593": "AB888X", + "50594": "AB888X", + "50595": "AB888X", + "50597": "AB888X", + "50598": "AB889X", + "50599": "AB888X", + "50601": "AB888X", + "50602": "AB888X", + "50603": "AB888X", + "50604": "AB888X", + "50605": "AB888X", + "50606": "AB888X", + "50607": "AB888X", + "50608": "AB888X", + "50609": "AB888X", + "50611": "AB888X", + "50612": "AB888X", + "50613": "AB888X", + "50614": "AB888X", + "50616": "AB888X", + "50619": "AB888X", + "50620": "AB888X", + "50621": "AB888X", + "50622": "AB888X", + "50623": "AB888X", + "50624": "AB888X", + "50625": "AB888X", + "50626": "AB888X", + "50627": "AB888X", + "50628": "AB889X", + "50629": "AB888X", + "50630": "AB888X", + "50631": "AB888X", + "50632": "AB888X", + "50633": "AB888X", + "50634": "AB888X", + "50635": "AB888X", + "50636": "AB888X", + "50638": "AB888X", + "50641": "AB888X", + "50642": "AB888X", + "50643": "AB888X", + "50644": "AB888X", + "50645": "AB888X", + "50647": "AB888X", + "50648": "AB888X", + "50649": "AB888X", + "50650": "AB888X", + "50651": "AB888X", + "50652": "AB888X", + "50653": "AB888X", + "50654": "AB888X", + "50655": "AB888X", + "50657": "AB888X", + "50658": "AB888X", + "50659": "AB888X", + "50660": "AB888X", + "50661": "AB888X", + "50662": "AB888X", + "50664": "AB888X", + "50665": "AB888X", + "50666": "AB888X", + "50667": "AB888X", + "50668": "AB888X", + "50669": "AB888X", + "50670": "AB888X", + "50671": "AB888X", + "50672": "AB888X", + "50673": "AB888X", + "50674": "AB888X", + "50675": "AB888X", + "50676": "AB888X", + "50677": "AB888X", + "50680": "AB888X", + "50681": "AB888X", + "50682": "AB888X", + "50701": "AB888X", + "50702": "AB888X", + "50703": "AB888X", + "50704": "AB888X", + "50706": "AB888X", + "50707": "AB888X", + "50801": "AB888X", + "50830": "AB888X", + "50831": "AB888X", + "50833": "AB888X", + "50835": "AB888X", + "50836": "AB888X", + "50837": "AB888X", + "50839": "AB888X", + "50840": "AB888X", + "50841": "AB888X", + "50842": "AB888X", + "50843": "AB888X", + "50845": "AB888X", + "50846": "AB888X", + "50847": "AB888X", + "50848": "AB888X", + "50849": "AB888X", + "50851": "AB888X", + "50853": "AB888X", + "50854": "AB888X", + "50857": "AB888X", + "50858": "AB888X", + "50859": "AB888X", + "50860": "AB888X", + "50861": "AB888X", + "50862": "AB888X", + "50863": "AB888X", + "50864": "AB888X", + "50936": "AB888X", + "50940": "AB888X", + "50947": "AB888X", + "50950": "AB888X", + "50980": "AB888X", + "50981": "AB888X", + "51001": "AB891X", + "51002": "AB888X", + "51003": "AB891X", + "51004": "AB891X", + "51005": "AB888X", + "51006": "AB888X", + "51007": "AB891X", + "51008": "AB891X", + "51009": "AB888X", + "51010": "AB891X", + "51011": "AB891X", + "51012": "AB888X", + "51014": "AB888X", + "51015": "AB891X", + "51016": "AB891X", + "51018": "AB891X", + "51019": "AB891X", + "51020": "AB888X", + "51022": "AB891X", + "51023": "AB891X", + "51024": "AB891X", + "51025": "AB888X", + "51026": "AB891X", + "51027": "AB891X", + "51028": "AB891X", + "51029": "AB888X", + "51030": "AB891X", + "51031": "AB891X", + "51033": "AB888X", + "51034": "AB891X", + "51035": "AB888X", + "51036": "AB891X", + "51037": "AB888X", + "51038": "AB891X", + "51039": "AB891X", + "51040": "AB891X", + "51041": "AB891X", + "51044": "AB891X", + "51045": "AB891X", + "51046": "AB888X", + "51047": "AB888X", + "51048": "AB891X", + "51049": "AB888X", + "51050": "AB891X", + "51051": "AB891X", + "51052": "AB891X", + "51053": "AB888X", + "51054": "AB891X", + "51055": "AB891X", + "51056": "AB891X", + "51058": "AB888X", + "51060": "AB891X", + "51061": "AB888X", + "51062": "AB891X", + "51063": "AB891X", + "51101": "AB891X", + "51102": "AB891X", + "51103": "AB891X", + "51104": "AB891X", + "51105": "AB891X", + "51106": "AB891X", + "51108": "AB891X", + "51109": "AB891X", + "51111": "AB891X", + "51201": "AB888X", + "51230": "AB891X", + "51231": "AB888X", + "51232": "AB889X", + "51234": "AB891X", + "51235": "AB891X", + "51237": "AB891X", + "51238": "AB891X", + "51239": "AB891X", + "51240": "AB891X", + "51241": "AB891X", + "51242": "AB891X", + "51243": "AB891X", + "51244": "AB891X", + "51245": "AB888X", + "51246": "AB891X", + "51247": "AB891X", + "51248": "AB888X", + "51249": "AB889X", + "51250": "AB891X", + "51301": "AB888X", + "51331": "AB889X", + "51333": "AB888X", + "51334": "AB889X", + "51338": "AB888X", + "51340": "AB888X", + "51341": "AB888X", + "51342": "AB888X", + "51343": "AB888X", + "51344": "AB889X", + "51345": "AB889X", + "51346": "AB888X", + "51347": "AB889X", + "51350": "AB889X", + "51351": "AB889X", + "51354": "AB889X", + "51355": "AB889X", + "51357": "AB888X", + "51358": "AB888X", + "51360": "AB889X", + "51363": "AB889X", + "51364": "AB889X", + "51365": "AB889X", + "51366": "AB888X", + "51401": "AB888X", + "51430": "AB888X", + "51431": "AB888X", + "51432": "AB888X", + "51433": "AB888X", + "51436": "AB888X", + "51439": "AB888X", + "51440": "AB888X", + "51441": "AB888X", + "51442": "AB888X", + "51443": "AB888X", + "51444": "AB888X", + "51445": "AB888X", + "51446": "AB888X", + "51447": "AB888X", + "51448": "AB888X", + "51449": "AB888X", + "51450": "AB888X", + "51451": "AB888X", + "51452": "AB888X", + "51453": "AB888X", + "51454": "AB888X", + "51455": "AB888X", + "51458": "AB888X", + "51459": "AB888X", + "51460": "AB888X", + "51461": "AB888X", + "51462": "AB888X", + "51463": "AB888X", + "51465": "AB888X", + "51466": "AB888X", + "51467": "AB888X", + "51501": "AB889X", + "51502": "AB889X", + "51503": "AB889X", + "51510": "AB889X", + "51520": "AB888X", + "51521": "AB889X", + "51523": "AB891X", + "51525": "AB889X", + "51526": "AB889X", + "51527": "AB888X", + "51528": "AB888X", + "51529": "AB889X", + "51530": "AB888X", + "51531": "AB888X", + "51532": "AB888X", + "51533": "AB889X", + "51534": "AB889X", + "51535": "AB888X", + "51536": "AB889X", + "51537": "AB888X", + "51540": "AB889X", + "51541": "AB889X", + "51542": "AB889X", + "51543": "AB888X", + "51544": "AB888X", + "51545": "AB889X", + "51546": "AB889X", + "51548": "AB889X", + "51549": "AB889X", + "51550": "AB889X", + "51551": "AB889X", + "51552": "AB888X", + "51553": "AB889X", + "51554": "AB889X", + "51555": "AB889X", + "51556": "AB889X", + "51557": "AB889X", + "51558": "AB891X", + "51559": "AB889X", + "51560": "AB889X", + "51561": "AB889X", + "51562": "AB888X", + "51563": "AB889X", + "51564": "AB889X", + "51565": "AB888X", + "51566": "AB888X", + "51570": "AB889X", + "51571": "AB889X", + "51572": "AB891X", + "51573": "AB888X", + "51575": "AB889X", + "51576": "AB889X", + "51577": "AB889X", + "51578": "AB888X", + "51579": "AB889X", + "51591": "AB888X", + "51593": "AB888X", + "51601": "AB888X", + "51602": "AB888X", + "51603": "AB888X", + "51630": "AB888X", + "51631": "AB888X", + "51632": "AB888X", + "51636": "AB888X", + "51637": "AB888X", + "51638": "AB888X", + "51639": "AB889X", + "51640": "AB889X", + "51645": "AB889X", + "51646": "AB888X", + "51647": "AB888X", + "51648": "AB889X", + "51649": "AB889X", + "51650": "AB889X", + "51651": "AB888X", + "51652": "AB889X", + "51653": "AB889X", + "51654": "AB889X", + "51656": "AB888X", + "52001": "AB888X", + "52002": "AB888X", + "52003": "AB888X", + "52004": "AB888X", + "52030": "AB888X", + "52031": "AB888X", + "52032": "AB888X", + "52033": "AB888X", + "52035": "AB888X", + "52036": "AB888X", + "52037": "AB888X", + "52038": "AB888X", + "52039": "AB888X", + "52040": "AB888X", + "52041": "AB888X", + "52042": "AB888X", + "52043": "AB888X", + "52044": "AB888X", + "52045": "AB888X", + "52046": "AB888X", + "52047": "AB888X", + "52048": "AB888X", + "52049": "AB888X", + "52050": "AB888X", + "52052": "AB888X", + "52053": "AB888X", + "52054": "AB888X", + "52056": "AB888X", + "52057": "AB888X", + "52060": "AB888X", + "52064": "AB888X", + "52065": "AB888X", + "52066": "AB888X", + "52068": "AB888X", + "52069": "AB888X", + "52070": "AB888X", + "52071": "AB888X", + "52072": "AB888X", + "52073": "AB888X", + "52074": "AB888X", + "52075": "AB888X", + "52076": "AB888X", + "52077": "AB888X", + "52078": "AB888X", + "52079": "AB888X", + "52099": "AB888X", + "52101": "AB888X", + "52132": "AB888X", + "52133": "AB888X", + "52134": "AB889X", + "52135": "AB888X", + "52136": "AB889X", + "52140": "AB889X", + "52141": "AB888X", + "52142": "AB888X", + "52144": "AB888X", + "52146": "AB889X", + "52147": "AB888X", + "52149": "AB888X", + "52151": "AB889X", + "52154": "AB888X", + "52155": "AB889X", + "52156": "AB888X", + "52157": "AB888X", + "52158": "AB888X", + "52159": "AB888X", + "52160": "AB889X", + "52161": "AB888X", + "52162": "AB889X", + "52163": "AB889X", + "52164": "AB888X", + "52165": "AB888X", + "52166": "AB888X", + "52168": "AB888X", + "52169": "AB888X", + "52170": "AB889X", + "52171": "AB888X", + "52172": "AB889X", + "52175": "AB888X", + "52201": "AB888X", + "52202": "AB888X", + "52203": "AB888X", + "52204": "AB888X", + "52205": "AB888X", + "52206": "AB888X", + "52207": "AB888X", + "52208": "AB888X", + "52209": "AB888X", + "52210": "AB888X", + "52211": "AB888X", + "52212": "AB888X", + "52213": "AB888X", + "52214": "AB888X", + "52215": "AB888X", + "52216": "AB888X", + "52217": "AB888X", + "52218": "AB888X", + "52219": "AB888X", + "52220": "AB888X", + "52221": "AB888X", + "52222": "AB888X", + "52223": "AB888X", + "52224": "AB888X", + "52225": "AB888X", + "52227": "AB888X", + "52228": "AB888X", + "52229": "AB888X", + "52231": "AB888X", + "52232": "AB888X", + "52233": "AB888X", + "52235": "AB888X", + "52236": "AB888X", + "52237": "AB888X", + "52240": "AB888X", + "52241": "AB888X", + "52242": "AB888X", + "52243": "AB888X", + "52244": "AB888X", + "52245": "AB888X", + "52246": "AB888X", + "52247": "AB888X", + "52248": "AB888X", + "52249": "AB888X", + "52251": "AB888X", + "52252": "AB888X", + "52253": "AB888X", + "52254": "AB888X", + "52255": "AB888X", + "52257": "AB888X", + "52301": "AB888X", + "52302": "AB888X", + "52305": "AB888X", + "52306": "AB888X", + "52307": "AB888X", + "52308": "AB888X", + "52309": "AB888X", + "52310": "AB888X", + "52312": "AB888X", + "52313": "AB888X", + "52314": "AB888X", + "52315": "AB888X", + "52316": "AB888X", + "52317": "AB888X", + "52318": "AB888X", + "52319": "AB888X", + "52320": "AB888X", + "52321": "AB888X", + "52322": "AB888X", + "52323": "AB888X", + "52324": "AB888X", + "52325": "AB888X", + "52326": "AB888X", + "52327": "AB888X", + "52328": "AB888X", + "52329": "AB888X", + "52330": "AB888X", + "52332": "AB888X", + "52333": "AB888X", + "52334": "AB888X", + "52335": "AB888X", + "52336": "AB888X", + "52337": "AB888X", + "52338": "AB888X", + "52339": "AB888X", + "52340": "AB888X", + "52341": "AB888X", + "52342": "AB888X", + "52344": "AB888X", + "52345": "AB888X", + "52346": "AB888X", + "52347": "AB888X", + "52348": "AB888X", + "52349": "AB888X", + "52350": "AB888X", + "52351": "AB888X", + "52352": "AB888X", + "52353": "AB888X", + "52354": "AB888X", + "52355": "AB888X", + "52356": "AB888X", + "52358": "AB888X", + "52359": "AB888X", + "52361": "AB888X", + "52362": "AB888X", + "52401": "AB888X", + "52402": "AB888X", + "52403": "AB888X", + "52404": "AB888X", + "52405": "AB888X", + "52406": "AB888X", + "52407": "AB888X", + "52408": "AB888X", + "52409": "AB888X", + "52410": "AB888X", + "52411": "AB888X", + "52497": "AB888X", + "52498": "AB888X", + "52499": "AB888X", + "52501": "AB888X", + "52530": "AB888X", + "52531": "AB888X", + "52533": "AB888X", + "52534": "AB888X", + "52535": "AB888X", + "52536": "AB888X", + "52537": "AB888X", + "52538": "AB888X", + "52540": "AB888X", + "52542": "AB888X", + "52543": "AB888X", + "52544": "AB888X", + "52548": "AB888X", + "52549": "AB888X", + "52550": "AB888X", + "52551": "AB888X", + "52552": "AB888X", + "52553": "AB888X", + "52554": "AB888X", + "52555": "AB888X", + "52556": "AB888X", + "52557": "AB888X", + "52560": "AB888X", + "52561": "AB888X", + "52562": "AB888X", + "52563": "AB888X", + "52565": "AB888X", + "52566": "AB888X", + "52567": "AB888X", + "52568": "AB888X", + "52569": "AB888X", + "52570": "AB888X", + "52571": "AB888X", + "52572": "AB888X", + "52573": "AB888X", + "52574": "AB888X", + "52576": "AB888X", + "52577": "AB888X", + "52580": "AB888X", + "52581": "AB888X", + "52583": "AB888X", + "52584": "AB888X", + "52585": "AB888X", + "52586": "AB888X", + "52588": "AB888X", + "52590": "AB888X", + "52591": "AB888X", + "52593": "AB888X", + "52594": "AB888X", + "52595": "AB888X", + "52601": "AB888X", + "52619": "AB888X", + "52620": "AB888X", + "52621": "AB888X", + "52623": "AB888X", + "52624": "AB888X", + "52625": "AB888X", + "52626": "AB888X", + "52627": "AB888X", + "52630": "AB888X", + "52631": "AB888X", + "52632": "AB888X", + "52635": "AB888X", + "52637": "AB888X", + "52638": "AB888X", + "52639": "AB888X", + "52640": "AB888X", + "52641": "AB888X", + "52642": "AB888X", + "52644": "AB888X", + "52645": "AB888X", + "52646": "AB888X", + "52647": "AB888X", + "52648": "AB888X", + "52649": "AB888X", + "52650": "AB888X", + "52651": "AB888X", + "52652": "AB888X", + "52653": "AB888X", + "52654": "AB888X", + "52655": "AB888X", + "52656": "AB888X", + "52657": "AB888X", + "52658": "AB888X", + "52659": "AB888X", + "52660": "AB888X", + "52701": "AB888X", + "52720": "AB888X", + "52721": "AB888X", + "52722": "AB888X", + "52726": "AB888X", + "52727": "AB888X", + "52728": "AB888X", + "52729": "AB888X", + "52730": "AB888X", + "52731": "AB888X", + "52732": "AB888X", + "52733": "AB888X", + "52734": "AB888X", + "52736": "AB888X", + "52737": "AB888X", + "52738": "AB888X", + "52739": "AB888X", + "52742": "AB888X", + "52745": "AB888X", + "52746": "AB888X", + "52747": "AB888X", + "52748": "AB888X", + "52749": "AB888X", + "52750": "AB888X", + "52751": "AB888X", + "52752": "AB888X", + "52753": "AB888X", + "52754": "AB888X", + "52755": "AB888X", + "52756": "AB888X", + "52757": "AB888X", + "52758": "AB888X", + "52759": "AB888X", + "52760": "AB888X", + "52761": "AB888X", + "52765": "AB888X", + "52766": "AB888X", + "52767": "AB888X", + "52768": "AB888X", + "52769": "AB888X", + "52771": "AB888X", + "52772": "AB888X", + "52773": "AB888X", + "52774": "AB888X", + "52776": "AB888X", + "52777": "AB888X", + "52778": "AB888X", + "52801": "AB888X", + "52802": "AB888X", + "52803": "AB888X", + "52804": "AB888X", + "52805": "AB888X", + "52806": "AB888X", + "52807": "AB888X", + "52808": "AB888X", + "52809": "AB888X", + "53001": "AB887X", + "53002": "AB887X", + "53003": "AB887X", + "53004": "AB887X", + "53005": "AB887X", + "53006": "AB887X", + "53007": "AB887X", + "53008": "AB887X", + "53010": "AB887X", + "53011": "AB887X", + "53012": "AB887X", + "53013": "AB887X", + "53014": "AB887X", + "53015": "AB887X", + "53016": "AB887X", + "53017": "AB887X", + "53018": "AB887X", + "53019": "AB887X", + "53020": "AB887X", + "53021": "AB887X", + "53022": "AB887X", + "53023": "AB887X", + "53024": "AB887X", + "53026": "AB887X", + "53027": "AB887X", + "53029": "AB887X", + "53031": "AB887X", + "53032": "AB887X", + "53033": "AB887X", + "53034": "AB887X", + "53035": "AB887X", + "53036": "AB887X", + "53037": "AB887X", + "53038": "AB887X", + "53039": "AB887X", + "53040": "AB887X", + "53042": "AB887X", + "53044": "AB887X", + "53045": "AB887X", + "53046": "AB887X", + "53047": "AB887X", + "53048": "AB887X", + "53049": "AB887X", + "53050": "AB887X", + "53051": "AB887X", + "53052": "AB887X", + "53056": "AB887X", + "53057": "AB887X", + "53058": "AB887X", + "53059": "AB887X", + "53060": "AB887X", + "53061": "AB887X", + "53062": "AB887X", + "53063": "AB887X", + "53064": "AB887X", + "53065": "AB887X", + "53066": "AB887X", + "53069": "AB887X", + "53070": "AB887X", + "53072": "AB887X", + "53073": "AB887X", + "53074": "AB887X", + "53075": "AB887X", + "53076": "AB887X", + "53078": "AB887X", + "53079": "AB887X", + "53080": "AB887X", + "53081": "AB887X", + "53082": "AB887X", + "53083": "AB887X", + "53085": "AB887X", + "53086": "AB887X", + "53088": "AB887X", + "53089": "AB887X", + "53090": "AB887X", + "53091": "AB887X", + "53092": "AB887X", + "53093": "AB887X", + "53094": "AB887X", + "53095": "AB887X", + "53097": "AB887X", + "53098": "AB887X", + "53099": "AB887X", + "53101": "AB887X", + "53102": "AB887X", + "53103": "AB887X", + "53104": "AB887X", + "53105": "AB887X", + "53108": "AB887X", + "53109": "AB887X", + "53110": "AB887X", + "53114": "AB887X", + "53115": "AB887X", + "53118": "AB887X", + "53119": "AB887X", + "53120": "AB887X", + "53121": "AB887X", + "53122": "AB887X", + "53125": "AB887X", + "53126": "AB887X", + "53127": "AB887X", + "53128": "AB887X", + "53129": "AB887X", + "53130": "AB887X", + "53132": "AB887X", + "53137": "AB887X", + "53138": "AB887X", + "53139": "AB887X", + "53140": "AB887X", + "53141": "AB887X", + "53142": "AB887X", + "53143": "AB887X", + "53144": "AB887X", + "53146": "AB887X", + "53147": "AB887X", + "53148": "AB887X", + "53149": "AB887X", + "53150": "AB887X", + "53151": "AB887X", + "53152": "AB887X", + "53153": "AB887X", + "53154": "AB887X", + "53156": "AB887X", + "53157": "AB887X", + "53158": "AB887X", + "53159": "AB887X", + "53167": "AB887X", + "53168": "AB887X", + "53170": "AB887X", + "53171": "AB887X", + "53172": "AB887X", + "53176": "AB887X", + "53177": "AB887X", + "53178": "AB887X", + "53179": "AB887X", + "53181": "AB887X", + "53182": "AB887X", + "53183": "AB887X", + "53184": "AB887X", + "53185": "AB887X", + "53186": "AB887X", + "53187": "AB887X", + "53188": "AB887X", + "53189": "AB887X", + "53190": "AB887X", + "53191": "AB887X", + "53192": "AB887X", + "53194": "AB887X", + "53195": "AB887X", + "53199": "AB887X", + "53201": "AB887X", + "53202": "AB887X", + "53203": "AB887X", + "53204": "AB887X", + "53205": "AB887X", + "53206": "AB887X", + "53207": "AB887X", + "53208": "AB887X", + "53209": "AB887X", + "53210": "AB887X", + "53211": "AB887X", + "53212": "AB887X", + "53213": "AB887X", + "53214": "AB887X", + "53215": "AB887X", + "53216": "AB887X", + "53217": "AB889X", + "53218": "AB887X", + "53219": "AB887X", + "53220": "AB887X", + "53221": "AB887X", + "53222": "AB887X", + "53223": "AB887X", + "53224": "AB887X", + "53225": "AB887X", + "53226": "AB887X", + "53227": "AB887X", + "53228": "AB887X", + "53233": "AB887X", + "53234": "AB887X", + "53235": "AB887X", + "53237": "AB887X", + "53244": "AB887X", + "53259": "AB887X", + "53263": "AB887X", + "53267": "AB887X", + "53268": "AB887X", + "53274": "AB887X", + "53278": "AB887X", + "53288": "AB887X", + "53290": "AB887X", + "53293": "AB887X", + "53295": "AB887X", + "53401": "AB887X", + "53402": "AB887X", + "53403": "AB887X", + "53404": "AB887X", + "53405": "AB887X", + "53406": "AB887X", + "53407": "AB887X", + "53408": "AB887X", + "53490": "AB887X", + "53501": "AB887X", + "53502": "AB887X", + "53503": "AB887X", + "53504": "AB887X", + "53505": "AB887X", + "53506": "AB887X", + "53507": "AB887X", + "53508": "AB887X", + "53510": "AB887X", + "53511": "AB887X", + "53512": "AB887X", + "53515": "AB887X", + "53516": "AB887X", + "53517": "AB887X", + "53518": "AB887X", + "53520": "AB887X", + "53521": "AB887X", + "53522": "AB887X", + "53523": "AB887X", + "53525": "AB887X", + "53526": "AB887X", + "53527": "AB887X", + "53528": "AB887X", + "53529": "AB887X", + "53530": "AB888X", + "53531": "AB887X", + "53532": "AB887X", + "53533": "AB887X", + "53534": "AB887X", + "53535": "AB887X", + "53536": "AB887X", + "53537": "AB887X", + "53538": "AB887X", + "53540": "AB887X", + "53541": "AB887X", + "53542": "AB887X", + "53543": "AB887X", + "53544": "AB887X", + "53545": "AB887X", + "53546": "AB887X", + "53547": "AB887X", + "53548": "AB887X", + "53549": "AB887X", + "53550": "AB887X", + "53551": "AB887X", + "53553": "AB887X", + "53554": "AB887X", + "53555": "AB887X", + "53556": "AB887X", + "53557": "AB887X", + "53558": "AB887X", + "53559": "AB887X", + "53560": "AB887X", + "53561": "AB887X", + "53562": "AB887X", + "53563": "AB887X", + "53565": "AB887X", + "53566": "AB887X", + "53569": "AB887X", + "53570": "AB887X", + "53571": "AB887X", + "53572": "AB887X", + "53573": "AB887X", + "53574": "AB887X", + "53575": "AB887X", + "53576": "AB887X", + "53577": "AB887X", + "53578": "AB887X", + "53579": "AB887X", + "53580": "AB887X", + "53581": "AB887X", + "53582": "AB887X", + "53583": "AB887X", + "53584": "AB887X", + "53585": "AB887X", + "53586": "AB888X", + "53587": "AB887X", + "53588": "AB887X", + "53589": "AB887X", + "53590": "AB887X", + "53593": "AB887X", + "53594": "AB887X", + "53595": "AB887X", + "53596": "AB887X", + "53597": "AB887X", + "53598": "AB887X", + "53599": "AB887X", + "53701": "AB887X", + "53702": "AB887X", + "53703": "AB887X", + "53704": "AB887X", + "53705": "AB887X", + "53706": "AB887X", + "53707": "AB887X", + "53708": "AB887X", + "53711": "AB887X", + "53713": "AB887X", + "53714": "AB887X", + "53715": "AB887X", + "53716": "AB887X", + "53717": "AB887X", + "53718": "AB887X", + "53719": "AB887X", + "53725": "AB887X", + "53726": "AB887X", + "53744": "AB887X", + "53774": "AB887X", + "53777": "AB887X", + "53778": "AB887X", + "53779": "AB887X", + "53782": "AB887X", + "53783": "AB887X", + "53784": "AB887X", + "53785": "AB887X", + "53786": "AB887X", + "53788": "AB887X", + "53789": "AB887X", + "53790": "AB887X", + "53791": "AB887X", + "53792": "AB887X", + "53793": "AB887X", + "53794": "AB887X", + "53801": "AB887X", + "53802": "AB887X", + "53803": "AB888X", + "53804": "AB888X", + "53805": "AB887X", + "53806": "AB888X", + "53807": "AB888X", + "53808": "AB888X", + "53809": "AB887X", + "53810": "AB888X", + "53811": "AB888X", + "53812": "AB888X", + "53813": "AB888X", + "53816": "AB887X", + "53817": "AB887X", + "53818": "AB887X", + "53820": "AB888X", + "53821": "AB889X", + "53824": "AB887X", + "53825": "AB887X", + "53826": "AB887X", + "53827": "AB887X", + "53901": "AB887X", + "53910": "AB887X", + "53911": "AB887X", + "53913": "AB887X", + "53916": "AB887X", + "53919": "AB887X", + "53920": "AB887X", + "53922": "AB887X", + "53923": "AB887X", + "53924": "AB887X", + "53925": "AB887X", + "53926": "AB887X", + "53927": "AB887X", + "53928": "AB887X", + "53929": "AB889X", + "53930": "AB887X", + "53931": "AB887X", + "53932": "AB887X", + "53933": "AB887X", + "53934": "AB887X", + "53935": "AB887X", + "53936": "AB887X", + "53937": "AB887X", + "53939": "AB887X", + "53940": "AB887X", + "53941": "AB887X", + "53942": "AB887X", + "53943": "AB887X", + "53944": "AB889X", + "53946": "AB887X", + "53947": "AB887X", + "53948": "AB889X", + "53949": "AB887X", + "53950": "AB889X", + "53951": "AB887X", + "53952": "AB889X", + "53953": "AB887X", + "53954": "AB887X", + "53955": "AB887X", + "53956": "AB887X", + "53957": "AB887X", + "53958": "AB887X", + "53959": "AB887X", + "53960": "AB887X", + "53961": "AB887X", + "53962": "AB889X", + "53963": "AB887X", + "53964": "AB887X", + "53965": "AB887X", + "53968": "AB889X", + "53969": "AB887X", + "54001": "AB889X", + "54002": "AB889X", + "54003": "AB889X", + "54004": "AB889X", + "54005": "AB889X", + "54006": "AB889X", + "54007": "AB889X", + "54009": "AB889X", + "54010": "AB889X", + "54011": "AB889X", + "54013": "AB889X", + "54014": "AB889X", + "54015": "AB889X", + "54016": "AB889X", + "54017": "AB889X", + "54020": "AB889X", + "54021": "AB889X", + "54022": "AB889X", + "54023": "AB889X", + "54024": "AB889X", + "54025": "AB889X", + "54026": "AB889X", + "54027": "AB889X", + "54028": "AB889X", + "54035": "AB887X", + "54074": "AB888X", + "54082": "AB889X", + "54101": "AB887X", + "54102": "AB887X", + "54103": "AB887X", + "54104": "AB887X", + "54106": "AB887X", + "54107": "AB887X", + "54110": "AB887X", + "54111": "AB887X", + "54112": "AB887X", + "54113": "AB887X", + "54114": "AB887X", + "54115": "AB887X", + "54119": "AB887X", + "54120": "AB887X", + "54121": "AB887X", + "54123": "AB887X", + "54124": "AB887X", + "54125": "AB887X", + "54126": "AB887X", + "54127": "AB887X", + "54128": "AB887X", + "54129": "AB887X", + "54130": "AB887X", + "54131": "AB887X", + "54135": "AB887X", + "54136": "AB887X", + "54137": "AB887X", + "54138": "AB887X", + "54139": "AB887X", + "54140": "AB887X", + "54141": "AB887X", + "54143": "AB887X", + "54149": "AB887X", + "54150": "AB887X", + "54151": "AB887X", + "54152": "AB887X", + "54153": "AB887X", + "54154": "AB887X", + "54155": "AB887X", + "54156": "AB887X", + "54157": "AB887X", + "54159": "AB887X", + "54160": "AB887X", + "54161": "AB887X", + "54162": "AB887X", + "54165": "AB887X", + "54166": "AB887X", + "54169": "AB887X", + "54170": "AB887X", + "54171": "AB887X", + "54173": "AB887X", + "54174": "AB887X", + "54175": "AB887X", + "54177": "AB887X", + "54180": "AB887X", + "54182": "AB887X", + "54201": "AB887X", + "54202": "AB887X", + "54204": "AB887X", + "54205": "AB887X", + "54207": "AB887X", + "54208": "AB887X", + "54209": "AB887X", + "54210": "AB887X", + "54211": "AB887X", + "54212": "AB887X", + "54213": "AB887X", + "54214": "AB887X", + "54215": "AB887X", + "54216": "AB887X", + "54217": "AB887X", + "54220": "AB887X", + "54221": "AB887X", + "54226": "AB887X", + "54227": "AB887X", + "54228": "AB887X", + "54229": "AB887X", + "54230": "AB887X", + "54232": "AB887X", + "54234": "AB887X", + "54235": "AB887X", + "54240": "AB887X", + "54241": "AB887X", + "54245": "AB887X", + "54246": "AB887X", + "54247": "AB887X", + "54301": "AB887X", + "54302": "AB887X", + "54303": "AB887X", + "54304": "AB887X", + "54305": "AB887X", + "54306": "AB887X", + "54307": "AB887X", + "54308": "AB887X", + "54311": "AB887X", + "54313": "AB887X", + "54324": "AB887X", + "54344": "AB887X", + "54401": "AB887X", + "54402": "AB887X", + "54403": "AB887X", + "54404": "AB887X", + "54405": "AB887X", + "54406": "AB887X", + "54407": "AB887X", + "54408": "AB887X", + "54409": "AB887X", + "54410": "AB887X", + "54411": "AB887X", + "54412": "AB887X", + "54413": "AB887X", + "54414": "AB887X", + "54415": "AB887X", + "54416": "AB887X", + "54417": "AB887X", + "54418": "AB887X", + "54420": "AB887X", + "54421": "AB887X", + "54422": "AB887X", + "54423": "AB887X", + "54424": "AB887X", + "54425": "AB887X", + "54426": "AB887X", + "54427": "AB887X", + "54428": "AB887X", + "54429": "AB887X", + "54430": "AB887X", + "54432": "AB887X", + "54433": "AB887X", + "54434": "AB887X", + "54435": "AB887X", + "54436": "AB887X", + "54437": "AB887X", + "54439": "AB887X", + "54440": "AB887X", + "54441": "AB887X", + "54442": "AB887X", + "54443": "AB887X", + "54446": "AB887X", + "54447": "AB887X", + "54448": "AB887X", + "54449": "AB887X", + "54450": "AB887X", + "54451": "AB887X", + "54452": "AB887X", + "54454": "AB887X", + "54455": "AB887X", + "54456": "AB887X", + "54457": "AB887X", + "54458": "AB887X", + "54459": "AB887X", + "54460": "AB887X", + "54462": "AB887X", + "54463": "AB887X", + "54464": "AB887X", + "54465": "AB889X", + "54466": "AB887X", + "54467": "AB887X", + "54469": "AB887X", + "54470": "AB887X", + "54471": "AB887X", + "54472": "AB887X", + "54473": "AB887X", + "54474": "AB887X", + "54475": "AB887X", + "54476": "AB887X", + "54479": "AB887X", + "54480": "AB887X", + "54481": "AB887X", + "54482": "AB887X", + "54484": "AB887X", + "54485": "AB887X", + "54486": "AB887X", + "54487": "AB887X", + "54488": "AB887X", + "54489": "AB887X", + "54490": "AB887X", + "54491": "AB887X", + "54492": "AB887X", + "54493": "AB889X", + "54494": "AB887X", + "54495": "AB887X", + "54498": "AB887X", + "54499": "AB887X", + "54501": "AB887X", + "54510": "AB889X", + "54511": "AB887X", + "54512": "AB887X", + "54513": "AB887X", + "54514": "AB889X", + "54515": "AB889X", + "54517": "AB889X", + "54519": "AB887X", + "54520": "AB887X", + "54521": "AB887X", + "54524": "AB887X", + "54525": "AB889X", + "54526": "AB889X", + "54527": "AB889X", + "54529": "AB887X", + "54530": "AB889X", + "54531": "AB887X", + "54532": "AB887X", + "54534": "AB889X", + "54536": "AB889X", + "54537": "AB889X", + "54538": "AB887X", + "54539": "AB887X", + "54540": "AB889X", + "54541": "AB887X", + "54542": "AB887X", + "54543": "AB887X", + "54545": "AB887X", + "54546": "AB889X", + "54547": "AB889X", + "54548": "AB887X", + "54550": "AB889X", + "54552": "AB889X", + "54553": "AB889X", + "54554": "AB889X", + "54555": "AB889X", + "54556": "AB887X", + "54557": "AB887X", + "54558": "AB887X", + "54559": "AB889X", + "54560": "AB887X", + "54561": "AB887X", + "54562": "AB887X", + "54563": "AB889X", + "54564": "AB887X", + "54565": "AB889X", + "54566": "AB887X", + "54568": "AB887X", + "54601": "AB889X", + "54602": "AB889X", + "54603": "AB889X", + "54610": "AB889X", + "54611": "AB889X", + "54612": "AB889X", + "54613": "AB887X", + "54614": "AB889X", + "54615": "AB889X", + "54616": "AB889X", + "54618": "AB889X", + "54619": "AB889X", + "54620": "AB889X", + "54621": "AB889X", + "54622": "AB889X", + "54623": "AB889X", + "54624": "AB889X", + "54625": "AB889X", + "54626": "AB887X", + "54627": "AB889X", + "54628": "AB889X", + "54629": "AB889X", + "54630": "AB889X", + "54631": "AB887X", + "54632": "AB889X", + "54634": "AB887X", + "54635": "AB889X", + "54636": "AB889X", + "54637": "AB889X", + "54638": "AB889X", + "54639": "AB889X", + "54640": "AB887X", + "54641": "AB889X", + "54642": "AB889X", + "54643": "AB889X", + "54644": "AB889X", + "54645": "AB887X", + "54646": "AB889X", + "54648": "AB889X", + "54649": "AB889X", + "54650": "AB889X", + "54651": "AB889X", + "54652": "AB889X", + "54653": "AB889X", + "54654": "AB887X", + "54655": "AB887X", + "54656": "AB889X", + "54657": "AB887X", + "54658": "AB889X", + "54659": "AB889X", + "54660": "AB889X", + "54661": "AB889X", + "54662": "AB889X", + "54664": "AB887X", + "54665": "AB889X", + "54666": "AB889X", + "54667": "AB889X", + "54669": "AB889X", + "54670": "AB889X", + "54678": "AB887X", + "54701": "AB889X", + "54702": "AB889X", + "54703": "AB889X", + "54720": "AB889X", + "54721": "AB889X", + "54722": "AB889X", + "54723": "AB889X", + "54724": "AB889X", + "54725": "AB889X", + "54726": "AB889X", + "54727": "AB889X", + "54728": "AB889X", + "54729": "AB889X", + "54730": "AB889X", + "54731": "AB889X", + "54732": "AB889X", + "54733": "AB889X", + "54734": "AB889X", + "54735": "AB889X", + "54736": "AB889X", + "54737": "AB889X", + "54738": "AB889X", + "54739": "AB889X", + "54740": "AB889X", + "54741": "AB889X", + "54742": "AB889X", + "54743": "AB889X", + "54745": "AB889X", + "54746": "AB887X", + "54747": "AB889X", + "54748": "AB889X", + "54749": "AB889X", + "54750": "AB889X", + "54751": "AB889X", + "54754": "AB889X", + "54755": "AB889X", + "54756": "AB889X", + "54757": "AB889X", + "54758": "AB889X", + "54759": "AB889X", + "54760": "AB889X", + "54761": "AB889X", + "54762": "AB889X", + "54763": "AB889X", + "54764": "AB889X", + "54765": "AB889X", + "54766": "AB889X", + "54767": "AB889X", + "54768": "AB889X", + "54769": "AB889X", + "54770": "AB889X", + "54771": "AB889X", + "54772": "AB889X", + "54773": "AB889X", + "54774": "AB889X", + "54801": "AB889X", + "54805": "AB889X", + "54806": "AB889X", + "54810": "AB889X", + "54812": "AB889X", + "54813": "AB889X", + "54814": "AB889X", + "54816": "AB889X", + "54817": "AB889X", + "54818": "AB889X", + "54819": "AB889X", + "54820": "AB889X", + "54821": "AB889X", + "54822": "AB889X", + "54824": "AB889X", + "54826": "AB889X", + "54827": "AB889X", + "54828": "AB889X", + "54829": "AB889X", + "54830": "AB889X", + "54832": "AB889X", + "54834": "AB889X", + "54835": "AB889X", + "54836": "AB889X", + "54837": "AB889X", + "54838": "AB889X", + "54839": "AB889X", + "54840": "AB889X", + "54841": "AB889X", + "54842": "AB889X", + "54843": "AB889X", + "54844": "AB889X", + "54845": "AB889X", + "54846": "AB889X", + "54847": "AB889X", + "54848": "AB889X", + "54849": "AB889X", + "54850": "AB889X", + "54853": "AB889X", + "54854": "AB889X", + "54855": "AB889X", + "54856": "AB889X", + "54857": "AB889X", + "54858": "AB889X", + "54859": "AB889X", + "54861": "AB889X", + "54862": "AB889X", + "54864": "AB889X", + "54865": "AB889X", + "54867": "AB889X", + "54868": "AB889X", + "54870": "AB889X", + "54871": "AB889X", + "54872": "AB889X", + "54873": "AB889X", + "54874": "AB889X", + "54875": "AB889X", + "54876": "AB889X", + "54880": "AB889X", + "54888": "AB889X", + "54889": "AB889X", + "54890": "AB889X", + "54891": "AB889X", + "54893": "AB889X", + "54895": "AB889X", + "54896": "AB889X", + "54901": "AB889X", + "54902": "AB887X", + "54903": "AB887X", + "54904": "AB887X", + "54906": "AB887X", + "54909": "AB887X", + "54911": "AB887X", + "54912": "AB887X", + "54913": "AB887X", + "54914": "AB887X", + "54915": "AB887X", + "54919": "AB887X", + "54921": "AB887X", + "54922": "AB887X", + "54923": "AB887X", + "54926": "AB887X", + "54927": "AB887X", + "54928": "AB887X", + "54929": "AB887X", + "54930": "AB887X", + "54931": "AB887X", + "54932": "AB887X", + "54933": "AB887X", + "54934": "AB887X", + "54935": "AB887X", + "54936": "AB887X", + "54937": "AB887X", + "54940": "AB887X", + "54941": "AB887X", + "54942": "AB887X", + "54943": "AB887X", + "54944": "AB887X", + "54945": "AB887X", + "54946": "AB887X", + "54947": "AB887X", + "54948": "AB887X", + "54949": "AB887X", + "54950": "AB887X", + "54952": "AB887X", + "54956": "AB887X", + "54957": "AB887X", + "54960": "AB887X", + "54961": "AB887X", + "54962": "AB887X", + "54963": "AB887X", + "54964": "AB887X", + "54965": "AB887X", + "54966": "AB887X", + "54967": "AB887X", + "54968": "AB887X", + "54969": "AB887X", + "54970": "AB887X", + "54971": "AB887X", + "54974": "AB887X", + "54976": "AB887X", + "54977": "AB887X", + "54978": "AB887X", + "54979": "AB887X", + "54980": "AB887X", + "54981": "AB889X", + "54982": "AB887X", + "54983": "AB887X", + "54984": "AB887X", + "54985": "AB887X", + "54986": "AB887X", + "54990": "AB887X", + "55001": "AB889X", + "55002": "AB889X", + "55003": "AB889X", + "55005": "AB889X", + "55006": "AB889X", + "55007": "AB889X", + "55008": "AB889X", + "55009": "AB889X", + "55010": "AB889X", + "55011": "AB889X", + "55012": "AB889X", + "55013": "AB889X", + "55014": "AB889X", + "55016": "AB889X", + "55017": "AB889X", + "55018": "AB889X", + "55019": "AB889X", + "55020": "AB889X", + "55021": "AB889X", + "55024": "AB889X", + "55025": "AB889X", + "55026": "AB889X", + "55027": "AB889X", + "55029": "AB889X", + "55030": "AB889X", + "55031": "AB889X", + "55032": "AB889X", + "55033": "AB889X", + "55036": "AB889X", + "55037": "AB889X", + "55038": "AB889X", + "55040": "AB889X", + "55041": "AB889X", + "55042": "AB889X", + "55043": "AB889X", + "55044": "AB889X", + "55045": "AB889X", + "55046": "AB889X", + "55047": "AB889X", + "55049": "AB889X", + "55051": "AB889X", + "55052": "AB889X", + "55053": "AB889X", + "55054": "AB889X", + "55055": "AB889X", + "55056": "AB889X", + "55057": "AB889X", + "55060": "AB889X", + "55063": "AB889X", + "55065": "AB889X", + "55066": "AB889X", + "55067": "AB889X", + "55068": "AB889X", + "55069": "AB889X", + "55070": "AB889X", + "55071": "AB889X", + "55072": "AB889X", + "55073": "AB889X", + "55074": "AB889X", + "55075": "AB889X", + "55076": "AB889X", + "55077": "AB889X", + "55078": "AB889X", + "55079": "AB889X", + "55080": "AB889X", + "55082": "AB889X", + "55083": "AB889X", + "55084": "AB889X", + "55085": "AB889X", + "55087": "AB889X", + "55088": "AB889X", + "55089": "AB889X", + "55090": "AB889X", + "55092": "AB889X", + "55101": "AB889X", + "55102": "AB889X", + "55103": "AB889X", + "55104": "AB889X", + "55105": "AB889X", + "55106": "AB889X", + "55107": "AB889X", + "55108": "AB889X", + "55109": "AB889X", + "55110": "AB889X", + "55111": "AB889X", + "55112": "AB889X", + "55113": "AB889X", + "55114": "AB889X", + "55115": "AB889X", + "55116": "AB889X", + "55117": "AB889X", + "55118": "AB889X", + "55119": "AB889X", + "55120": "AB889X", + "55121": "AB889X", + "55122": "AB889X", + "55123": "AB889X", + "55124": "AB889X", + "55125": "AB889X", + "55126": "AB889X", + "55127": "AB889X", + "55128": "AB889X", + "55129": "AB889X", + "55130": "AB889X", + "55133": "AB889X", + "55144": "AB889X", + "55145": "AB889X", + "55146": "AB889X", + "55150": "AB889X", + "55155": "AB889X", + "55161": "AB889X", + "55164": "AB889X", + "55165": "AB889X", + "55166": "AB889X", + "55168": "AB889X", + "55169": "AB889X", + "55170": "AB889X", + "55171": "AB889X", + "55172": "AB889X", + "55175": "AB889X", + "55177": "AB889X", + "55187": "AB889X", + "55188": "AB889X", + "55191": "AB889X", + "55301": "AB889X", + "55302": "AB889X", + "55303": "AB889X", + "55304": "AB889X", + "55305": "AB889X", + "55306": "AB889X", + "55307": "AB889X", + "55308": "AB889X", + "55309": "AB889X", + "55310": "AB889X", + "55311": "AB889X", + "55312": "AB889X", + "55313": "AB889X", + "55314": "AB889X", + "55315": "AB889X", + "55316": "AB889X", + "55317": "AB889X", + "55318": "AB889X", + "55319": "AB889X", + "55320": "AB889X", + "55321": "AB889X", + "55322": "AB889X", + "55323": "AB889X", + "55324": "AB889X", + "55325": "AB889X", + "55327": "AB889X", + "55328": "AB889X", + "55329": "AB889X", + "55330": "AB889X", + "55331": "AB889X", + "55332": "AB889X", + "55333": "AB889X", + "55334": "AB889X", + "55335": "AB889X", + "55336": "AB889X", + "55337": "AB889X", + "55338": "AB889X", + "55339": "AB889X", + "55340": "AB889X", + "55341": "AB889X", + "55342": "AB889X", + "55343": "AB889X", + "55344": "AB889X", + "55345": "AB889X", + "55346": "AB889X", + "55347": "AB889X", + "55348": "AB889X", + "55349": "AB889X", + "55350": "AB889X", + "55352": "AB889X", + "55353": "AB889X", + "55354": "AB889X", + "55355": "AB889X", + "55356": "AB889X", + "55357": "AB889X", + "55358": "AB889X", + "55359": "AB889X", + "55360": "AB889X", + "55361": "AB889X", + "55362": "AB889X", + "55363": "AB889X", + "55364": "AB889X", + "55365": "AB889X", + "55366": "AB889X", + "55367": "AB889X", + "55368": "AB889X", + "55369": "AB889X", + "55370": "AB889X", + "55371": "AB889X", + "55372": "AB889X", + "55373": "AB889X", + "55374": "AB889X", + "55375": "AB889X", + "55376": "AB889X", + "55377": "AB889X", + "55378": "AB889X", + "55379": "AB889X", + "55380": "AB889X", + "55381": "AB889X", + "55382": "AB889X", + "55383": "AB889X", + "55384": "AB889X", + "55385": "AB889X", + "55386": "AB889X", + "55387": "AB889X", + "55388": "AB889X", + "55389": "AB889X", + "55390": "AB889X", + "55391": "AB889X", + "55392": "AB889X", + "55393": "AB889X", + "55394": "AB889X", + "55395": "AB889X", + "55396": "AB889X", + "55397": "AB889X", + "55398": "AB889X", + "55399": "AB889X", + "55401": "AB889X", + "55402": "AB889X", + "55403": "AB889X", + "55404": "AB889X", + "55405": "AB889X", + "55406": "AB889X", + "55407": "AB889X", + "55408": "AB889X", + "55409": "AB889X", + "55410": "AB889X", + "55411": "AB889X", + "55412": "AB889X", + "55413": "AB889X", + "55414": "AB889X", + "55415": "AB889X", + "55416": "AB889X", + "55417": "AB889X", + "55418": "AB889X", + "55419": "AB889X", + "55420": "AB889X", + "55421": "AB889X", + "55422": "AB889X", + "55423": "AB889X", + "55424": "AB889X", + "55425": "AB889X", + "55426": "AB889X", + "55427": "AB889X", + "55428": "AB889X", + "55429": "AB889X", + "55430": "AB889X", + "55431": "AB889X", + "55432": "AB889X", + "55433": "AB889X", + "55434": "AB889X", + "55435": "AB889X", + "55436": "AB889X", + "55437": "AB889X", + "55438": "AB889X", + "55439": "AB889X", + "55440": "AB889X", + "55441": "AB889X", + "55442": "AB889X", + "55443": "AB889X", + "55444": "AB889X", + "55445": "AB889X", + "55446": "AB889X", + "55447": "AB889X", + "55448": "AB889X", + "55449": "AB889X", + "55450": "AB889X", + "55454": "AB889X", + "55455": "AB889X", + "55458": "AB889X", + "55459": "AB889X", + "55460": "AB889X", + "55467": "AB889X", + "55468": "AB889X", + "55470": "AB889X", + "55472": "AB889X", + "55473": "AB889X", + "55474": "AB889X", + "55478": "AB889X", + "55479": "AB889X", + "55480": "AB889X", + "55483": "AB889X", + "55484": "AB889X", + "55485": "AB889X", + "55486": "AB889X", + "55487": "AB889X", + "55488": "AB889X", + "55550": "AB889X", + "55551": "AB889X", + "55552": "AB889X", + "55553": "AB889X", + "55554": "AB889X", + "55555": "AB889X", + "55556": "AB889X", + "55557": "AB889X", + "55558": "AB889X", + "55559": "AB889X", + "55560": "AB889X", + "55561": "AB889X", + "55562": "AB889X", + "55563": "AB889X", + "55564": "AB889X", + "55565": "AB889X", + "55566": "AB889X", + "55567": "AB889X", + "55568": "AB889X", + "55569": "AB889X", + "55570": "AB889X", + "55571": "AB889X", + "55572": "AB889X", + "55573": "AB889X", + "55574": "AB889X", + "55575": "AB889X", + "55576": "AB889X", + "55577": "AB889X", + "55578": "AB889X", + "55579": "AB889X", + "55580": "AB889X", + "55581": "AB889X", + "55582": "AB889X", + "55583": "AB889X", + "55584": "AB889X", + "55585": "AB889X", + "55586": "AB889X", + "55587": "AB889X", + "55588": "AB889X", + "55589": "AB889X", + "55590": "AB889X", + "55591": "AB889X", + "55592": "AB889X", + "55593": "AB889X", + "55594": "AB889X", + "55595": "AB889X", + "55596": "AB889X", + "55597": "AB889X", + "55598": "AB889X", + "55599": "AB889X", + "55601": "AB889X", + "55602": "AB889X", + "55603": "AB889X", + "55604": "AB889X", + "55605": "AB889X", + "55606": "AB889X", + "55607": "AB889X", + "55609": "AB889X", + "55612": "AB889X", + "55613": "AB889X", + "55614": "AB889X", + "55615": "AB889X", + "55616": "AB889X", + "55659": "AB889X", + "55701": "AB889X", + "55702": "AB889X", + "55703": "AB889X", + "55704": "AB889X", + "55705": "AB889X", + "55706": "AB889X", + "55707": "AB889X", + "55708": "AB889X", + "55709": "AB889X", + "55710": "AB889X", + "55711": "AB889X", + "55712": "AB889X", + "55713": "AB889X", + "55716": "AB889X", + "55717": "AB889X", + "55718": "AB889X", + "55719": "AB889X", + "55720": "AB889X", + "55721": "AB889X", + "55722": "AB889X", + "55723": "AB889X", + "55724": "AB889X", + "55725": "AB889X", + "55726": "AB889X", + "55729": "AB889X", + "55730": "AB889X", + "55731": "AB889X", + "55732": "AB889X", + "55733": "AB889X", + "55734": "AB889X", + "55735": "AB889X", + "55736": "AB889X", + "55738": "AB889X", + "55741": "AB889X", + "55742": "AB889X", + "55744": "AB889X", + "55745": "AB889X", + "55746": "AB889X", + "55747": "AB889X", + "55748": "AB889X", + "55749": "AB889X", + "55750": "AB889X", + "55751": "AB889X", + "55752": "AB889X", + "55753": "AB889X", + "55756": "AB889X", + "55757": "AB889X", + "55758": "AB889X", + "55760": "AB889X", + "55763": "AB889X", + "55764": "AB889X", + "55765": "AB889X", + "55766": "AB889X", + "55767": "AB889X", + "55768": "AB889X", + "55769": "AB889X", + "55771": "AB889X", + "55772": "AB889X", + "55773": "AB889X", + "55775": "AB889X", + "55777": "AB889X", + "55779": "AB889X", + "55780": "AB889X", + "55781": "AB889X", + "55782": "AB889X", + "55783": "AB889X", + "55784": "AB889X", + "55785": "AB889X", + "55786": "AB889X", + "55787": "AB889X", + "55790": "AB889X", + "55791": "AB889X", + "55792": "AB889X", + "55793": "AB889X", + "55795": "AB889X", + "55796": "AB889X", + "55797": "AB889X", + "55798": "AB889X", + "55801": "AB889X", + "55802": "AB889X", + "55803": "AB889X", + "55804": "AB889X", + "55805": "AB889X", + "55806": "AB889X", + "55807": "AB889X", + "55808": "AB889X", + "55810": "AB889X", + "55811": "AB889X", + "55812": "AB889X", + "55814": "AB889X", + "55815": "AB889X", + "55816": "AB889X", + "55880": "AB889X", + "55901": "AB889X", + "55902": "AB889X", + "55903": "AB889X", + "55904": "AB889X", + "55905": "AB889X", + "55906": "AB889X", + "55909": "AB889X", + "55910": "AB889X", + "55912": "AB889X", + "55917": "AB889X", + "55918": "AB889X", + "55919": "AB889X", + "55920": "AB889X", + "55921": "AB889X", + "55922": "AB889X", + "55923": "AB889X", + "55924": "AB889X", + "55925": "AB889X", + "55926": "AB889X", + "55927": "AB889X", + "55929": "AB889X", + "55931": "AB889X", + "55932": "AB889X", + "55933": "AB889X", + "55934": "AB889X", + "55935": "AB889X", + "55936": "AB889X", + "55939": "AB889X", + "55940": "AB889X", + "55941": "AB889X", + "55942": "AB889X", + "55943": "AB889X", + "55944": "AB889X", + "55945": "AB889X", + "55946": "AB889X", + "55947": "AB889X", + "55949": "AB889X", + "55950": "AB889X", + "55951": "AB889X", + "55952": "AB889X", + "55953": "AB889X", + "55954": "AB889X", + "55955": "AB889X", + "55956": "AB889X", + "55957": "AB889X", + "55959": "AB889X", + "55960": "AB889X", + "55961": "AB889X", + "55962": "AB889X", + "55963": "AB889X", + "55964": "AB889X", + "55965": "AB889X", + "55967": "AB889X", + "55968": "AB889X", + "55969": "AB889X", + "55970": "AB889X", + "55971": "AB889X", + "55972": "AB889X", + "55973": "AB889X", + "55974": "AB889X", + "55975": "AB889X", + "55976": "AB889X", + "55977": "AB889X", + "55979": "AB889X", + "55981": "AB889X", + "55982": "AB889X", + "55983": "AB889X", + "55985": "AB889X", + "55987": "AB889X", + "55988": "AB889X", + "55990": "AB889X", + "55991": "AB889X", + "55992": "AB889X", + "56001": "AB889X", + "56002": "AB889X", + "56003": "AB889X", + "56006": "AB889X", + "56007": "AB889X", + "56009": "AB889X", + "56010": "AB889X", + "56011": "AB889X", + "56013": "AB889X", + "56014": "AB889X", + "56016": "AB889X", + "56017": "AB889X", + "56019": "AB889X", + "56020": "AB889X", + "56021": "AB889X", + "56022": "AB889X", + "56023": "AB889X", + "56024": "AB889X", + "56025": "AB889X", + "56026": "AB889X", + "56027": "AB889X", + "56028": "AB889X", + "56029": "AB889X", + "56030": "AB889X", + "56031": "AB889X", + "56032": "AB889X", + "56033": "AB889X", + "56034": "AB889X", + "56035": "AB889X", + "56036": "AB889X", + "56037": "AB889X", + "56039": "AB889X", + "56041": "AB889X", + "56042": "AB889X", + "56043": "AB889X", + "56044": "AB889X", + "56045": "AB889X", + "56046": "AB889X", + "56047": "AB889X", + "56048": "AB889X", + "56050": "AB889X", + "56051": "AB889X", + "56052": "AB889X", + "56054": "AB889X", + "56055": "AB889X", + "56056": "AB889X", + "56057": "AB889X", + "56058": "AB889X", + "56060": "AB889X", + "56062": "AB889X", + "56063": "AB889X", + "56065": "AB889X", + "56068": "AB889X", + "56069": "AB889X", + "56071": "AB889X", + "56072": "AB889X", + "56073": "AB889X", + "56074": "AB889X", + "56075": "AB889X", + "56078": "AB889X", + "56080": "AB889X", + "56081": "AB889X", + "56082": "AB889X", + "56083": "AB889X", + "56084": "AB889X", + "56085": "AB889X", + "56087": "AB889X", + "56088": "AB889X", + "56089": "AB889X", + "56090": "AB889X", + "56091": "AB889X", + "56093": "AB889X", + "56096": "AB889X", + "56097": "AB889X", + "56098": "AB889X", + "56101": "AB889X", + "56110": "AB891X", + "56111": "AB889X", + "56113": "AB889X", + "56114": "AB889X", + "56115": "AB889X", + "56116": "AB889X", + "56117": "AB891X", + "56118": "AB889X", + "56119": "AB891X", + "56120": "AB889X", + "56121": "AB889X", + "56122": "AB889X", + "56123": "AB889X", + "56125": "AB889X", + "56127": "AB889X", + "56128": "AB889X", + "56129": "AB891X", + "56131": "AB889X", + "56132": "AB889X", + "56134": "AB889X", + "56136": "AB891X", + "56137": "AB889X", + "56138": "AB889X", + "56139": "AB889X", + "56140": "AB889X", + "56141": "AB889X", + "56142": "AB891X", + "56143": "AB889X", + "56144": "AB889X", + "56145": "AB889X", + "56146": "AB891X", + "56147": "AB889X", + "56149": "AB891X", + "56150": "AB889X", + "56151": "AB889X", + "56152": "AB889X", + "56153": "AB891X", + "56155": "AB891X", + "56156": "AB889X", + "56157": "AB889X", + "56158": "AB889X", + "56159": "AB889X", + "56160": "AB889X", + "56161": "AB889X", + "56162": "AB889X", + "56164": "AB889X", + "56165": "AB891X", + "56166": "AB889X", + "56167": "AB891X", + "56168": "AB891X", + "56169": "AB891X", + "56170": "AB889X", + "56171": "AB889X", + "56172": "AB889X", + "56173": "AB889X", + "56174": "AB889X", + "56175": "AB889X", + "56176": "AB889X", + "56177": "AB889X", + "56178": "AB891X", + "56180": "AB889X", + "56181": "AB889X", + "56183": "AB889X", + "56185": "AB891X", + "56186": "AB889X", + "56187": "AB891X", + "56201": "AB889X", + "56207": "AB889X", + "56208": "AB889X", + "56209": "AB889X", + "56210": "AB889X", + "56211": "AB889X", + "56212": "AB889X", + "56214": "AB889X", + "56215": "AB889X", + "56216": "AB889X", + "56218": "AB889X", + "56219": "AB889X", + "56220": "AB889X", + "56221": "AB889X", + "56222": "AB889X", + "56223": "AB889X", + "56224": "AB889X", + "56225": "AB889X", + "56226": "AB889X", + "56227": "AB889X", + "56228": "AB889X", + "56229": "AB889X", + "56230": "AB889X", + "56231": "AB889X", + "56232": "AB889X", + "56235": "AB889X", + "56236": "AB889X", + "56237": "AB889X", + "56239": "AB889X", + "56240": "AB889X", + "56241": "AB889X", + "56243": "AB889X", + "56244": "AB889X", + "56245": "AB889X", + "56248": "AB889X", + "56249": "AB889X", + "56251": "AB889X", + "56252": "AB889X", + "56253": "AB889X", + "56254": "AB889X", + "56255": "AB889X", + "56256": "AB889X", + "56257": "AB889X", + "56258": "AB889X", + "56260": "AB889X", + "56262": "AB889X", + "56263": "AB889X", + "56264": "AB889X", + "56265": "AB889X", + "56266": "AB889X", + "56267": "AB889X", + "56268": "AB889X", + "56270": "AB889X", + "56271": "AB889X", + "56272": "AB889X", + "56273": "AB889X", + "56274": "AB889X", + "56276": "AB889X", + "56277": "AB889X", + "56278": "AB889X", + "56279": "AB889X", + "56280": "AB889X", + "56281": "AB889X", + "56282": "AB889X", + "56283": "AB889X", + "56284": "AB889X", + "56285": "AB889X", + "56287": "AB889X", + "56288": "AB889X", + "56289": "AB889X", + "56291": "AB889X", + "56292": "AB889X", + "56293": "AB889X", + "56294": "AB889X", + "56295": "AB889X", + "56296": "AB889X", + "56297": "AB889X", + "56301": "AB889X", + "56302": "AB889X", + "56303": "AB889X", + "56304": "AB889X", + "56307": "AB889X", + "56308": "AB889X", + "56309": "AB889X", + "56310": "AB889X", + "56311": "AB889X", + "56312": "AB889X", + "56313": "AB889X", + "56314": "AB889X", + "56315": "AB889X", + "56316": "AB889X", + "56317": "AB889X", + "56318": "AB889X", + "56319": "AB889X", + "56320": "AB889X", + "56321": "AB889X", + "56323": "AB889X", + "56324": "AB889X", + "56325": "AB889X", + "56326": "AB889X", + "56327": "AB889X", + "56328": "AB889X", + "56329": "AB889X", + "56330": "AB889X", + "56331": "AB889X", + "56332": "AB889X", + "56333": "AB889X", + "56334": "AB889X", + "56335": "AB889X", + "56336": "AB889X", + "56338": "AB889X", + "56339": "AB889X", + "56340": "AB889X", + "56341": "AB889X", + "56342": "AB889X", + "56343": "AB889X", + "56344": "AB889X", + "56345": "AB889X", + "56347": "AB889X", + "56349": "AB889X", + "56350": "AB889X", + "56352": "AB889X", + "56353": "AB889X", + "56354": "AB889X", + "56355": "AB889X", + "56356": "AB889X", + "56357": "AB889X", + "56358": "AB889X", + "56359": "AB889X", + "56360": "AB889X", + "56361": "AB889X", + "56362": "AB889X", + "56363": "AB889X", + "56364": "AB889X", + "56367": "AB889X", + "56368": "AB889X", + "56369": "AB889X", + "56371": "AB889X", + "56372": "AB889X", + "56373": "AB889X", + "56374": "AB889X", + "56375": "AB889X", + "56376": "AB889X", + "56377": "AB889X", + "56378": "AB889X", + "56379": "AB889X", + "56381": "AB889X", + "56382": "AB889X", + "56384": "AB889X", + "56385": "AB889X", + "56386": "AB889X", + "56387": "AB889X", + "56388": "AB889X", + "56389": "AB889X", + "56393": "AB889X", + "56395": "AB889X", + "56396": "AB889X", + "56397": "AB889X", + "56398": "AB889X", + "56399": "AB889X", + "56401": "AB889X", + "56425": "AB889X", + "56430": "AB889X", + "56431": "AB889X", + "56433": "AB889X", + "56434": "AB889X", + "56435": "AB889X", + "56436": "AB889X", + "56437": "AB889X", + "56438": "AB889X", + "56440": "AB889X", + "56441": "AB889X", + "56442": "AB889X", + "56443": "AB889X", + "56444": "AB889X", + "56446": "AB889X", + "56447": "AB889X", + "56448": "AB889X", + "56449": "AB889X", + "56450": "AB889X", + "56452": "AB889X", + "56453": "AB889X", + "56455": "AB889X", + "56456": "AB889X", + "56458": "AB889X", + "56459": "AB889X", + "56461": "AB889X", + "56464": "AB889X", + "56465": "AB889X", + "56466": "AB889X", + "56467": "AB889X", + "56468": "AB889X", + "56469": "AB889X", + "56470": "AB889X", + "56472": "AB889X", + "56473": "AB889X", + "56474": "AB889X", + "56475": "AB889X", + "56477": "AB889X", + "56478": "AB889X", + "56479": "AB889X", + "56481": "AB889X", + "56482": "AB889X", + "56484": "AB889X", + "56501": "AB889X", + "56502": "AB889X", + "56510": "AB889X", + "56511": "AB889X", + "56514": "AB889X", + "56515": "AB889X", + "56516": "AB889X", + "56517": "AB889X", + "56518": "AB889X", + "56519": "AB889X", + "56520": "AB889X", + "56521": "AB889X", + "56522": "AB889X", + "56523": "AB889X", + "56524": "AB889X", + "56525": "AB889X", + "56527": "AB889X", + "56528": "AB889X", + "56529": "AB889X", + "56531": "AB889X", + "56533": "AB889X", + "56534": "AB889X", + "56535": "AB889X", + "56536": "AB889X", + "56537": "AB889X", + "56538": "AB889X", + "56540": "AB889X", + "56541": "AB889X", + "56542": "AB889X", + "56543": "AB889X", + "56544": "AB889X", + "56545": "AB889X", + "56546": "AB889X", + "56547": "AB889X", + "56548": "AB889X", + "56549": "AB889X", + "56550": "AB889X", + "56551": "AB889X", + "56552": "AB889X", + "56553": "AB889X", + "56554": "AB889X", + "56556": "AB889X", + "56557": "AB889X", + "56560": "AB889X", + "56561": "AB889X", + "56562": "AB889X", + "56563": "AB889X", + "56565": "AB889X", + "56566": "AB889X", + "56567": "AB889X", + "56568": "AB889X", + "56569": "AB889X", + "56570": "AB889X", + "56571": "AB889X", + "56572": "AB889X", + "56573": "AB889X", + "56574": "AB889X", + "56575": "AB889X", + "56576": "AB889X", + "56577": "AB889X", + "56578": "AB889X", + "56579": "AB889X", + "56580": "AB889X", + "56581": "AB889X", + "56583": "AB889X", + "56584": "AB889X", + "56585": "AB889X", + "56586": "AB889X", + "56587": "AB889X", + "56588": "AB889X", + "56589": "AB889X", + "56590": "AB889X", + "56591": "AB889X", + "56592": "AB889X", + "56593": "AB889X", + "56594": "AB889X", + "56601": "AB889X", + "56619": "AB889X", + "56621": "AB889X", + "56623": "AB889X", + "56626": "AB889X", + "56627": "AB889X", + "56628": "AB889X", + "56629": "AB889X", + "56630": "AB889X", + "56631": "AB889X", + "56633": "AB889X", + "56634": "AB889X", + "56636": "AB889X", + "56637": "AB889X", + "56639": "AB889X", + "56641": "AB889X", + "56644": "AB889X", + "56646": "AB889X", + "56647": "AB889X", + "56649": "AB889X", + "56650": "AB889X", + "56651": "AB889X", + "56652": "AB889X", + "56653": "AB889X", + "56654": "AB889X", + "56655": "AB889X", + "56657": "AB889X", + "56658": "AB889X", + "56659": "AB889X", + "56660": "AB889X", + "56661": "AB889X", + "56662": "AB889X", + "56663": "AB889X", + "56666": "AB889X", + "56667": "AB889X", + "56668": "AB889X", + "56669": "AB889X", + "56670": "AB889X", + "56671": "AB889X", + "56672": "AB889X", + "56673": "AB889X", + "56676": "AB889X", + "56678": "AB889X", + "56679": "AB889X", + "56680": "AB889X", + "56681": "AB889X", + "56682": "AB889X", + "56683": "AB889X", + "56684": "AB889X", + "56685": "AB889X", + "56686": "AB889X", + "56687": "AB889X", + "56688": "AB889X", + "56701": "AB889X", + "56710": "AB889X", + "56711": "AB889X", + "56712": "AB889X", + "56713": "AB889X", + "56714": "AB889X", + "56715": "AB889X", + "56716": "AB889X", + "56720": "AB889X", + "56721": "AB889X", + "56722": "AB889X", + "56723": "AB889X", + "56724": "AB889X", + "56725": "AB889X", + "56726": "AB889X", + "56727": "AB889X", + "56728": "AB889X", + "56729": "AB889X", + "56731": "AB889X", + "56732": "AB889X", + "56733": "AB889X", + "56734": "AB889X", + "56735": "AB889X", + "56736": "AB889X", + "56737": "AB889X", + "56738": "AB889X", + "56740": "AB889X", + "56741": "AB889X", + "56742": "AB889X", + "56744": "AB889X", + "56748": "AB889X", + "56750": "AB889X", + "56751": "AB889X", + "56754": "AB889X", + "56755": "AB889X", + "56756": "AB889X", + "56757": "AB889X", + "56758": "AB889X", + "56759": "AB889X", + "56760": "AB889X", + "56761": "AB889X", + "56762": "AB889X", + "56763": "AB889X", + "57001": "AB891X", + "57002": "AB891X", + "57003": "AB891X", + "57004": "AB891X", + "57005": "AB891X", + "57006": "AB891X", + "57007": "AB891X", + "57010": "AB891X", + "57012": "AB891X", + "57013": "AB891X", + "57014": "AB891X", + "57015": "AB891X", + "57016": "AB891X", + "57017": "AB891X", + "57018": "AB891X", + "57020": "AB891X", + "57021": "AB891X", + "57022": "AB891X", + "57024": "AB891X", + "57025": "AB891X", + "57026": "AB891X", + "57027": "AB891X", + "57028": "AB891X", + "57029": "AB891X", + "57030": "AB891X", + "57031": "AB891X", + "57032": "AB891X", + "57033": "AB891X", + "57034": "AB891X", + "57035": "AB891X", + "57036": "AB891X", + "57037": "AB891X", + "57038": "AB891X", + "57039": "AB891X", + "57040": "AB891X", + "57041": "AB891X", + "57042": "AB891X", + "57043": "AB891X", + "57045": "AB891X", + "57046": "AB891X", + "57047": "AB891X", + "57048": "AB891X", + "57049": "AB891X", + "57050": "AB891X", + "57051": "AB891X", + "57052": "AB891X", + "57053": "AB891X", + "57054": "AB891X", + "57055": "AB891X", + "57056": "AB891X", + "57057": "AB891X", + "57058": "AB891X", + "57059": "AB891X", + "57061": "AB891X", + "57062": "AB891X", + "57063": "AB891X", + "57064": "AB891X", + "57065": "AB891X", + "57066": "AB891X", + "57067": "AB891X", + "57068": "AB891X", + "57069": "AB891X", + "57070": "AB891X", + "57071": "AB891X", + "57072": "AB891X", + "57073": "AB891X", + "57075": "AB891X", + "57076": "AB891X", + "57077": "AB891X", + "57078": "AB891X", + "57079": "AB891X", + "57101": "AB891X", + "57103": "AB891X", + "57104": "AB891X", + "57105": "AB891X", + "57106": "AB891X", + "57107": "AB891X", + "57108": "AB891X", + "57109": "AB891X", + "57110": "AB891X", + "57117": "AB891X", + "57118": "AB891X", + "57186": "AB891X", + "57188": "AB891X", + "57189": "AB891X", + "57192": "AB891X", + "57193": "AB891X", + "57194": "AB891X", + "57195": "AB891X", + "57196": "AB891X", + "57197": "AB891X", + "57198": "AB891X", + "57201": "AB891X", + "57212": "AB891X", + "57213": "AB891X", + "57214": "AB891X", + "57216": "AB891X", + "57217": "AB891X", + "57218": "AB891X", + "57219": "AB891X", + "57220": "AB891X", + "57221": "AB891X", + "57223": "AB891X", + "57224": "AB889X", + "57225": "AB891X", + "57226": "AB891X", + "57227": "AB889X", + "57231": "AB891X", + "57232": "AB891X", + "57233": "AB891X", + "57234": "AB891X", + "57235": "AB891X", + "57236": "AB891X", + "57237": "AB891X", + "57238": "AB891X", + "57239": "AB891X", + "57241": "AB891X", + "57242": "AB891X", + "57243": "AB891X", + "57245": "AB891X", + "57246": "AB891X", + "57247": "AB891X", + "57248": "AB891X", + "57249": "AB891X", + "57251": "AB891X", + "57252": "AB891X", + "57253": "AB891X", + "57255": "AB889X", + "57256": "AB889X", + "57257": "AB889X", + "57258": "AB891X", + "57259": "AB891X", + "57260": "AB889X", + "57261": "AB891X", + "57262": "AB889X", + "57263": "AB891X", + "57264": "AB891X", + "57265": "AB891X", + "57266": "AB889X", + "57268": "AB891X", + "57269": "AB891X", + "57270": "AB891X", + "57271": "AB891X", + "57272": "AB891X", + "57273": "AB891X", + "57274": "AB891X", + "57276": "AB891X", + "57278": "AB891X", + "57279": "AB889X", + "57301": "AB891X", + "57311": "AB891X", + "57312": "AB891X", + "57313": "AB891X", + "57314": "AB891X", + "57315": "AB891X", + "57317": "AB891X", + "57319": "AB891X", + "57321": "AB891X", + "57322": "AB891X", + "57323": "AB891X", + "57324": "AB891X", + "57325": "AB891X", + "57326": "AB891X", + "57328": "AB891X", + "57329": "AB891X", + "57330": "AB891X", + "57331": "AB891X", + "57332": "AB891X", + "57334": "AB891X", + "57335": "AB891X", + "57337": "AB891X", + "57339": "AB891X", + "57340": "AB891X", + "57341": "AB891X", + "57342": "AB891X", + "57344": "AB891X", + "57345": "AB891X", + "57346": "AB891X", + "57348": "AB891X", + "57349": "AB891X", + "57350": "AB891X", + "57353": "AB891X", + "57354": "AB891X", + "57355": "AB891X", + "57356": "AB891X", + "57358": "AB891X", + "57359": "AB891X", + "57361": "AB891X", + "57362": "AB891X", + "57363": "AB891X", + "57364": "AB891X", + "57365": "AB891X", + "57366": "AB891X", + "57367": "AB891X", + "57368": "AB891X", + "57369": "AB891X", + "57370": "AB891X", + "57371": "AB891X", + "57373": "AB891X", + "57374": "AB891X", + "57375": "AB891X", + "57376": "AB891X", + "57379": "AB891X", + "57380": "AB891X", + "57381": "AB891X", + "57382": "AB891X", + "57383": "AB891X", + "57384": "AB891X", + "57385": "AB891X", + "57386": "AB891X", + "57399": "AB891X", + "57401": "AB891X", + "57402": "AB891X", + "57420": "AB891X", + "57421": "AB891X", + "57422": "AB891X", + "57424": "AB891X", + "57426": "AB891X", + "57427": "AB891X", + "57428": "AB891X", + "57429": "AB891X", + "57430": "AB891X", + "57432": "AB891X", + "57433": "AB891X", + "57434": "AB891X", + "57435": "AB891X", + "57436": "AB891X", + "57437": "AB891X", + "57438": "AB891X", + "57439": "AB891X", + "57440": "AB891X", + "57441": "AB891X", + "57442": "AB891X", + "57445": "AB891X", + "57446": "AB891X", + "57448": "AB891X", + "57449": "AB891X", + "57450": "AB891X", + "57451": "AB891X", + "57452": "AB891X", + "57454": "AB891X", + "57455": "AB891X", + "57456": "AB891X", + "57457": "AB891X", + "57460": "AB891X", + "57461": "AB891X", + "57465": "AB891X", + "57466": "AB891X", + "57467": "AB891X", + "57468": "AB891X", + "57469": "AB891X", + "57470": "AB891X", + "57471": "AB891X", + "57472": "AB891X", + "57473": "AB891X", + "57474": "AB891X", + "57475": "AB891X", + "57476": "AB891X", + "57477": "AB891X", + "57479": "AB891X", + "57481": "AB891X", + "57501": "AB891X", + "57520": "AB891X", + "57521": "AB891X", + "57522": "AB891X", + "57523": "AB891X", + "57528": "AB891X", + "57529": "AB891X", + "57531": "AB891X", + "57532": "AB891X", + "57533": "AB891X", + "57534": "AB891X", + "57536": "AB891X", + "57537": "AB891X", + "57538": "AB891X", + "57540": "AB891X", + "57541": "AB891X", + "57543": "AB891X", + "57544": "AB891X", + "57547": "AB891X", + "57548": "AB891X", + "57551": "AB891X", + "57552": "AB891X", + "57553": "AB891X", + "57555": "AB891X", + "57559": "AB891X", + "57560": "AB891X", + "57562": "AB891X", + "57563": "AB891X", + "57564": "AB891X", + "57566": "AB891X", + "57567": "AB891X", + "57568": "AB891X", + "57569": "AB891X", + "57570": "AB891X", + "57571": "AB891X", + "57572": "AB891X", + "57574": "AB891X", + "57576": "AB891X", + "57577": "AB891X", + "57579": "AB891X", + "57580": "AB891X", + "57584": "AB891X", + "57585": "AB891X", + "57601": "AB891X", + "57620": "AB891X", + "57621": "AB891X", + "57622": "AB891X", + "57623": "AB891X", + "57625": "AB891X", + "57626": "AB891X", + "57630": "AB891X", + "57631": "AB891X", + "57632": "AB891X", + "57633": "AB891X", + "57634": "AB891X", + "57636": "AB891X", + "57638": "AB891X", + "57639": "AB891X", + "57640": "AB891X", + "57641": "AB891X", + "57642": "AB891X", + "57644": "AB891X", + "57645": "AB891X", + "57646": "AB891X", + "57648": "AB891X", + "57649": "AB891X", + "57650": "AB891X", + "57651": "AB891X", + "57652": "AB891X", + "57656": "AB891X", + "57657": "AB891X", + "57658": "AB891X", + "57659": "AB891X", + "57660": "AB891X", + "57661": "AB891X", + "57701": "AB887X", + "57702": "AB887X", + "57703": "AB887X", + "57706": "AB891X", + "57709": "AB887X", + "57714": "AB891X", + "57716": "AB891X", + "57717": "AB887X", + "57718": "AB891X", + "57719": "AB887X", + "57720": "AB891X", + "57722": "AB891X", + "57724": "AB891X", + "57725": "AB887X", + "57730": "AB891X", + "57732": "AB891X", + "57735": "AB891X", + "57737": "AB891X", + "57738": "AB891X", + "57741": "AB891X", + "57744": "AB891X", + "57745": "AB887X", + "57747": "AB891X", + "57748": "AB891X", + "57750": "AB891X", + "57751": "AB887X", + "57752": "AB891X", + "57754": "AB891X", + "57755": "AB891X", + "57756": "AB891X", + "57758": "AB891X", + "57759": "AB891X", + "57760": "AB887X", + "57761": "AB887X", + "57762": "AB887X", + "57763": "AB891X", + "57764": "AB891X", + "57766": "AB891X", + "57767": "AB887X", + "57769": "AB891X", + "57770": "AB891X", + "57772": "AB891X", + "57773": "AB891X", + "57775": "AB887X", + "57776": "AB891X", + "57779": "AB891X", + "57780": "AB887X", + "57782": "AB891X", + "57783": "AB891X", + "57785": "AB891X", + "57787": "AB891X", + "57788": "AB887X", + "57790": "AB887X", + "57791": "AB887X", + "57792": "AB891X", + "57793": "AB891X", + "57794": "AB891X", + "57799": "AB891X", + "58001": "AB889X", + "58002": "AB889X", + "58004": "AB889X", + "58005": "AB889X", + "58006": "AB889X", + "58007": "AB889X", + "58008": "AB889X", + "58009": "AB889X", + "58011": "AB889X", + "58012": "AB889X", + "58013": "AB889X", + "58015": "AB889X", + "58016": "AB889X", + "58017": "AB889X", + "58018": "AB889X", + "58021": "AB889X", + "58027": "AB889X", + "58029": "AB889X", + "58030": "AB889X", + "58031": "AB889X", + "58032": "AB889X", + "58033": "AB889X", + "58035": "AB889X", + "58036": "AB889X", + "58038": "AB889X", + "58040": "AB889X", + "58041": "AB889X", + "58042": "AB889X", + "58043": "AB889X", + "58045": "AB889X", + "58046": "AB889X", + "58047": "AB889X", + "58048": "AB889X", + "58049": "AB889X", + "58051": "AB889X", + "58052": "AB889X", + "58053": "AB889X", + "58054": "AB889X", + "58056": "AB889X", + "58057": "AB889X", + "58058": "AB889X", + "58059": "AB889X", + "58060": "AB889X", + "58061": "AB889X", + "58062": "AB889X", + "58063": "AB889X", + "58064": "AB889X", + "58065": "AB889X", + "58067": "AB889X", + "58068": "AB889X", + "58069": "AB889X", + "58071": "AB889X", + "58072": "AB889X", + "58074": "AB889X", + "58075": "AB889X", + "58076": "AB889X", + "58077": "AB889X", + "58078": "AB889X", + "58079": "AB889X", + "58081": "AB889X", + "58102": "AB889X", + "58103": "AB889X", + "58104": "AB889X", + "58105": "AB889X", + "58106": "AB889X", + "58107": "AB889X", + "58108": "AB889X", + "58109": "AB889X", + "58121": "AB889X", + "58122": "AB889X", + "58124": "AB889X", + "58125": "AB889X", + "58126": "AB889X", + "58201": "AB889X", + "58202": "AB889X", + "58203": "AB889X", + "58204": "AB889X", + "58205": "AB889X", + "58206": "AB889X", + "58207": "AB889X", + "58208": "AB889X", + "58210": "AB889X", + "58212": "AB889X", + "58214": "AB889X", + "58216": "AB889X", + "58218": "AB889X", + "58219": "AB889X", + "58220": "AB889X", + "58222": "AB889X", + "58223": "AB889X", + "58224": "AB889X", + "58225": "AB889X", + "58227": "AB889X", + "58228": "AB889X", + "58229": "AB889X", + "58230": "AB889X", + "58231": "AB889X", + "58233": "AB889X", + "58235": "AB889X", + "58236": "AB889X", + "58237": "AB889X", + "58238": "AB889X", + "58239": "AB889X", + "58240": "AB889X", + "58241": "AB889X", + "58243": "AB889X", + "58244": "AB889X", + "58249": "AB889X", + "58250": "AB889X", + "58251": "AB889X", + "58254": "AB889X", + "58255": "AB889X", + "58256": "AB889X", + "58257": "AB889X", + "58258": "AB889X", + "58259": "AB889X", + "58260": "AB889X", + "58261": "AB889X", + "58262": "AB889X", + "58265": "AB889X", + "58266": "AB889X", + "58267": "AB889X", + "58269": "AB889X", + "58270": "AB889X", + "58271": "AB889X", + "58272": "AB889X", + "58273": "AB889X", + "58274": "AB889X", + "58275": "AB889X", + "58276": "AB889X", + "58277": "AB889X", + "58278": "AB889X", + "58281": "AB889X", + "58282": "AB889X", + "58301": "AB889X", + "58310": "AB889X", + "58311": "AB889X", + "58313": "AB889X", + "58316": "AB889X", + "58317": "AB889X", + "58318": "AB889X", + "58319": "AB889X", + "58321": "AB889X", + "58323": "AB889X", + "58324": "AB889X", + "58325": "AB889X", + "58327": "AB889X", + "58329": "AB889X", + "58330": "AB889X", + "58331": "AB889X", + "58332": "AB889X", + "58335": "AB889X", + "58338": "AB889X", + "58339": "AB889X", + "58341": "AB889X", + "58343": "AB889X", + "58344": "AB889X", + "58345": "AB889X", + "58346": "AB889X", + "58348": "AB889X", + "58351": "AB889X", + "58352": "AB889X", + "58353": "AB889X", + "58355": "AB889X", + "58356": "AB889X", + "58357": "AB889X", + "58361": "AB889X", + "58362": "AB889X", + "58363": "AB889X", + "58365": "AB889X", + "58366": "AB889X", + "58367": "AB889X", + "58368": "AB889X", + "58369": "AB889X", + "58370": "AB889X", + "58372": "AB889X", + "58374": "AB889X", + "58377": "AB889X", + "58379": "AB889X", + "58380": "AB889X", + "58381": "AB889X", + "58382": "AB889X", + "58384": "AB889X", + "58385": "AB889X", + "58386": "AB889X", + "58401": "AB889X", + "58402": "AB889X", + "58405": "AB889X", + "58413": "AB889X", + "58415": "AB889X", + "58416": "AB889X", + "58418": "AB889X", + "58420": "AB889X", + "58421": "AB889X", + "58422": "AB889X", + "58423": "AB889X", + "58424": "AB889X", + "58425": "AB889X", + "58426": "AB889X", + "58428": "AB889X", + "58429": "AB889X", + "58430": "AB889X", + "58431": "AB889X", + "58433": "AB889X", + "58436": "AB889X", + "58438": "AB889X", + "58439": "AB889X", + "58440": "AB889X", + "58441": "AB889X", + "58442": "AB889X", + "58443": "AB889X", + "58444": "AB889X", + "58445": "AB889X", + "58448": "AB889X", + "58451": "AB889X", + "58452": "AB889X", + "58454": "AB889X", + "58455": "AB889X", + "58456": "AB889X", + "58458": "AB889X", + "58460": "AB889X", + "58461": "AB889X", + "58463": "AB889X", + "58464": "AB889X", + "58466": "AB889X", + "58467": "AB889X", + "58472": "AB889X", + "58474": "AB889X", + "58475": "AB889X", + "58476": "AB889X", + "58477": "AB889X", + "58478": "AB889X", + "58479": "AB889X", + "58480": "AB889X", + "58481": "AB889X", + "58482": "AB889X", + "58483": "AB889X", + "58484": "AB889X", + "58486": "AB889X", + "58487": "AB889X", + "58488": "AB889X", + "58490": "AB889X", + "58492": "AB889X", + "58494": "AB889X", + "58495": "AB889X", + "58496": "AB889X", + "58497": "AB889X", + "58501": "AB889X", + "58502": "AB889X", + "58503": "AB889X", + "58504": "AB889X", + "58505": "AB889X", + "58506": "AB889X", + "58507": "AB889X", + "58520": "AB889X", + "58521": "AB889X", + "58523": "AB889X", + "58524": "AB889X", + "58528": "AB889X", + "58529": "AB889X", + "58530": "AB889X", + "58531": "AB889X", + "58532": "AB889X", + "58533": "AB889X", + "58535": "AB889X", + "58538": "AB889X", + "58540": "AB889X", + "58541": "AB889X", + "58542": "AB889X", + "58544": "AB889X", + "58545": "AB889X", + "58549": "AB889X", + "58552": "AB889X", + "58554": "AB889X", + "58558": "AB889X", + "58559": "AB889X", + "58560": "AB889X", + "58561": "AB889X", + "58562": "AB889X", + "58563": "AB889X", + "58564": "AB889X", + "58565": "AB889X", + "58566": "AB889X", + "58568": "AB889X", + "58569": "AB889X", + "58570": "AB889X", + "58571": "AB889X", + "58572": "AB889X", + "58573": "AB889X", + "58575": "AB889X", + "58576": "AB889X", + "58577": "AB889X", + "58579": "AB889X", + "58580": "AB889X", + "58581": "AB889X", + "58601": "AB889X", + "58602": "AB889X", + "58620": "AB889X", + "58621": "AB889X", + "58622": "AB889X", + "58623": "AB889X", + "58625": "AB889X", + "58626": "AB889X", + "58627": "AB889X", + "58630": "AB889X", + "58631": "AB889X", + "58632": "AB889X", + "58634": "AB889X", + "58636": "AB889X", + "58638": "AB889X", + "58639": "AB889X", + "58640": "AB889X", + "58641": "AB889X", + "58642": "AB889X", + "58643": "AB889X", + "58644": "AB889X", + "58645": "AB889X", + "58646": "AB889X", + "58647": "AB889X", + "58649": "AB889X", + "58650": "AB889X", + "58651": "AB889X", + "58652": "AB889X", + "58653": "AB889X", + "58654": "AB889X", + "58655": "AB889X", + "58656": "AB889X", + "58701": "AB889X", + "58702": "AB889X", + "58703": "AB889X", + "58704": "AB889X", + "58705": "AB889X", + "58707": "AB889X", + "58710": "AB889X", + "58711": "AB889X", + "58712": "AB889X", + "58713": "AB889X", + "58716": "AB889X", + "58718": "AB889X", + "58721": "AB889X", + "58722": "AB889X", + "58723": "AB889X", + "58725": "AB889X", + "58727": "AB889X", + "58730": "AB889X", + "58731": "AB889X", + "58733": "AB889X", + "58734": "AB889X", + "58735": "AB889X", + "58736": "AB889X", + "58737": "AB889X", + "58740": "AB889X", + "58741": "AB889X", + "58744": "AB889X", + "58746": "AB889X", + "58748": "AB889X", + "58750": "AB889X", + "58752": "AB889X", + "58755": "AB889X", + "58756": "AB889X", + "58757": "AB889X", + "58758": "AB889X", + "58759": "AB889X", + "58760": "AB889X", + "58761": "AB889X", + "58762": "AB889X", + "58763": "AB889X", + "58765": "AB889X", + "58768": "AB889X", + "58769": "AB889X", + "58770": "AB889X", + "58771": "AB889X", + "58772": "AB889X", + "58773": "AB889X", + "58775": "AB889X", + "58776": "AB889X", + "58778": "AB889X", + "58779": "AB889X", + "58781": "AB889X", + "58782": "AB889X", + "58783": "AB889X", + "58784": "AB889X", + "58785": "AB889X", + "58787": "AB889X", + "58788": "AB889X", + "58789": "AB889X", + "58790": "AB889X", + "58792": "AB889X", + "58793": "AB889X", + "58794": "AB889X", + "58795": "AB889X", + "58801": "AB889X", + "58802": "AB889X", + "58830": "AB889X", + "58831": "AB889X", + "58833": "AB889X", + "58835": "AB889X", + "58838": "AB889X", + "58843": "AB889X", + "58844": "AB889X", + "58845": "AB889X", + "58847": "AB889X", + "58849": "AB889X", + "58852": "AB889X", + "58853": "AB889X", + "58854": "AB889X", + "58856": "AB889X", + "59001": "AB887X", + "59002": "AB887X", + "59003": "AB887X", + "59004": "AB887X", + "59006": "AB887X", + "59007": "AB887X", + "59008": "AB887X", + "59010": "AB887X", + "59011": "AB887X", + "59012": "AB887X", + "59013": "AB887X", + "59014": "AB887X", + "59015": "AB887X", + "59016": "AB887X", + "59018": "AB887X", + "59019": "AB887X", + "59020": "AB887X", + "59022": "AB887X", + "59024": "AB887X", + "59025": "AB887X", + "59026": "AB887X", + "59027": "AB887X", + "59028": "AB887X", + "59029": "AB887X", + "59030": "AB887X", + "59031": "AB887X", + "59032": "AB890X", + "59033": "AB887X", + "59034": "AB887X", + "59035": "AB887X", + "59036": "AB887X", + "59037": "AB887X", + "59038": "AB887X", + "59039": "AB887X", + "59041": "AB887X", + "59043": "AB887X", + "59044": "AB887X", + "59046": "AB887X", + "59047": "AB887X", + "59050": "AB887X", + "59052": "AB887X", + "59053": "AB890X", + "59054": "AB887X", + "59055": "AB887X", + "59057": "AB887X", + "59058": "AB887X", + "59059": "AB887X", + "59061": "AB887X", + "59062": "AB887X", + "59063": "AB887X", + "59064": "AB887X", + "59065": "AB887X", + "59066": "AB887X", + "59067": "AB887X", + "59068": "AB887X", + "59069": "AB887X", + "59070": "AB887X", + "59071": "AB887X", + "59072": "AB887X", + "59073": "AB887X", + "59074": "AB887X", + "59075": "AB887X", + "59076": "AB887X", + "59077": "AB887X", + "59078": "AB887X", + "59079": "AB887X", + "59081": "AB887X", + "59082": "AB887X", + "59083": "AB887X", + "59084": "AB887X", + "59085": "AB887X", + "59086": "AB887X", + "59087": "AB887X", + "59088": "AB887X", + "59089": "AB887X", + "59101": "AB887X", + "59102": "AB887X", + "59103": "AB887X", + "59104": "AB887X", + "59105": "AB887X", + "59106": "AB887X", + "59107": "AB887X", + "59108": "AB887X", + "59111": "AB887X", + "59112": "AB887X", + "59114": "AB887X", + "59115": "AB887X", + "59116": "AB887X", + "59117": "AB887X", + "59201": "AB889X", + "59211": "AB889X", + "59212": "AB889X", + "59213": "AB889X", + "59214": "AB889X", + "59215": "AB889X", + "59217": "AB889X", + "59218": "AB889X", + "59219": "AB889X", + "59221": "AB889X", + "59222": "AB890X", + "59223": "AB890X", + "59225": "AB890X", + "59226": "AB889X", + "59230": "AB890X", + "59231": "AB890X", + "59240": "AB890X", + "59241": "AB890X", + "59242": "AB889X", + "59243": "AB889X", + "59244": "AB890X", + "59247": "AB889X", + "59248": "AB890X", + "59250": "AB890X", + "59252": "AB889X", + "59253": "AB890X", + "59254": "AB889X", + "59255": "AB889X", + "59256": "AB889X", + "59257": "AB889X", + "59258": "AB889X", + "59259": "AB887X", + "59260": "AB890X", + "59261": "AB890X", + "59262": "AB889X", + "59263": "AB890X", + "59270": "AB889X", + "59273": "AB890X", + "59274": "AB889X", + "59275": "AB889X", + "59276": "AB890X", + "59301": "AB887X", + "59311": "AB887X", + "59312": "AB887X", + "59313": "AB887X", + "59314": "AB887X", + "59315": "AB887X", + "59316": "AB887X", + "59317": "AB887X", + "59318": "AB887X", + "59319": "AB887X", + "59322": "AB887X", + "59323": "AB887X", + "59324": "AB887X", + "59326": "AB887X", + "59327": "AB887X", + "59330": "AB887X", + "59332": "AB887X", + "59333": "AB887X", + "59336": "AB887X", + "59337": "AB887X", + "59338": "AB887X", + "59339": "AB887X", + "59341": "AB887X", + "59343": "AB887X", + "59344": "AB887X", + "59345": "AB887X", + "59347": "AB887X", + "59349": "AB887X", + "59351": "AB887X", + "59353": "AB887X", + "59354": "AB887X", + "59401": "AB890X", + "59402": "AB890X", + "59403": "AB890X", + "59404": "AB890X", + "59405": "AB890X", + "59406": "AB890X", + "59410": "AB887X", + "59411": "AB890X", + "59412": "AB890X", + "59414": "AB890X", + "59416": "AB890X", + "59417": "AB890X", + "59418": "AB890X", + "59419": "AB890X", + "59420": "AB890X", + "59421": "AB890X", + "59422": "AB890X", + "59424": "AB890X", + "59425": "AB890X", + "59427": "AB890X", + "59430": "AB890X", + "59432": "AB890X", + "59433": "AB890X", + "59434": "AB890X", + "59435": "AB890X", + "59436": "AB890X", + "59440": "AB890X", + "59441": "AB890X", + "59442": "AB890X", + "59443": "AB890X", + "59444": "AB890X", + "59446": "AB890X", + "59447": "AB890X", + "59448": "AB890X", + "59450": "AB890X", + "59451": "AB890X", + "59452": "AB890X", + "59453": "AB887X", + "59454": "AB890X", + "59456": "AB890X", + "59457": "AB890X", + "59460": "AB890X", + "59461": "AB890X", + "59462": "AB890X", + "59463": "AB890X", + "59464": "AB890X", + "59465": "AB890X", + "59466": "AB890X", + "59467": "AB890X", + "59468": "AB890X", + "59469": "AB890X", + "59471": "AB890X", + "59472": "AB890X", + "59474": "AB890X", + "59477": "AB890X", + "59479": "AB890X", + "59480": "AB890X", + "59482": "AB890X", + "59483": "AB890X", + "59484": "AB890X", + "59485": "AB890X", + "59486": "AB890X", + "59487": "AB890X", + "59489": "AB890X", + "59501": "AB890X", + "59520": "AB890X", + "59521": "AB890X", + "59522": "AB890X", + "59523": "AB890X", + "59524": "AB890X", + "59525": "AB890X", + "59526": "AB890X", + "59527": "AB890X", + "59528": "AB890X", + "59529": "AB890X", + "59530": "AB890X", + "59531": "AB890X", + "59532": "AB890X", + "59535": "AB890X", + "59537": "AB890X", + "59538": "AB890X", + "59540": "AB890X", + "59542": "AB890X", + "59544": "AB890X", + "59545": "AB890X", + "59546": "AB890X", + "59547": "AB890X", + "59601": "AB887X", + "59602": "AB887X", + "59604": "AB887X", + "59620": "AB887X", + "59623": "AB887X", + "59624": "AB887X", + "59625": "AB887X", + "59626": "AB887X", + "59631": "AB887X", + "59632": "AB887X", + "59633": "AB887X", + "59634": "AB887X", + "59635": "AB887X", + "59636": "AB887X", + "59638": "AB887X", + "59639": "AB887X", + "59640": "AB887X", + "59641": "AB887X", + "59642": "AB890X", + "59643": "AB887X", + "59644": "AB887X", + "59645": "AB890X", + "59647": "AB887X", + "59648": "AB887X", + "59701": "AB887X", + "59702": "AB887X", + "59703": "AB887X", + "59707": "AB887X", + "59710": "AB887X", + "59711": "AB887X", + "59713": "AB890X", + "59714": "AB887X", + "59715": "AB887X", + "59716": "AB887X", + "59717": "AB887X", + "59718": "AB887X", + "59719": "AB887X", + "59720": "AB887X", + "59721": "AB887X", + "59722": "AB890X", + "59724": "AB890X", + "59725": "AB890X", + "59727": "AB887X", + "59728": "AB890X", + "59729": "AB887X", + "59730": "AB887X", + "59731": "AB890X", + "59732": "AB890X", + "59733": "AB890X", + "59735": "AB887X", + "59736": "AB890X", + "59739": "AB890X", + "59740": "AB887X", + "59741": "AB887X", + "59743": "AB887X", + "59745": "AB887X", + "59746": "AB890X", + "59747": "AB887X", + "59748": "AB887X", + "59749": "AB887X", + "59750": "AB887X", + "59751": "AB887X", + "59752": "AB887X", + "59754": "AB887X", + "59755": "AB887X", + "59756": "AB887X", + "59758": "AB887X", + "59759": "AB887X", + "59760": "AB887X", + "59761": "AB890X", + "59762": "AB890X", + "59771": "AB887X", + "59772": "AB887X", + "59773": "AB887X", + "59801": "AB890X", + "59802": "AB890X", + "59803": "AB890X", + "59804": "AB890X", + "59806": "AB890X", + "59807": "AB890X", + "59808": "AB890X", + "59812": "AB890X", + "59820": "AB890X", + "59821": "AB890X", + "59823": "AB890X", + "59824": "AB890X", + "59825": "AB890X", + "59826": "AB890X", + "59827": "AB890X", + "59828": "AB890X", + "59829": "AB890X", + "59830": "AB890X", + "59831": "AB890X", + "59832": "AB890X", + "59833": "AB890X", + "59834": "AB890X", + "59835": "AB890X", + "59837": "AB890X", + "59840": "AB890X", + "59841": "AB890X", + "59842": "AB890X", + "59843": "AB890X", + "59844": "AB890X", + "59845": "AB890X", + "59846": "AB890X", + "59847": "AB890X", + "59848": "AB890X", + "59851": "AB890X", + "59853": "AB890X", + "59854": "AB890X", + "59855": "AB890X", + "59856": "AB890X", + "59858": "AB890X", + "59859": "AB890X", + "59860": "AB890X", + "59863": "AB890X", + "59864": "AB890X", + "59865": "AB890X", + "59866": "AB890X", + "59867": "AB890X", + "59868": "AB890X", + "59870": "AB890X", + "59871": "AB890X", + "59872": "AB890X", + "59873": "AB890X", + "59874": "AB890X", + "59875": "AB890X", + "59901": "AB890X", + "59903": "AB890X", + "59904": "AB890X", + "59910": "AB890X", + "59911": "AB890X", + "59912": "AB890X", + "59913": "AB890X", + "59914": "AB890X", + "59915": "AB890X", + "59916": "AB890X", + "59917": "AB890X", + "59918": "AB890X", + "59919": "AB890X", + "59920": "AB890X", + "59921": "AB890X", + "59922": "AB890X", + "59923": "AB890X", + "59925": "AB890X", + "59926": "AB890X", + "59927": "AB890X", + "59928": "AB890X", + "59929": "AB890X", + "59930": "AB890X", + "59931": "AB890X", + "59932": "AB890X", + "59933": "AB890X", + "59934": "AB890X", + "59935": "AB890X", + "59936": "AB890X", + "59937": "AB890X", + "60001": "AB887X", + "60002": "AB887X", + "60004": "AB887X", + "60005": "AB887X", + "60006": "AB887X", + "60007": "AB887X", + "60008": "AB887X", + "60009": "AB887X", + "60010": "AB887X", + "60011": "AB887X", + "60012": "AB887X", + "60013": "AB887X", + "60014": "AB887X", + "60015": "AB887X", + "60016": "AB887X", + "60017": "AB887X", + "60018": "AB887X", + "60019": "AB887X", + "60020": "AB887X", + "60021": "AB887X", + "60022": "AB887X", + "60025": "AB887X", + "60026": "AB887X", + "60029": "AB887X", + "60030": "AB887X", + "60031": "AB887X", + "60033": "AB887X", + "60034": "AB887X", + "60035": "AB887X", + "60037": "AB887X", + "60038": "AB887X", + "60039": "AB887X", + "60040": "AB887X", + "60041": "AB887X", + "60042": "AB887X", + "60043": "AB887X", + "60044": "AB887X", + "60045": "AB887X", + "60046": "AB887X", + "60047": "AB887X", + "60048": "AB887X", + "60049": "AB887X", + "60050": "AB887X", + "60051": "AB887X", + "60053": "AB887X", + "60055": "AB887X", + "60056": "AB887X", + "60060": "AB887X", + "60061": "AB887X", + "60062": "AB887X", + "60064": "AB887X", + "60065": "AB887X", + "60067": "AB887X", + "60068": "AB887X", + "60069": "AB887X", + "60070": "AB887X", + "60071": "AB887X", + "60072": "AB887X", + "60073": "AB887X", + "60074": "AB887X", + "60075": "AB887X", + "60076": "AB887X", + "60077": "AB887X", + "60078": "AB887X", + "60079": "AB887X", + "60081": "AB887X", + "60082": "AB887X", + "60083": "AB887X", + "60084": "AB887X", + "60085": "AB887X", + "60086": "AB887X", + "60087": "AB887X", + "60088": "AB887X", + "60089": "AB887X", + "60090": "AB887X", + "60091": "AB887X", + "60092": "AB887X", + "60093": "AB887X", + "60094": "AB887X", + "60095": "AB887X", + "60096": "AB887X", + "60097": "AB887X", + "60098": "AB887X", + "60099": "AB887X", + "60101": "AB887X", + "60102": "AB887X", + "60103": "AB887X", + "60104": "AB887X", + "60105": "AB887X", + "60106": "AB887X", + "60107": "AB887X", + "60108": "AB887X", + "60109": "AB887X", + "60110": "AB887X", + "60111": "AB887X", + "60112": "AB887X", + "60113": "AB887X", + "60115": "AB887X", + "60116": "AB887X", + "60117": "AB887X", + "60118": "AB887X", + "60119": "AB887X", + "60120": "AB887X", + "60121": "AB887X", + "60122": "AB887X", + "60123": "AB887X", + "60124": "AB887X", + "60125": "AB887X", + "60126": "AB887X", + "60128": "AB887X", + "60129": "AB887X", + "60130": "AB887X", + "60131": "AB887X", + "60132": "AB887X", + "60133": "AB887X", + "60134": "AB887X", + "60135": "AB887X", + "60136": "AB887X", + "60137": "AB887X", + "60138": "AB887X", + "60139": "AB887X", + "60140": "AB887X", + "60141": "AB887X", + "60142": "AB887X", + "60143": "AB887X", + "60144": "AB887X", + "60145": "AB887X", + "60146": "AB887X", + "60147": "AB887X", + "60148": "AB887X", + "60150": "AB887X", + "60151": "AB887X", + "60152": "AB887X", + "60153": "AB887X", + "60154": "AB887X", + "60155": "AB887X", + "60156": "AB887X", + "60157": "AB887X", + "60159": "AB887X", + "60160": "AB887X", + "60161": "AB887X", + "60162": "AB887X", + "60163": "AB887X", + "60164": "AB887X", + "60165": "AB887X", + "60168": "AB887X", + "60169": "AB887X", + "60170": "AB887X", + "60171": "AB887X", + "60172": "AB887X", + "60173": "AB887X", + "60174": "AB887X", + "60175": "AB887X", + "60176": "AB887X", + "60177": "AB887X", + "60178": "AB887X", + "60179": "AB887X", + "60180": "AB887X", + "60181": "AB887X", + "60183": "AB887X", + "60184": "AB887X", + "60185": "AB887X", + "60186": "AB887X", + "60187": "AB887X", + "60188": "AB887X", + "60189": "AB887X", + "60190": "AB887X", + "60191": "AB887X", + "60192": "AB887X", + "60193": "AB887X", + "60194": "AB887X", + "60195": "AB887X", + "60196": "AB887X", + "60197": "AB887X", + "60199": "AB887X", + "60201": "AB887X", + "60202": "AB887X", + "60203": "AB887X", + "60204": "AB887X", + "60208": "AB887X", + "60209": "AB887X", + "60296": "AB887X", + "60297": "AB887X", + "60301": "AB887X", + "60302": "AB887X", + "60303": "AB887X", + "60304": "AB887X", + "60305": "AB887X", + "60399": "AB887X", + "60401": "AB887X", + "60402": "AB887X", + "60403": "AB887X", + "60404": "AB887X", + "60406": "AB887X", + "60407": "AB887X", + "60408": "AB887X", + "60409": "AB887X", + "60410": "AB887X", + "60411": "AB887X", + "60412": "AB887X", + "60415": "AB887X", + "60416": "AB887X", + "60417": "AB887X", + "60419": "AB887X", + "60420": "AB888X", + "60421": "AB887X", + "60422": "AB887X", + "60423": "AB887X", + "60424": "AB887X", + "60425": "AB887X", + "60426": "AB887X", + "60428": "AB887X", + "60429": "AB887X", + "60430": "AB887X", + "60431": "AB887X", + "60432": "AB887X", + "60433": "AB887X", + "60434": "AB887X", + "60435": "AB887X", + "60436": "AB887X", + "60437": "AB887X", + "60438": "AB887X", + "60439": "AB887X", + "60440": "AB887X", + "60441": "AB887X", + "60442": "AB887X", + "60443": "AB887X", + "60444": "AB887X", + "60445": "AB887X", + "60446": "AB887X", + "60447": "AB887X", + "60448": "AB887X", + "60449": "AB887X", + "60450": "AB887X", + "60451": "AB887X", + "60452": "AB887X", + "60453": "AB887X", + "60454": "AB887X", + "60455": "AB887X", + "60456": "AB887X", + "60457": "AB887X", + "60458": "AB887X", + "60459": "AB887X", + "60460": "AB888X", + "60461": "AB887X", + "60462": "AB887X", + "60463": "AB887X", + "60464": "AB887X", + "60465": "AB887X", + "60466": "AB887X", + "60467": "AB887X", + "60468": "AB887X", + "60469": "AB887X", + "60470": "AB887X", + "60471": "AB887X", + "60472": "AB887X", + "60473": "AB887X", + "60474": "AB887X", + "60475": "AB887X", + "60476": "AB887X", + "60477": "AB887X", + "60478": "AB887X", + "60479": "AB887X", + "60480": "AB887X", + "60481": "AB887X", + "60482": "AB887X", + "60483": "AB887X", + "60487": "AB887X", + "60490": "AB887X", + "60491": "AB887X", + "60499": "AB887X", + "60501": "AB887X", + "60502": "AB887X", + "60503": "AB887X", + "60504": "AB887X", + "60505": "AB887X", + "60506": "AB887X", + "60507": "AB887X", + "60510": "AB887X", + "60511": "AB887X", + "60512": "AB887X", + "60513": "AB887X", + "60514": "AB887X", + "60515": "AB887X", + "60516": "AB887X", + "60517": "AB887X", + "60518": "AB887X", + "60519": "AB887X", + "60520": "AB887X", + "60521": "AB887X", + "60522": "AB887X", + "60523": "AB887X", + "60525": "AB887X", + "60526": "AB887X", + "60527": "AB887X", + "60530": "AB888X", + "60531": "AB887X", + "60532": "AB887X", + "60534": "AB887X", + "60536": "AB887X", + "60537": "AB887X", + "60538": "AB887X", + "60539": "AB887X", + "60540": "AB887X", + "60541": "AB887X", + "60542": "AB887X", + "60543": "AB887X", + "60544": "AB887X", + "60545": "AB887X", + "60546": "AB887X", + "60548": "AB887X", + "60549": "AB887X", + "60550": "AB887X", + "60551": "AB887X", + "60552": "AB887X", + "60553": "AB887X", + "60554": "AB887X", + "60555": "AB887X", + "60556": "AB887X", + "60557": "AB887X", + "60558": "AB887X", + "60559": "AB887X", + "60560": "AB887X", + "60561": "AB887X", + "60563": "AB887X", + "60564": "AB887X", + "60565": "AB887X", + "60566": "AB887X", + "60567": "AB887X", + "60568": "AB887X", + "60570": "AB887X", + "60572": "AB887X", + "60585": "AB887X", + "60586": "AB887X", + "60597": "AB887X", + "60598": "AB887X", + "60599": "AB887X", + "60601": "AB887X", + "60602": "AB887X", + "60603": "AB887X", + "60604": "AB887X", + "60605": "AB887X", + "60606": "AB887X", + "60607": "AB887X", + "60608": "AB887X", + "60609": "AB887X", + "60610": "AB887X", + "60611": "AB887X", + "60612": "AB887X", + "60613": "AB887X", + "60614": "AB887X", + "60615": "AB887X", + "60616": "AB887X", + "60617": "AB887X", + "60618": "AB887X", + "60619": "AB887X", + "60620": "AB887X", + "60621": "AB887X", + "60622": "AB887X", + "60623": "AB887X", + "60624": "AB887X", + "60625": "AB887X", + "60626": "AB887X", + "60628": "AB887X", + "60629": "AB887X", + "60630": "AB887X", + "60631": "AB887X", + "60632": "AB887X", + "60633": "AB887X", + "60634": "AB887X", + "60636": "AB887X", + "60637": "AB887X", + "60638": "AB887X", + "60639": "AB887X", + "60640": "AB887X", + "60641": "AB887X", + "60643": "AB887X", + "60644": "AB887X", + "60645": "AB887X", + "60646": "AB887X", + "60647": "AB887X", + "60649": "AB887X", + "60651": "AB887X", + "60652": "AB887X", + "60653": "AB887X", + "60654": "AB887X", + "60655": "AB887X", + "60656": "AB887X", + "60657": "AB887X", + "60659": "AB887X", + "60660": "AB887X", + "60661": "AB887X", + "60663": "AB887X", + "60664": "AB887X", + "60666": "AB887X", + "60668": "AB887X", + "60669": "AB887X", + "60670": "AB887X", + "60673": "AB887X", + "60674": "AB887X", + "60675": "AB887X", + "60677": "AB887X", + "60678": "AB887X", + "60679": "AB887X", + "60680": "AB887X", + "60681": "AB887X", + "60682": "AB887X", + "60684": "AB887X", + "60685": "AB887X", + "60686": "AB887X", + "60687": "AB887X", + "60688": "AB887X", + "60689": "AB887X", + "60690": "AB887X", + "60691": "AB887X", + "60693": "AB887X", + "60694": "AB887X", + "60695": "AB887X", + "60696": "AB887X", + "60697": "AB887X", + "60699": "AB887X", + "60701": "AB887X", + "60706": "AB887X", + "60707": "AB887X", + "60712": "AB887X", + "60714": "AB887X", + "60803": "AB887X", + "60804": "AB887X", + "60805": "AB887X", + "60827": "AB887X", + "60901": "AB887X", + "60910": "AB887X", + "60911": "AB888X", + "60912": "AB888X", + "60913": "AB887X", + "60914": "AB887X", + "60915": "AB887X", + "60917": "AB887X", + "60918": "AB888X", + "60919": "AB888X", + "60920": "AB888X", + "60921": "AB888X", + "60922": "AB888X", + "60924": "AB888X", + "60926": "AB888X", + "60927": "AB888X", + "60928": "AB888X", + "60929": "AB888X", + "60930": "AB888X", + "60931": "AB888X", + "60932": "AB888X", + "60933": "AB888X", + "60934": "AB888X", + "60935": "AB887X", + "60936": "AB888X", + "60938": "AB888X", + "60939": "AB888X", + "60940": "AB887X", + "60941": "AB887X", + "60942": "AB888X", + "60944": "AB887X", + "60945": "AB888X", + "60946": "AB888X", + "60948": "AB888X", + "60949": "AB888X", + "60950": "AB887X", + "60951": "AB888X", + "60952": "AB888X", + "60953": "AB888X", + "60954": "AB887X", + "60955": "AB888X", + "60956": "AB888X", + "60957": "AB888X", + "60959": "AB888X", + "60960": "AB888X", + "60961": "AB887X", + "60962": "AB888X", + "60963": "AB888X", + "60964": "AB887X", + "60966": "AB888X", + "60967": "AB888X", + "60968": "AB888X", + "60969": "AB887X", + "60970": "AB888X", + "60973": "AB888X", + "60974": "AB888X", + "61001": "AB888X", + "61006": "AB888X", + "61007": "AB888X", + "61008": "AB887X", + "61010": "AB888X", + "61011": "AB887X", + "61012": "AB887X", + "61013": "AB887X", + "61014": "AB888X", + "61015": "AB888X", + "61016": "AB887X", + "61018": "AB887X", + "61019": "AB887X", + "61020": "AB888X", + "61021": "AB888X", + "61024": "AB887X", + "61025": "AB888X", + "61027": "AB887X", + "61028": "AB888X", + "61029": "AB887X", + "61030": "AB888X", + "61031": "AB888X", + "61032": "AB887X", + "61036": "AB888X", + "61037": "AB888X", + "61038": "AB889X", + "61039": "AB887X", + "61041": "AB888X", + "61042": "AB888X", + "61043": "AB887X", + "61044": "AB888X", + "61046": "AB888X", + "61047": "AB888X", + "61048": "AB888X", + "61049": "AB887X", + "61050": "AB887X", + "61051": "AB888X", + "61052": "AB887X", + "61053": "AB888X", + "61054": "AB888X", + "61057": "AB888X", + "61058": "AB888X", + "61059": "AB888X", + "61060": "AB887X", + "61061": "AB888X", + "61062": "AB888X", + "61063": "AB887X", + "61064": "AB888X", + "61065": "AB887X", + "61067": "AB887X", + "61068": "AB887X", + "61070": "AB887X", + "61071": "AB888X", + "61072": "AB887X", + "61073": "AB887X", + "61074": "AB888X", + "61075": "AB888X", + "61077": "AB887X", + "61078": "AB888X", + "61079": "AB887X", + "61080": "AB887X", + "61081": "AB888X", + "61084": "AB888X", + "61085": "AB888X", + "61087": "AB888X", + "61088": "AB887X", + "61089": "AB888X", + "61091": "AB888X", + "61101": "AB887X", + "61102": "AB887X", + "61103": "AB887X", + "61104": "AB887X", + "61105": "AB887X", + "61106": "AB887X", + "61107": "AB887X", + "61108": "AB887X", + "61109": "AB887X", + "61110": "AB887X", + "61111": "AB887X", + "61112": "AB887X", + "61114": "AB887X", + "61115": "AB887X", + "61125": "AB887X", + "61126": "AB887X", + "61130": "AB887X", + "61131": "AB887X", + "61132": "AB887X", + "61201": "AB888X", + "61204": "AB888X", + "61230": "AB888X", + "61231": "AB888X", + "61232": "AB888X", + "61233": "AB888X", + "61234": "AB888X", + "61235": "AB888X", + "61236": "AB888X", + "61237": "AB888X", + "61238": "AB888X", + "61239": "AB888X", + "61240": "AB888X", + "61241": "AB888X", + "61242": "AB888X", + "61243": "AB888X", + "61244": "AB888X", + "61250": "AB888X", + "61251": "AB888X", + "61252": "AB888X", + "61254": "AB888X", + "61256": "AB888X", + "61257": "AB888X", + "61258": "AB888X", + "61259": "AB888X", + "61260": "AB888X", + "61261": "AB888X", + "61262": "AB888X", + "61263": "AB888X", + "61264": "AB888X", + "61265": "AB888X", + "61266": "AB888X", + "61270": "AB888X", + "61272": "AB888X", + "61273": "AB888X", + "61274": "AB888X", + "61275": "AB888X", + "61276": "AB888X", + "61277": "AB888X", + "61278": "AB888X", + "61279": "AB888X", + "61281": "AB888X", + "61282": "AB888X", + "61283": "AB888X", + "61284": "AB888X", + "61285": "AB888X", + "61299": "AB888X", + "61301": "AB887X", + "61310": "AB888X", + "61311": "AB888X", + "61312": "AB888X", + "61313": "AB888X", + "61314": "AB888X", + "61315": "AB888X", + "61316": "AB887X", + "61317": "AB888X", + "61318": "AB888X", + "61319": "AB888X", + "61320": "AB888X", + "61321": "AB887X", + "61322": "AB888X", + "61323": "AB888X", + "61324": "AB888X", + "61325": "AB887X", + "61326": "AB888X", + "61327": "AB888X", + "61328": "AB888X", + "61329": "AB888X", + "61330": "AB888X", + "61331": "AB888X", + "61332": "AB887X", + "61333": "AB888X", + "61334": "AB887X", + "61335": "AB888X", + "61336": "AB888X", + "61337": "AB888X", + "61338": "AB888X", + "61340": "AB888X", + "61341": "AB887X", + "61342": "AB887X", + "61344": "AB888X", + "61345": "AB888X", + "61346": "AB888X", + "61348": "AB887X", + "61349": "AB888X", + "61350": "AB887X", + "61353": "AB888X", + "61354": "AB887X", + "61355": "AB888X", + "61356": "AB888X", + "61358": "AB887X", + "61359": "AB888X", + "61360": "AB887X", + "61361": "AB888X", + "61362": "AB888X", + "61363": "AB888X", + "61364": "AB887X", + "61367": "AB888X", + "61368": "AB888X", + "61369": "AB888X", + "61370": "AB887X", + "61371": "AB887X", + "61372": "AB887X", + "61373": "AB887X", + "61374": "AB888X", + "61375": "AB888X", + "61376": "AB888X", + "61377": "AB888X", + "61378": "AB888X", + "61379": "AB888X", + "61401": "AB888X", + "61402": "AB888X", + "61410": "AB888X", + "61411": "AB888X", + "61412": "AB888X", + "61413": "AB888X", + "61414": "AB888X", + "61415": "AB888X", + "61416": "AB888X", + "61417": "AB888X", + "61418": "AB888X", + "61419": "AB888X", + "61420": "AB888X", + "61421": "AB888X", + "61422": "AB888X", + "61423": "AB888X", + "61424": "AB888X", + "61425": "AB888X", + "61426": "AB888X", + "61427": "AB888X", + "61428": "AB888X", + "61430": "AB888X", + "61431": "AB888X", + "61432": "AB888X", + "61433": "AB888X", + "61434": "AB888X", + "61435": "AB888X", + "61436": "AB888X", + "61437": "AB888X", + "61438": "AB888X", + "61439": "AB888X", + "61440": "AB888X", + "61441": "AB888X", + "61442": "AB888X", + "61443": "AB888X", + "61447": "AB888X", + "61448": "AB888X", + "61449": "AB888X", + "61450": "AB888X", + "61451": "AB888X", + "61452": "AB888X", + "61453": "AB888X", + "61454": "AB888X", + "61455": "AB888X", + "61458": "AB888X", + "61459": "AB888X", + "61460": "AB888X", + "61462": "AB888X", + "61465": "AB888X", + "61466": "AB888X", + "61467": "AB888X", + "61468": "AB888X", + "61469": "AB888X", + "61470": "AB888X", + "61471": "AB888X", + "61472": "AB888X", + "61473": "AB888X", + "61474": "AB888X", + "61475": "AB888X", + "61476": "AB888X", + "61477": "AB888X", + "61478": "AB888X", + "61479": "AB888X", + "61480": "AB888X", + "61482": "AB888X", + "61483": "AB888X", + "61484": "AB888X", + "61485": "AB888X", + "61486": "AB888X", + "61488": "AB888X", + "61489": "AB888X", + "61490": "AB888X", + "61491": "AB888X", + "61501": "AB888X", + "61516": "AB888X", + "61517": "AB888X", + "61519": "AB888X", + "61520": "AB888X", + "61523": "AB888X", + "61524": "AB888X", + "61525": "AB888X", + "61526": "AB888X", + "61528": "AB888X", + "61529": "AB888X", + "61530": "AB888X", + "61531": "AB888X", + "61532": "AB888X", + "61533": "AB888X", + "61534": "AB888X", + "61535": "AB888X", + "61536": "AB888X", + "61537": "AB888X", + "61539": "AB888X", + "61540": "AB888X", + "61541": "AB888X", + "61542": "AB888X", + "61543": "AB888X", + "61544": "AB888X", + "61545": "AB888X", + "61546": "AB888X", + "61547": "AB888X", + "61548": "AB888X", + "61550": "AB888X", + "61552": "AB888X", + "61553": "AB888X", + "61554": "AB888X", + "61555": "AB888X", + "61558": "AB888X", + "61559": "AB888X", + "61560": "AB888X", + "61561": "AB888X", + "61562": "AB888X", + "61563": "AB888X", + "61564": "AB888X", + "61565": "AB888X", + "61567": "AB888X", + "61568": "AB888X", + "61569": "AB888X", + "61570": "AB888X", + "61571": "AB888X", + "61572": "AB888X", + "61601": "AB888X", + "61602": "AB888X", + "61603": "AB888X", + "61604": "AB888X", + "61605": "AB888X", + "61606": "AB888X", + "61607": "AB888X", + "61610": "AB888X", + "61611": "AB888X", + "61612": "AB888X", + "61613": "AB888X", + "61614": "AB888X", + "61615": "AB888X", + "61616": "AB888X", + "61619": "AB888X", + "61625": "AB888X", + "61629": "AB888X", + "61630": "AB888X", + "61633": "AB888X", + "61634": "AB888X", + "61635": "AB888X", + "61636": "AB888X", + "61637": "AB888X", + "61638": "AB888X", + "61639": "AB888X", + "61641": "AB888X", + "61643": "AB888X", + "61650": "AB888X", + "61651": "AB888X", + "61652": "AB888X", + "61653": "AB888X", + "61654": "AB888X", + "61655": "AB888X", + "61656": "AB888X", + "61701": "AB888X", + "61702": "AB888X", + "61704": "AB888X", + "61705": "AB888X", + "61709": "AB888X", + "61710": "AB888X", + "61720": "AB888X", + "61721": "AB888X", + "61722": "AB888X", + "61723": "AB888X", + "61724": "AB888X", + "61725": "AB888X", + "61726": "AB888X", + "61727": "AB888X", + "61728": "AB888X", + "61729": "AB888X", + "61730": "AB888X", + "61731": "AB888X", + "61732": "AB888X", + "61733": "AB888X", + "61734": "AB888X", + "61735": "AB888X", + "61736": "AB888X", + "61737": "AB888X", + "61738": "AB888X", + "61739": "AB888X", + "61740": "AB888X", + "61741": "AB888X", + "61742": "AB888X", + "61743": "AB888X", + "61744": "AB888X", + "61745": "AB888X", + "61747": "AB888X", + "61748": "AB888X", + "61749": "AB888X", + "61750": "AB888X", + "61751": "AB888X", + "61752": "AB888X", + "61753": "AB888X", + "61754": "AB888X", + "61755": "AB888X", + "61756": "AB888X", + "61758": "AB888X", + "61759": "AB888X", + "61760": "AB888X", + "61761": "AB888X", + "61764": "AB888X", + "61769": "AB888X", + "61770": "AB888X", + "61771": "AB888X", + "61772": "AB888X", + "61773": "AB888X", + "61774": "AB888X", + "61775": "AB888X", + "61776": "AB888X", + "61777": "AB888X", + "61778": "AB888X", + "61790": "AB888X", + "61791": "AB888X", + "61799": "AB888X", + "61801": "AB888X", + "61802": "AB888X", + "61803": "AB888X", + "61810": "AB888X", + "61811": "AB888X", + "61812": "AB888X", + "61813": "AB888X", + "61814": "AB888X", + "61815": "AB888X", + "61816": "AB888X", + "61817": "AB888X", + "61818": "AB888X", + "61820": "AB888X", + "61821": "AB888X", + "61822": "AB888X", + "61824": "AB888X", + "61825": "AB888X", + "61826": "AB888X", + "61830": "AB888X", + "61831": "AB888X", + "61832": "AB888X", + "61833": "AB888X", + "61834": "AB888X", + "61839": "AB888X", + "61840": "AB888X", + "61841": "AB888X", + "61842": "AB888X", + "61843": "AB888X", + "61844": "AB888X", + "61845": "AB888X", + "61846": "AB888X", + "61847": "AB888X", + "61848": "AB888X", + "61849": "AB888X", + "61850": "AB888X", + "61851": "AB888X", + "61852": "AB888X", + "61853": "AB888X", + "61854": "AB888X", + "61855": "AB888X", + "61856": "AB888X", + "61857": "AB888X", + "61858": "AB888X", + "61859": "AB888X", + "61862": "AB888X", + "61863": "AB888X", + "61864": "AB888X", + "61865": "AB888X", + "61866": "AB888X", + "61870": "AB888X", + "61871": "AB888X", + "61872": "AB888X", + "61873": "AB888X", + "61874": "AB888X", + "61875": "AB888X", + "61876": "AB888X", + "61877": "AB888X", + "61878": "AB888X", + "61880": "AB888X", + "61882": "AB888X", + "61883": "AB888X", + "61884": "AB888X", + "61910": "AB888X", + "61911": "AB888X", + "61912": "AB888X", + "61913": "AB888X", + "61914": "AB888X", + "61917": "AB888X", + "61919": "AB888X", + "61920": "AB888X", + "61924": "AB888X", + "61925": "AB888X", + "61928": "AB888X", + "61929": "AB888X", + "61930": "AB888X", + "61931": "AB888X", + "61932": "AB888X", + "61933": "AB888X", + "61936": "AB888X", + "61937": "AB888X", + "61938": "AB888X", + "61940": "AB888X", + "61941": "AB888X", + "61942": "AB888X", + "61943": "AB888X", + "61944": "AB888X", + "61949": "AB888X", + "61951": "AB888X", + "61953": "AB888X", + "61955": "AB888X", + "61956": "AB888X", + "61957": "AB888X", + "62001": "AB888X", + "62002": "AB888X", + "62006": "AB888X", + "62009": "AB888X", + "62010": "AB888X", + "62011": "AB888X", + "62012": "AB888X", + "62013": "AB888X", + "62014": "AB888X", + "62015": "AB888X", + "62016": "AB888X", + "62017": "AB888X", + "62018": "AB888X", + "62019": "AB888X", + "62021": "AB888X", + "62022": "AB888X", + "62023": "AB888X", + "62024": "AB888X", + "62025": "AB888X", + "62026": "AB888X", + "62027": "AB888X", + "62028": "AB888X", + "62030": "AB888X", + "62031": "AB888X", + "62032": "AB888X", + "62033": "AB888X", + "62034": "AB888X", + "62035": "AB888X", + "62036": "AB888X", + "62037": "AB888X", + "62040": "AB888X", + "62044": "AB888X", + "62045": "AB888X", + "62046": "AB888X", + "62047": "AB888X", + "62048": "AB888X", + "62049": "AB888X", + "62050": "AB888X", + "62051": "AB888X", + "62052": "AB888X", + "62053": "AB888X", + "62054": "AB888X", + "62056": "AB888X", + "62058": "AB888X", + "62059": "AB888X", + "62060": "AB888X", + "62061": "AB888X", + "62062": "AB888X", + "62063": "AB888X", + "62065": "AB888X", + "62067": "AB888X", + "62069": "AB888X", + "62070": "AB888X", + "62071": "AB888X", + "62074": "AB888X", + "62075": "AB888X", + "62076": "AB888X", + "62077": "AB888X", + "62078": "AB888X", + "62079": "AB888X", + "62080": "AB888X", + "62081": "AB888X", + "62082": "AB888X", + "62083": "AB888X", + "62084": "AB888X", + "62085": "AB888X", + "62086": "AB888X", + "62087": "AB888X", + "62088": "AB888X", + "62089": "AB888X", + "62090": "AB888X", + "62091": "AB888X", + "62092": "AB888X", + "62093": "AB888X", + "62094": "AB888X", + "62095": "AB888X", + "62097": "AB888X", + "62098": "AB888X", + "62201": "AB888X", + "62202": "AB888X", + "62203": "AB888X", + "62204": "AB888X", + "62205": "AB888X", + "62206": "AB888X", + "62207": "AB888X", + "62208": "AB888X", + "62214": "AB888X", + "62215": "AB888X", + "62216": "AB888X", + "62217": "AB888X", + "62218": "AB888X", + "62219": "AB888X", + "62220": "AB888X", + "62221": "AB888X", + "62222": "AB888X", + "62223": "AB888X", + "62224": "AB888X", + "62225": "AB888X", + "62226": "AB888X", + "62230": "AB888X", + "62231": "AB888X", + "62232": "AB888X", + "62233": "AB888X", + "62234": "AB888X", + "62236": "AB888X", + "62237": "AB888X", + "62238": "AB888X", + "62239": "AB888X", + "62240": "AB888X", + "62241": "AB888X", + "62242": "AB888X", + "62243": "AB888X", + "62244": "AB888X", + "62245": "AB888X", + "62246": "AB888X", + "62247": "AB888X", + "62248": "AB888X", + "62249": "AB888X", + "62250": "AB888X", + "62252": "AB888X", + "62253": "AB888X", + "62254": "AB888X", + "62255": "AB888X", + "62256": "AB888X", + "62257": "AB888X", + "62258": "AB888X", + "62259": "AB888X", + "62260": "AB888X", + "62261": "AB888X", + "62262": "AB888X", + "62263": "AB888X", + "62264": "AB888X", + "62265": "AB888X", + "62266": "AB888X", + "62268": "AB888X", + "62269": "AB888X", + "62271": "AB888X", + "62272": "AB888X", + "62273": "AB888X", + "62274": "AB888X", + "62275": "AB888X", + "62277": "AB888X", + "62278": "AB888X", + "62279": "AB888X", + "62280": "AB888X", + "62281": "AB888X", + "62282": "AB888X", + "62284": "AB888X", + "62285": "AB888X", + "62286": "AB888X", + "62288": "AB888X", + "62289": "AB888X", + "62292": "AB888X", + "62293": "AB888X", + "62294": "AB888X", + "62295": "AB888X", + "62297": "AB888X", + "62298": "AB888X", + "62301": "AB888X", + "62305": "AB888X", + "62306": "AB888X", + "62311": "AB888X", + "62312": "AB888X", + "62313": "AB888X", + "62314": "AB888X", + "62316": "AB888X", + "62319": "AB888X", + "62320": "AB888X", + "62321": "AB888X", + "62323": "AB888X", + "62324": "AB888X", + "62325": "AB888X", + "62326": "AB888X", + "62329": "AB888X", + "62330": "AB888X", + "62334": "AB888X", + "62336": "AB888X", + "62338": "AB888X", + "62339": "AB888X", + "62340": "AB888X", + "62341": "AB888X", + "62343": "AB888X", + "62344": "AB888X", + "62345": "AB888X", + "62346": "AB888X", + "62347": "AB888X", + "62348": "AB888X", + "62349": "AB888X", + "62351": "AB888X", + "62352": "AB888X", + "62353": "AB888X", + "62354": "AB888X", + "62355": "AB888X", + "62356": "AB888X", + "62357": "AB888X", + "62358": "AB888X", + "62359": "AB888X", + "62360": "AB888X", + "62361": "AB888X", + "62362": "AB888X", + "62363": "AB888X", + "62365": "AB888X", + "62366": "AB888X", + "62367": "AB888X", + "62370": "AB888X", + "62373": "AB888X", + "62374": "AB888X", + "62375": "AB888X", + "62376": "AB888X", + "62378": "AB888X", + "62379": "AB888X", + "62380": "AB888X", + "62401": "AB888X", + "62410": "AB888X", + "62411": "AB888X", + "62413": "AB888X", + "62414": "AB888X", + "62417": "AB888X", + "62418": "AB888X", + "62419": "AB888X", + "62420": "AB888X", + "62421": "AB888X", + "62422": "AB888X", + "62423": "AB888X", + "62424": "AB888X", + "62425": "AB888X", + "62426": "AB888X", + "62427": "AB888X", + "62428": "AB888X", + "62431": "AB888X", + "62432": "AB888X", + "62433": "AB888X", + "62434": "AB888X", + "62435": "AB888X", + "62436": "AB888X", + "62438": "AB888X", + "62439": "AB888X", + "62440": "AB888X", + "62441": "AB888X", + "62442": "AB888X", + "62443": "AB888X", + "62444": "AB888X", + "62445": "AB888X", + "62446": "AB888X", + "62447": "AB888X", + "62448": "AB888X", + "62449": "AB888X", + "62450": "AB888X", + "62451": "AB888X", + "62452": "AB888X", + "62454": "AB888X", + "62458": "AB888X", + "62459": "AB888X", + "62460": "AB888X", + "62461": "AB888X", + "62462": "AB888X", + "62463": "AB888X", + "62464": "AB888X", + "62465": "AB888X", + "62466": "AB888X", + "62467": "AB888X", + "62468": "AB888X", + "62469": "AB888X", + "62471": "AB888X", + "62473": "AB888X", + "62474": "AB888X", + "62475": "AB888X", + "62476": "AB888X", + "62477": "AB888X", + "62478": "AB888X", + "62479": "AB888X", + "62480": "AB888X", + "62481": "AB888X", + "62485": "AB888X", + "62501": "AB888X", + "62510": "AB888X", + "62512": "AB888X", + "62513": "AB888X", + "62514": "AB888X", + "62515": "AB888X", + "62517": "AB888X", + "62518": "AB888X", + "62519": "AB888X", + "62520": "AB888X", + "62521": "AB888X", + "62522": "AB888X", + "62523": "AB888X", + "62524": "AB888X", + "62525": "AB888X", + "62526": "AB888X", + "62530": "AB888X", + "62531": "AB888X", + "62532": "AB888X", + "62533": "AB888X", + "62534": "AB888X", + "62535": "AB888X", + "62536": "AB888X", + "62537": "AB888X", + "62538": "AB888X", + "62539": "AB888X", + "62540": "AB888X", + "62541": "AB888X", + "62543": "AB888X", + "62544": "AB888X", + "62545": "AB888X", + "62546": "AB888X", + "62547": "AB888X", + "62548": "AB888X", + "62549": "AB888X", + "62550": "AB888X", + "62551": "AB888X", + "62553": "AB888X", + "62554": "AB888X", + "62555": "AB888X", + "62556": "AB888X", + "62557": "AB888X", + "62558": "AB888X", + "62560": "AB888X", + "62561": "AB888X", + "62563": "AB888X", + "62565": "AB888X", + "62566": "AB888X", + "62567": "AB888X", + "62568": "AB888X", + "62570": "AB888X", + "62571": "AB888X", + "62572": "AB888X", + "62573": "AB888X", + "62601": "AB888X", + "62610": "AB888X", + "62611": "AB888X", + "62612": "AB888X", + "62613": "AB888X", + "62615": "AB888X", + "62617": "AB888X", + "62618": "AB888X", + "62621": "AB888X", + "62622": "AB888X", + "62624": "AB888X", + "62625": "AB888X", + "62626": "AB888X", + "62627": "AB888X", + "62628": "AB888X", + "62629": "AB888X", + "62630": "AB888X", + "62631": "AB888X", + "62633": "AB888X", + "62634": "AB888X", + "62635": "AB888X", + "62638": "AB888X", + "62639": "AB888X", + "62640": "AB888X", + "62642": "AB888X", + "62643": "AB888X", + "62644": "AB888X", + "62649": "AB888X", + "62650": "AB888X", + "62651": "AB888X", + "62655": "AB888X", + "62656": "AB888X", + "62659": "AB888X", + "62660": "AB888X", + "62661": "AB888X", + "62662": "AB888X", + "62663": "AB888X", + "62664": "AB888X", + "62665": "AB888X", + "62666": "AB888X", + "62667": "AB888X", + "62668": "AB888X", + "62670": "AB888X", + "62671": "AB888X", + "62672": "AB888X", + "62673": "AB888X", + "62674": "AB888X", + "62675": "AB888X", + "62677": "AB888X", + "62681": "AB888X", + "62682": "AB888X", + "62683": "AB888X", + "62684": "AB888X", + "62685": "AB888X", + "62688": "AB888X", + "62689": "AB888X", + "62690": "AB888X", + "62691": "AB888X", + "62692": "AB888X", + "62693": "AB888X", + "62694": "AB888X", + "62695": "AB888X", + "62701": "AB888X", + "62702": "AB888X", + "62703": "AB888X", + "62704": "AB888X", + "62705": "AB888X", + "62706": "AB888X", + "62707": "AB888X", + "62708": "AB888X", + "62711": "AB888X", + "62712": "AB888X", + "62713": "AB888X", + "62715": "AB888X", + "62716": "AB888X", + "62719": "AB888X", + "62721": "AB888X", + "62722": "AB888X", + "62723": "AB888X", + "62726": "AB888X", + "62736": "AB888X", + "62739": "AB888X", + "62746": "AB888X", + "62756": "AB888X", + "62757": "AB888X", + "62761": "AB888X", + "62762": "AB888X", + "62763": "AB888X", + "62764": "AB888X", + "62765": "AB888X", + "62766": "AB888X", + "62767": "AB888X", + "62769": "AB888X", + "62776": "AB888X", + "62777": "AB888X", + "62781": "AB888X", + "62786": "AB888X", + "62791": "AB888X", + "62794": "AB888X", + "62796": "AB888X", + "62801": "AB888X", + "62803": "AB888X", + "62805": "AB888X", + "62806": "AB888X", + "62807": "AB888X", + "62808": "AB888X", + "62809": "AB888X", + "62810": "AB888X", + "62811": "AB888X", + "62812": "AB888X", + "62814": "AB888X", + "62815": "AB888X", + "62816": "AB888X", + "62817": "AB888X", + "62818": "AB888X", + "62819": "AB888X", + "62820": "AB888X", + "62821": "AB888X", + "62822": "AB888X", + "62823": "AB888X", + "62824": "AB888X", + "62825": "AB888X", + "62827": "AB888X", + "62828": "AB888X", + "62829": "AB888X", + "62830": "AB888X", + "62831": "AB888X", + "62832": "AB888X", + "62833": "AB888X", + "62834": "AB888X", + "62835": "AB888X", + "62836": "AB888X", + "62837": "AB888X", + "62838": "AB888X", + "62839": "AB888X", + "62840": "AB888X", + "62841": "AB888X", + "62842": "AB888X", + "62843": "AB888X", + "62844": "AB888X", + "62846": "AB888X", + "62848": "AB888X", + "62849": "AB888X", + "62850": "AB888X", + "62851": "AB888X", + "62852": "AB888X", + "62853": "AB888X", + "62854": "AB888X", + "62855": "AB888X", + "62856": "AB888X", + "62857": "AB888X", + "62858": "AB888X", + "62859": "AB888X", + "62860": "AB888X", + "62861": "AB888X", + "62862": "AB888X", + "62863": "AB888X", + "62864": "AB888X", + "62865": "AB888X", + "62866": "AB888X", + "62867": "AB888X", + "62868": "AB888X", + "62869": "AB888X", + "62870": "AB888X", + "62871": "AB888X", + "62872": "AB888X", + "62874": "AB888X", + "62875": "AB888X", + "62876": "AB888X", + "62877": "AB888X", + "62878": "AB888X", + "62879": "AB888X", + "62880": "AB888X", + "62881": "AB888X", + "62882": "AB888X", + "62883": "AB888X", + "62884": "AB888X", + "62885": "AB888X", + "62886": "AB888X", + "62887": "AB888X", + "62888": "AB888X", + "62889": "AB888X", + "62890": "AB888X", + "62891": "AB888X", + "62892": "AB888X", + "62893": "AB888X", + "62894": "AB888X", + "62895": "AB888X", + "62896": "AB888X", + "62897": "AB888X", + "62898": "AB888X", + "62899": "AB888X", + "62901": "AB888X", + "62902": "AB888X", + "62903": "AB888X", + "62905": "AB888X", + "62906": "AB888X", + "62907": "AB888X", + "62908": "AB888X", + "62909": "AB888X", + "62910": "AB888X", + "62912": "AB888X", + "62914": "AB888X", + "62915": "AB888X", + "62916": "AB888X", + "62917": "AB888X", + "62918": "AB888X", + "62919": "AB888X", + "62920": "AB888X", + "62921": "AB888X", + "62922": "AB888X", + "62923": "AB888X", + "62924": "AB888X", + "62926": "AB888X", + "62927": "AB888X", + "62928": "AB888X", + "62930": "AB888X", + "62931": "AB888X", + "62932": "AB888X", + "62933": "AB888X", + "62934": "AB888X", + "62935": "AB888X", + "62938": "AB888X", + "62939": "AB888X", + "62940": "AB888X", + "62941": "AB888X", + "62942": "AB888X", + "62943": "AB888X", + "62946": "AB888X", + "62947": "AB888X", + "62948": "AB888X", + "62949": "AB888X", + "62950": "AB888X", + "62951": "AB888X", + "62952": "AB888X", + "62953": "AB888X", + "62954": "AB888X", + "62955": "AB888X", + "62956": "AB888X", + "62957": "AB888X", + "62958": "AB888X", + "62959": "AB888X", + "62960": "AB888X", + "62961": "AB888X", + "62962": "AB888X", + "62963": "AB888X", + "62964": "AB888X", + "62965": "AB888X", + "62966": "AB888X", + "62967": "AB888X", + "62969": "AB888X", + "62970": "AB888X", + "62971": "AB888X", + "62972": "AB888X", + "62973": "AB888X", + "62974": "AB888X", + "62975": "AB888X", + "62976": "AB888X", + "62977": "AB888X", + "62979": "AB888X", + "62982": "AB888X", + "62983": "AB888X", + "62984": "AB888X", + "62985": "AB888X", + "62987": "AB888X", + "62988": "AB888X", + "62990": "AB888X", + "62992": "AB888X", + "62993": "AB888X", + "62994": "AB888X", + "62995": "AB888X", + "62996": "AB888X", + "62997": "AB888X", + "62998": "AB888X", + "62999": "AB888X", + "63001": "AB888X", + "63005": "AB888X", + "63006": "AB888X", + "63010": "AB888X", + "63011": "AB888X", + "63012": "AB888X", + "63013": "AB888X", + "63014": "AB888X", + "63015": "AB888X", + "63016": "AB888X", + "63017": "AB888X", + "63019": "AB888X", + "63020": "AB888X", + "63021": "AB888X", + "63022": "AB888X", + "63023": "AB888X", + "63024": "AB888X", + "63025": "AB888X", + "63026": "AB888X", + "63028": "AB888X", + "63030": "AB888X", + "63031": "AB888X", + "63032": "AB888X", + "63033": "AB888X", + "63034": "AB888X", + "63036": "AB888X", + "63037": "AB888X", + "63038": "AB888X", + "63039": "AB888X", + "63040": "AB888X", + "63041": "AB888X", + "63042": "AB888X", + "63043": "AB888X", + "63044": "AB888X", + "63045": "AB888X", + "63047": "AB888X", + "63048": "AB888X", + "63049": "AB888X", + "63050": "AB888X", + "63051": "AB888X", + "63052": "AB888X", + "63053": "AB888X", + "63055": "AB888X", + "63056": "AB888X", + "63057": "AB888X", + "63060": "AB888X", + "63061": "AB888X", + "63065": "AB888X", + "63066": "AB888X", + "63068": "AB888X", + "63069": "AB888X", + "63070": "AB888X", + "63071": "AB888X", + "63072": "AB888X", + "63073": "AB888X", + "63074": "AB888X", + "63077": "AB888X", + "63079": "AB888X", + "63080": "AB888X", + "63084": "AB888X", + "63087": "AB888X", + "63088": "AB888X", + "63089": "AB888X", + "63090": "AB888X", + "63091": "AB888X", + "63099": "AB888X", + "63101": "AB888X", + "63102": "AB888X", + "63103": "AB888X", + "63104": "AB888X", + "63105": "AB888X", + "63106": "AB888X", + "63107": "AB888X", + "63108": "AB888X", + "63109": "AB888X", + "63110": "AB888X", + "63111": "AB888X", + "63112": "AB888X", + "63113": "AB888X", + "63114": "AB888X", + "63115": "AB888X", + "63116": "AB888X", + "63117": "AB888X", + "63118": "AB888X", + "63119": "AB888X", + "63120": "AB888X", + "63121": "AB888X", + "63122": "AB888X", + "63123": "AB888X", + "63124": "AB888X", + "63125": "AB888X", + "63126": "AB888X", + "63127": "AB888X", + "63128": "AB888X", + "63129": "AB888X", + "63130": "AB888X", + "63131": "AB888X", + "63132": "AB888X", + "63133": "AB888X", + "63134": "AB888X", + "63135": "AB888X", + "63136": "AB888X", + "63137": "AB888X", + "63138": "AB888X", + "63139": "AB888X", + "63140": "AB888X", + "63141": "AB888X", + "63143": "AB888X", + "63144": "AB888X", + "63145": "AB888X", + "63146": "AB888X", + "63147": "AB888X", + "63150": "AB888X", + "63151": "AB888X", + "63155": "AB888X", + "63156": "AB888X", + "63157": "AB888X", + "63158": "AB888X", + "63160": "AB888X", + "63163": "AB888X", + "63164": "AB888X", + "63166": "AB888X", + "63167": "AB888X", + "63169": "AB888X", + "63171": "AB888X", + "63177": "AB888X", + "63178": "AB888X", + "63179": "AB888X", + "63180": "AB888X", + "63182": "AB888X", + "63188": "AB888X", + "63190": "AB888X", + "63195": "AB888X", + "63196": "AB888X", + "63197": "AB888X", + "63198": "AB888X", + "63199": "AB888X", + "63301": "AB888X", + "63302": "AB888X", + "63303": "AB888X", + "63304": "AB888X", + "63330": "AB888X", + "63332": "AB888X", + "63333": "AB888X", + "63334": "AB888X", + "63336": "AB888X", + "63338": "AB888X", + "63339": "AB888X", + "63341": "AB888X", + "63342": "AB888X", + "63343": "AB888X", + "63344": "AB888X", + "63345": "AB888X", + "63346": "AB888X", + "63347": "AB888X", + "63348": "AB888X", + "63349": "AB888X", + "63350": "AB888X", + "63351": "AB888X", + "63352": "AB888X", + "63353": "AB888X", + "63357": "AB888X", + "63359": "AB888X", + "63361": "AB888X", + "63362": "AB888X", + "63363": "AB888X", + "63365": "AB888X", + "63366": "AB888X", + "63367": "AB888X", + "63368": "AB888X", + "63369": "AB888X", + "63370": "AB888X", + "63373": "AB888X", + "63376": "AB888X", + "63377": "AB888X", + "63378": "AB888X", + "63379": "AB888X", + "63381": "AB888X", + "63382": "AB888X", + "63383": "AB888X", + "63384": "AB888X", + "63385": "AB888X", + "63386": "AB888X", + "63387": "AB888X", + "63388": "AB888X", + "63389": "AB888X", + "63390": "AB888X", + "63401": "AB888X", + "63430": "AB888X", + "63431": "AB888X", + "63432": "AB888X", + "63433": "AB888X", + "63434": "AB888X", + "63435": "AB888X", + "63436": "AB888X", + "63437": "AB888X", + "63438": "AB888X", + "63439": "AB888X", + "63440": "AB888X", + "63441": "AB888X", + "63442": "AB888X", + "63443": "AB888X", + "63445": "AB888X", + "63446": "AB888X", + "63447": "AB888X", + "63448": "AB888X", + "63450": "AB888X", + "63451": "AB888X", + "63452": "AB888X", + "63453": "AB888X", + "63454": "AB888X", + "63456": "AB888X", + "63457": "AB888X", + "63458": "AB888X", + "63459": "AB888X", + "63460": "AB888X", + "63461": "AB888X", + "63462": "AB888X", + "63463": "AB888X", + "63464": "AB888X", + "63465": "AB888X", + "63466": "AB888X", + "63467": "AB888X", + "63468": "AB888X", + "63469": "AB888X", + "63471": "AB888X", + "63472": "AB888X", + "63473": "AB888X", + "63474": "AB888X", + "63501": "AB888X", + "63530": "AB888X", + "63531": "AB888X", + "63532": "AB888X", + "63533": "AB888X", + "63534": "AB888X", + "63535": "AB888X", + "63536": "AB888X", + "63537": "AB888X", + "63538": "AB888X", + "63539": "AB888X", + "63540": "AB888X", + "63541": "AB888X", + "63543": "AB888X", + "63544": "AB888X", + "63545": "AB888X", + "63546": "AB888X", + "63547": "AB888X", + "63548": "AB888X", + "63549": "AB888X", + "63551": "AB888X", + "63552": "AB888X", + "63555": "AB888X", + "63556": "AB888X", + "63557": "AB888X", + "63558": "AB888X", + "63559": "AB888X", + "63560": "AB888X", + "63561": "AB888X", + "63563": "AB888X", + "63565": "AB888X", + "63566": "AB888X", + "63567": "AB888X", + "63601": "AB888X", + "63620": "AB888X", + "63621": "AB888X", + "63622": "AB888X", + "63623": "AB888X", + "63624": "AB888X", + "63625": "AB888X", + "63626": "AB888X", + "63627": "AB888X", + "63628": "AB888X", + "63629": "AB888X", + "63630": "AB888X", + "63631": "AB888X", + "63632": "AB888X", + "63633": "AB888X", + "63636": "AB888X", + "63637": "AB888X", + "63638": "AB888X", + "63640": "AB888X", + "63645": "AB888X", + "63648": "AB888X", + "63650": "AB888X", + "63651": "AB888X", + "63653": "AB888X", + "63654": "AB888X", + "63655": "AB888X", + "63656": "AB888X", + "63660": "AB888X", + "63662": "AB888X", + "63663": "AB888X", + "63664": "AB888X", + "63665": "AB888X", + "63666": "AB888X", + "63670": "AB888X", + "63673": "AB888X", + "63674": "AB888X", + "63675": "AB888X", + "63701": "AB888X", + "63702": "AB888X", + "63703": "AB888X", + "63730": "AB888X", + "63732": "AB888X", + "63735": "AB888X", + "63736": "AB888X", + "63737": "AB888X", + "63738": "AB888X", + "63739": "AB888X", + "63740": "AB888X", + "63742": "AB888X", + "63743": "AB888X", + "63744": "AB888X", + "63745": "AB888X", + "63746": "AB888X", + "63747": "AB888X", + "63748": "AB888X", + "63750": "AB888X", + "63751": "AB888X", + "63752": "AB888X", + "63755": "AB888X", + "63758": "AB888X", + "63760": "AB888X", + "63763": "AB888X", + "63764": "AB888X", + "63766": "AB888X", + "63767": "AB888X", + "63769": "AB888X", + "63770": "AB888X", + "63771": "AB888X", + "63774": "AB888X", + "63775": "AB888X", + "63776": "AB888X", + "63778": "AB890X", + "63779": "AB890X", + "63780": "AB888X", + "63781": "AB888X", + "63782": "AB888X", + "63783": "AB888X", + "63784": "AB890X", + "63785": "AB888X", + "63787": "AB888X", + "63790": "AB890X", + "63801": "AB888X", + "63820": "AB888X", + "63821": "AB888X", + "63822": "AB888X", + "63823": "AB888X", + "63824": "AB888X", + "63825": "AB888X", + "63826": "AB888X", + "63827": "AB888X", + "63828": "AB888X", + "63829": "AB888X", + "63830": "AB888X", + "63833": "AB888X", + "63834": "AB888X", + "63837": "AB888X", + "63839": "AB888X", + "63840": "AB888X", + "63841": "AB888X", + "63845": "AB888X", + "63846": "AB888X", + "63847": "AB888X", + "63848": "AB888X", + "63849": "AB888X", + "63850": "AB888X", + "63851": "AB888X", + "63852": "AB888X", + "63853": "AB888X", + "63855": "AB888X", + "63857": "AB888X", + "63860": "AB888X", + "63862": "AB888X", + "63863": "AB888X", + "63866": "AB888X", + "63867": "AB888X", + "63868": "AB888X", + "63869": "AB888X", + "63870": "AB888X", + "63873": "AB888X", + "63874": "AB888X", + "63875": "AB888X", + "63876": "AB888X", + "63877": "AB888X", + "63878": "AB888X", + "63879": "AB888X", + "63880": "AB888X", + "63881": "AB888X", + "63882": "AB888X", + "63901": "AB888X", + "63902": "AB888X", + "63931": "AB888X", + "63932": "AB888X", + "63933": "AB888X", + "63934": "AB888X", + "63935": "AB888X", + "63936": "AB888X", + "63937": "AB888X", + "63938": "AB888X", + "63939": "AB888X", + "63940": "AB888X", + "63941": "AB888X", + "63942": "AB888X", + "63943": "AB888X", + "63944": "AB888X", + "63945": "AB888X", + "63950": "AB888X", + "63951": "AB888X", + "63952": "AB888X", + "63953": "AB888X", + "63954": "AB888X", + "63955": "AB888X", + "63956": "AB888X", + "63957": "AB888X", + "63960": "AB888X", + "63961": "AB888X", + "63962": "AB888X", + "63963": "AB888X", + "63964": "AB888X", + "63965": "AB888X", + "63966": "AB888X", + "63967": "AB888X", + "64001": "AB888X", + "64011": "AB888X", + "64012": "AB891X", + "64013": "AB888X", + "64014": "AB888X", + "64015": "AB888X", + "64016": "AB888X", + "64017": "AB888X", + "64018": "AB888X", + "64019": "AB888X", + "64020": "AB888X", + "64021": "AB888X", + "64022": "AB888X", + "64024": "AB888X", + "64028": "AB888X", + "64029": "AB888X", + "64030": "AB888X", + "64034": "AB888X", + "64035": "AB888X", + "64036": "AB888X", + "64037": "AB888X", + "64040": "AB888X", + "64048": "AB888X", + "64050": "AB888X", + "64051": "AB888X", + "64052": "AB888X", + "64053": "AB888X", + "64054": "AB888X", + "64055": "AB888X", + "64056": "AB888X", + "64057": "AB888X", + "64058": "AB888X", + "64060": "AB888X", + "64061": "AB888X", + "64062": "AB888X", + "64063": "AB888X", + "64064": "AB888X", + "64065": "AB888X", + "64066": "AB888X", + "64067": "AB888X", + "64068": "AB888X", + "64069": "AB888X", + "64070": "AB888X", + "64071": "AB888X", + "64072": "AB888X", + "64073": "AB888X", + "64074": "AB888X", + "64075": "AB888X", + "64076": "AB888X", + "64077": "AB888X", + "64078": "AB888X", + "64079": "AB888X", + "64080": "AB888X", + "64081": "AB888X", + "64082": "AB888X", + "64083": "AB888X", + "64084": "AB888X", + "64085": "AB888X", + "64086": "AB888X", + "64088": "AB888X", + "64089": "AB888X", + "64090": "AB888X", + "64092": "AB888X", + "64093": "AB888X", + "64096": "AB888X", + "64097": "AB888X", + "64098": "AB888X", + "64101": "AB888X", + "64102": "AB888X", + "64105": "AB888X", + "64106": "AB888X", + "64108": "AB888X", + "64109": "AB888X", + "64110": "AB888X", + "64111": "AB888X", + "64112": "AB888X", + "64113": "AB888X", + "64114": "AB888X", + "64116": "AB888X", + "64117": "AB888X", + "64118": "AB888X", + "64119": "AB888X", + "64120": "AB888X", + "64121": "AB888X", + "64123": "AB888X", + "64124": "AB888X", + "64125": "AB888X", + "64126": "AB888X", + "64127": "AB888X", + "64128": "AB888X", + "64129": "AB888X", + "64130": "AB888X", + "64131": "AB888X", + "64132": "AB888X", + "64133": "AB888X", + "64134": "AB888X", + "64136": "AB888X", + "64137": "AB888X", + "64138": "AB888X", + "64139": "AB888X", + "64141": "AB888X", + "64144": "AB888X", + "64145": "AB888X", + "64146": "AB888X", + "64147": "AB888X", + "64148": "AB888X", + "64149": "AB888X", + "64150": "AB888X", + "64151": "AB888X", + "64152": "AB888X", + "64153": "AB888X", + "64154": "AB888X", + "64155": "AB888X", + "64156": "AB888X", + "64157": "AB888X", + "64158": "AB888X", + "64161": "AB888X", + "64163": "AB888X", + "64164": "AB888X", + "64165": "AB888X", + "64166": "AB888X", + "64167": "AB888X", + "64168": "AB888X", + "64170": "AB888X", + "64171": "AB888X", + "64172": "AB888X", + "64179": "AB888X", + "64180": "AB888X", + "64183": "AB888X", + "64184": "AB888X", + "64185": "AB888X", + "64187": "AB888X", + "64188": "AB888X", + "64190": "AB888X", + "64191": "AB888X", + "64192": "AB888X", + "64193": "AB888X", + "64194": "AB888X", + "64195": "AB888X", + "64196": "AB888X", + "64197": "AB888X", + "64198": "AB888X", + "64199": "AB888X", + "64401": "AB888X", + "64402": "AB888X", + "64420": "AB888X", + "64421": "AB888X", + "64422": "AB888X", + "64423": "AB888X", + "64424": "AB888X", + "64425": "AB888X", + "64426": "AB888X", + "64427": "AB888X", + "64428": "AB888X", + "64429": "AB888X", + "64430": "AB888X", + "64431": "AB888X", + "64432": "AB888X", + "64433": "AB888X", + "64434": "AB888X", + "64436": "AB888X", + "64437": "AB888X", + "64438": "AB888X", + "64439": "AB888X", + "64440": "AB888X", + "64441": "AB888X", + "64442": "AB888X", + "64443": "AB888X", + "64444": "AB888X", + "64445": "AB888X", + "64446": "AB888X", + "64447": "AB888X", + "64448": "AB888X", + "64449": "AB888X", + "64451": "AB888X", + "64453": "AB888X", + "64454": "AB888X", + "64455": "AB888X", + "64456": "AB888X", + "64457": "AB888X", + "64458": "AB888X", + "64459": "AB888X", + "64461": "AB888X", + "64463": "AB888X", + "64465": "AB888X", + "64466": "AB888X", + "64467": "AB888X", + "64468": "AB888X", + "64469": "AB888X", + "64470": "AB888X", + "64471": "AB888X", + "64473": "AB888X", + "64474": "AB888X", + "64475": "AB888X", + "64476": "AB888X", + "64477": "AB888X", + "64479": "AB888X", + "64480": "AB888X", + "64481": "AB888X", + "64482": "AB888X", + "64483": "AB888X", + "64484": "AB888X", + "64485": "AB888X", + "64486": "AB888X", + "64487": "AB888X", + "64489": "AB888X", + "64490": "AB888X", + "64491": "AB888X", + "64492": "AB888X", + "64493": "AB888X", + "64494": "AB888X", + "64496": "AB888X", + "64497": "AB888X", + "64498": "AB888X", + "64499": "AB888X", + "64501": "AB888X", + "64502": "AB888X", + "64503": "AB888X", + "64504": "AB888X", + "64505": "AB888X", + "64506": "AB888X", + "64507": "AB888X", + "64508": "AB888X", + "64601": "AB888X", + "64620": "AB888X", + "64622": "AB888X", + "64623": "AB888X", + "64624": "AB888X", + "64625": "AB888X", + "64628": "AB888X", + "64630": "AB888X", + "64631": "AB888X", + "64632": "AB888X", + "64633": "AB888X", + "64635": "AB888X", + "64636": "AB888X", + "64637": "AB888X", + "64638": "AB888X", + "64639": "AB888X", + "64640": "AB888X", + "64641": "AB888X", + "64642": "AB888X", + "64643": "AB888X", + "64644": "AB888X", + "64645": "AB888X", + "64646": "AB888X", + "64647": "AB888X", + "64648": "AB888X", + "64649": "AB888X", + "64650": "AB888X", + "64651": "AB888X", + "64652": "AB888X", + "64653": "AB888X", + "64654": "AB888X", + "64655": "AB888X", + "64656": "AB888X", + "64657": "AB888X", + "64658": "AB888X", + "64659": "AB888X", + "64660": "AB888X", + "64661": "AB888X", + "64664": "AB888X", + "64667": "AB888X", + "64668": "AB888X", + "64670": "AB888X", + "64671": "AB888X", + "64672": "AB888X", + "64673": "AB888X", + "64674": "AB888X", + "64676": "AB888X", + "64679": "AB888X", + "64680": "AB888X", + "64681": "AB888X", + "64682": "AB888X", + "64683": "AB888X", + "64686": "AB888X", + "64688": "AB888X", + "64689": "AB888X", + "64701": "AB888X", + "64720": "AB888X", + "64722": "AB888X", + "64723": "AB888X", + "64724": "AB888X", + "64725": "AB888X", + "64726": "AB888X", + "64728": "AB890X", + "64730": "AB888X", + "64733": "AB888X", + "64734": "AB888X", + "64735": "AB888X", + "64738": "AB891X", + "64739": "AB888X", + "64740": "AB888X", + "64741": "AB890X", + "64742": "AB888X", + "64743": "AB888X", + "64744": "AB890X", + "64745": "AB888X", + "64746": "AB888X", + "64747": "AB888X", + "64748": "AB890X", + "64750": "AB890X", + "64752": "AB888X", + "64755": "AB890X", + "64756": "AB891X", + "64759": "AB890X", + "64761": "AB888X", + "64762": "AB890X", + "64763": "AB888X", + "64765": "AB890X", + "64766": "AB890X", + "64767": "AB890X", + "64769": "AB890X", + "64770": "AB888X", + "64771": "AB890X", + "64772": "AB890X", + "64776": "AB888X", + "64778": "AB890X", + "64779": "AB888X", + "64780": "AB888X", + "64781": "AB888X", + "64783": "AB890X", + "64784": "AB890X", + "64788": "AB888X", + "64789": "AB888X", + "64790": "AB890X", + "64801": "AB890X", + "64802": "AB890X", + "64803": "AB890X", + "64804": "AB890X", + "64830": "AB890X", + "64831": "AB890X", + "64832": "AB890X", + "64833": "AB890X", + "64834": "AB890X", + "64835": "AB890X", + "64836": "AB890X", + "64840": "AB890X", + "64841": "AB890X", + "64842": "AB890X", + "64843": "AB890X", + "64844": "AB890X", + "64847": "AB890X", + "64848": "AB891X", + "64849": "AB890X", + "64850": "AB890X", + "64853": "AB890X", + "64854": "AB890X", + "64855": "AB890X", + "64856": "AB890X", + "64857": "AB890X", + "64858": "AB890X", + "64859": "AB890X", + "64861": "AB890X", + "64862": "AB890X", + "64863": "AB890X", + "64864": "AB890X", + "64865": "AB890X", + "64866": "AB890X", + "64867": "AB890X", + "64868": "AB890X", + "64869": "AB890X", + "64870": "AB890X", + "64873": "AB890X", + "64874": "AB891X", + "64944": "AB888X", + "64999": "AB888X", + "65001": "AB888X", + "65010": "AB888X", + "65011": "AB888X", + "65013": "AB888X", + "65014": "AB888X", + "65016": "AB888X", + "65017": "AB891X", + "65018": "AB888X", + "65020": "AB891X", + "65023": "AB888X", + "65024": "AB888X", + "65025": "AB888X", + "65026": "AB891X", + "65032": "AB888X", + "65034": "AB888X", + "65035": "AB888X", + "65036": "AB888X", + "65037": "AB888X", + "65038": "AB891X", + "65039": "AB888X", + "65040": "AB891X", + "65041": "AB888X", + "65042": "AB888X", + "65043": "AB888X", + "65046": "AB888X", + "65047": "AB891X", + "65048": "AB888X", + "65049": "AB891X", + "65050": "AB888X", + "65051": "AB888X", + "65052": "AB891X", + "65053": "AB888X", + "65054": "AB888X", + "65055": "AB888X", + "65058": "AB888X", + "65059": "AB888X", + "65061": "AB888X", + "65062": "AB888X", + "65063": "AB888X", + "65064": "AB891X", + "65065": "AB891X", + "65066": "AB888X", + "65067": "AB888X", + "65068": "AB888X", + "65069": "AB888X", + "65072": "AB891X", + "65074": "AB888X", + "65075": "AB891X", + "65076": "AB888X", + "65077": "AB888X", + "65078": "AB888X", + "65079": "AB891X", + "65080": "AB888X", + "65081": "AB888X", + "65082": "AB891X", + "65083": "AB891X", + "65084": "AB888X", + "65085": "AB888X", + "65101": "AB888X", + "65102": "AB888X", + "65103": "AB888X", + "65104": "AB888X", + "65105": "AB888X", + "65106": "AB888X", + "65107": "AB888X", + "65108": "AB888X", + "65109": "AB888X", + "65110": "AB888X", + "65111": "AB888X", + "65201": "AB888X", + "65202": "AB888X", + "65203": "AB888X", + "65205": "AB888X", + "65211": "AB888X", + "65212": "AB888X", + "65215": "AB888X", + "65216": "AB888X", + "65217": "AB888X", + "65218": "AB888X", + "65230": "AB888X", + "65231": "AB888X", + "65232": "AB888X", + "65233": "AB888X", + "65236": "AB888X", + "65237": "AB888X", + "65239": "AB888X", + "65240": "AB888X", + "65243": "AB888X", + "65244": "AB888X", + "65246": "AB888X", + "65247": "AB888X", + "65248": "AB888X", + "65250": "AB888X", + "65251": "AB888X", + "65254": "AB888X", + "65255": "AB888X", + "65256": "AB888X", + "65257": "AB888X", + "65258": "AB888X", + "65259": "AB888X", + "65260": "AB888X", + "65261": "AB888X", + "65262": "AB888X", + "65263": "AB888X", + "65264": "AB888X", + "65265": "AB888X", + "65270": "AB888X", + "65274": "AB888X", + "65275": "AB888X", + "65276": "AB888X", + "65278": "AB888X", + "65279": "AB888X", + "65280": "AB888X", + "65281": "AB888X", + "65282": "AB888X", + "65283": "AB888X", + "65284": "AB888X", + "65285": "AB888X", + "65286": "AB888X", + "65287": "AB888X", + "65299": "AB888X", + "65301": "AB888X", + "65302": "AB888X", + "65305": "AB888X", + "65320": "AB888X", + "65321": "AB888X", + "65322": "AB888X", + "65323": "AB888X", + "65324": "AB891X", + "65325": "AB891X", + "65326": "AB891X", + "65327": "AB888X", + "65329": "AB888X", + "65330": "AB888X", + "65332": "AB888X", + "65333": "AB888X", + "65334": "AB888X", + "65335": "AB888X", + "65336": "AB888X", + "65337": "AB888X", + "65338": "AB891X", + "65339": "AB888X", + "65340": "AB888X", + "65344": "AB888X", + "65345": "AB888X", + "65347": "AB888X", + "65348": "AB888X", + "65349": "AB888X", + "65350": "AB888X", + "65351": "AB888X", + "65354": "AB888X", + "65355": "AB888X", + "65360": "AB888X", + "65401": "AB888X", + "65402": "AB888X", + "65409": "AB888X", + "65423": "AB891X", + "65436": "AB888X", + "65438": "AB891X", + "65439": "AB888X", + "65440": "AB888X", + "65441": "AB888X", + "65443": "AB888X", + "65444": "AB891X", + "65446": "AB888X", + "65449": "AB888X", + "65452": "AB891X", + "65453": "AB888X", + "65456": "AB888X", + "65457": "AB891X", + "65459": "AB891X", + "65461": "AB888X", + "65462": "AB888X", + "65463": "AB891X", + "65464": "AB891X", + "65466": "AB891X", + "65468": "AB891X", + "65470": "AB891X", + "65473": "AB891X", + "65479": "AB891X", + "65483": "AB891X", + "65484": "AB891X", + "65486": "AB891X", + "65501": "AB888X", + "65529": "AB891X", + "65532": "AB888X", + "65534": "AB891X", + "65535": "AB888X", + "65536": "AB891X", + "65541": "AB888X", + "65542": "AB891X", + "65543": "AB891X", + "65546": "AB891X", + "65548": "AB891X", + "65550": "AB888X", + "65552": "AB891X", + "65555": "AB891X", + "65556": "AB891X", + "65557": "AB891X", + "65559": "AB888X", + "65560": "AB888X", + "65564": "AB891X", + "65565": "AB888X", + "65566": "AB888X", + "65567": "AB891X", + "65570": "AB891X", + "65571": "AB891X", + "65580": "AB888X", + "65582": "AB888X", + "65583": "AB891X", + "65584": "AB891X", + "65586": "AB888X", + "65588": "AB891X", + "65589": "AB891X", + "65590": "AB891X", + "65591": "AB891X", + "65601": "AB891X", + "65603": "AB891X", + "65604": "AB891X", + "65605": "AB891X", + "65606": "AB891X", + "65607": "AB891X", + "65608": "AB891X", + "65609": "AB891X", + "65610": "AB891X", + "65611": "AB891X", + "65612": "AB891X", + "65613": "AB891X", + "65614": "AB891X", + "65615": "AB891X", + "65616": "AB891X", + "65617": "AB891X", + "65618": "AB891X", + "65619": "AB891X", + "65620": "AB891X", + "65622": "AB891X", + "65623": "AB891X", + "65624": "AB891X", + "65625": "AB891X", + "65626": "AB891X", + "65627": "AB891X", + "65629": "AB891X", + "65630": "AB891X", + "65631": "AB891X", + "65632": "AB891X", + "65633": "AB891X", + "65634": "AB891X", + "65635": "AB891X", + "65636": "AB891X", + "65637": "AB891X", + "65638": "AB891X", + "65640": "AB891X", + "65641": "AB891X", + "65644": "AB891X", + "65645": "AB891X", + "65646": "AB891X", + "65647": "AB891X", + "65648": "AB891X", + "65649": "AB891X", + "65650": "AB891X", + "65652": "AB891X", + "65653": "AB891X", + "65654": "AB891X", + "65655": "AB891X", + "65656": "AB891X", + "65657": "AB891X", + "65658": "AB891X", + "65660": "AB891X", + "65661": "AB891X", + "65662": "AB891X", + "65663": "AB891X", + "65664": "AB891X", + "65666": "AB891X", + "65667": "AB891X", + "65668": "AB891X", + "65669": "AB891X", + "65672": "AB891X", + "65673": "AB891X", + "65674": "AB891X", + "65675": "AB891X", + "65676": "AB891X", + "65679": "AB891X", + "65680": "AB891X", + "65681": "AB891X", + "65682": "AB890X", + "65685": "AB891X", + "65686": "AB891X", + "65688": "AB891X", + "65689": "AB891X", + "65690": "AB891X", + "65692": "AB891X", + "65701": "AB891X", + "65702": "AB891X", + "65704": "AB891X", + "65705": "AB891X", + "65706": "AB891X", + "65707": "AB891X", + "65708": "AB891X", + "65710": "AB891X", + "65711": "AB891X", + "65712": "AB891X", + "65713": "AB891X", + "65714": "AB891X", + "65715": "AB891X", + "65717": "AB891X", + "65720": "AB891X", + "65721": "AB891X", + "65722": "AB891X", + "65723": "AB890X", + "65724": "AB891X", + "65725": "AB891X", + "65726": "AB891X", + "65727": "AB891X", + "65728": "AB891X", + "65729": "AB891X", + "65730": "AB890X", + "65731": "AB891X", + "65732": "AB891X", + "65733": "AB891X", + "65734": "AB891X", + "65735": "AB891X", + "65737": "AB891X", + "65738": "AB891X", + "65739": "AB891X", + "65740": "AB891X", + "65741": "AB891X", + "65742": "AB891X", + "65744": "AB891X", + "65745": "AB891X", + "65746": "AB891X", + "65747": "AB891X", + "65752": "AB891X", + "65753": "AB891X", + "65754": "AB891X", + "65755": "AB891X", + "65756": "AB891X", + "65757": "AB891X", + "65759": "AB891X", + "65760": "AB891X", + "65761": "AB891X", + "65762": "AB891X", + "65764": "AB891X", + "65765": "AB891X", + "65766": "AB891X", + "65767": "AB891X", + "65768": "AB891X", + "65769": "AB891X", + "65770": "AB891X", + "65771": "AB891X", + "65772": "AB891X", + "65773": "AB891X", + "65774": "AB891X", + "65775": "AB891X", + "65776": "AB891X", + "65777": "AB887X", + "65778": "AB891X", + "65779": "AB891X", + "65781": "AB891X", + "65783": "AB891X", + "65784": "AB891X", + "65785": "AB891X", + "65786": "AB891X", + "65787": "AB891X", + "65788": "AB891X", + "65789": "AB891X", + "65790": "AB891X", + "65791": "AB891X", + "65793": "AB891X", + "65801": "AB891X", + "65802": "AB891X", + "65803": "AB891X", + "65804": "AB891X", + "65805": "AB891X", + "65806": "AB891X", + "65807": "AB891X", + "65808": "AB891X", + "65809": "AB891X", + "65810": "AB891X", + "65814": "AB891X", + "65817": "AB891X", + "65842": "AB891X", + "65875": "AB891X", + "65890": "AB891X", + "65897": "AB891X", + "65898": "AB891X", + "65899": "AB891X", + "66002": "AB888X", + "66006": "AB888X", + "66007": "AB888X", + "66008": "AB888X", + "66010": "AB888X", + "66012": "AB888X", + "66013": "AB888X", + "66014": "AB888X", + "66015": "AB890X", + "66016": "AB888X", + "66017": "AB888X", + "66018": "AB888X", + "66019": "AB888X", + "66020": "AB888X", + "66021": "AB888X", + "66023": "AB888X", + "66024": "AB888X", + "66025": "AB888X", + "66026": "AB888X", + "66027": "AB888X", + "66030": "AB888X", + "66031": "AB888X", + "66032": "AB888X", + "66033": "AB888X", + "66035": "AB888X", + "66036": "AB888X", + "66039": "AB890X", + "66040": "AB888X", + "66041": "AB888X", + "66042": "AB888X", + "66043": "AB888X", + "66044": "AB888X", + "66045": "AB888X", + "66046": "AB888X", + "66047": "AB888X", + "66048": "AB888X", + "66049": "AB888X", + "66050": "AB888X", + "66051": "AB888X", + "66052": "AB888X", + "66053": "AB888X", + "66054": "AB888X", + "66056": "AB888X", + "66058": "AB888X", + "66060": "AB888X", + "66061": "AB888X", + "66062": "AB888X", + "66063": "AB888X", + "66064": "AB888X", + "66066": "AB888X", + "66067": "AB888X", + "66070": "AB888X", + "66071": "AB888X", + "66072": "AB888X", + "66073": "AB888X", + "66075": "AB888X", + "66076": "AB888X", + "66077": "AB888X", + "66078": "AB888X", + "66079": "AB888X", + "66080": "AB888X", + "66083": "AB888X", + "66085": "AB888X", + "66086": "AB888X", + "66087": "AB888X", + "66088": "AB888X", + "66090": "AB888X", + "66091": "AB890X", + "66092": "AB888X", + "66093": "AB890X", + "66094": "AB888X", + "66095": "AB888X", + "66097": "AB888X", + "66101": "AB888X", + "66102": "AB888X", + "66103": "AB888X", + "66104": "AB888X", + "66105": "AB888X", + "66106": "AB888X", + "66109": "AB888X", + "66110": "AB888X", + "66111": "AB888X", + "66112": "AB888X", + "66113": "AB888X", + "66115": "AB888X", + "66117": "AB888X", + "66118": "AB888X", + "66119": "AB888X", + "66160": "AB888X", + "66201": "AB888X", + "66202": "AB888X", + "66203": "AB888X", + "66204": "AB888X", + "66205": "AB888X", + "66206": "AB888X", + "66207": "AB888X", + "66208": "AB888X", + "66209": "AB888X", + "66210": "AB888X", + "66211": "AB888X", + "66212": "AB888X", + "66213": "AB888X", + "66214": "AB888X", + "66215": "AB888X", + "66216": "AB888X", + "66217": "AB888X", + "66218": "AB888X", + "66219": "AB888X", + "66220": "AB888X", + "66221": "AB888X", + "66222": "AB888X", + "66223": "AB888X", + "66224": "AB888X", + "66225": "AB888X", + "66226": "AB888X", + "66227": "AB888X", + "66250": "AB888X", + "66251": "AB888X", + "66276": "AB888X", + "66279": "AB888X", + "66282": "AB888X", + "66283": "AB888X", + "66285": "AB888X", + "66286": "AB888X", + "66401": "AB888X", + "66402": "AB888X", + "66403": "AB888X", + "66404": "AB888X", + "66406": "AB888X", + "66407": "AB888X", + "66408": "AB888X", + "66409": "AB888X", + "66411": "AB888X", + "66412": "AB888X", + "66413": "AB888X", + "66414": "AB888X", + "66415": "AB888X", + "66416": "AB888X", + "66417": "AB888X", + "66418": "AB888X", + "66419": "AB888X", + "66420": "AB888X", + "66422": "AB888X", + "66423": "AB888X", + "66424": "AB888X", + "66425": "AB888X", + "66426": "AB888X", + "66427": "AB888X", + "66428": "AB888X", + "66429": "AB888X", + "66431": "AB888X", + "66432": "AB888X", + "66434": "AB888X", + "66436": "AB888X", + "66438": "AB888X", + "66439": "AB888X", + "66440": "AB888X", + "66441": "AB888X", + "66442": "AB888X", + "66449": "AB888X", + "66451": "AB888X", + "66501": "AB888X", + "66502": "AB888X", + "66503": "AB888X", + "66505": "AB888X", + "66506": "AB888X", + "66507": "AB888X", + "66508": "AB888X", + "66509": "AB888X", + "66510": "AB888X", + "66512": "AB888X", + "66514": "AB888X", + "66515": "AB888X", + "66516": "AB888X", + "66517": "AB888X", + "66518": "AB888X", + "66520": "AB888X", + "66521": "AB888X", + "66522": "AB888X", + "66523": "AB888X", + "66524": "AB888X", + "66526": "AB888X", + "66527": "AB888X", + "66528": "AB888X", + "66531": "AB888X", + "66532": "AB888X", + "66533": "AB888X", + "66534": "AB888X", + "66535": "AB888X", + "66536": "AB888X", + "66537": "AB888X", + "66538": "AB888X", + "66539": "AB888X", + "66540": "AB888X", + "66541": "AB888X", + "66542": "AB888X", + "66543": "AB888X", + "66544": "AB888X", + "66546": "AB888X", + "66547": "AB888X", + "66548": "AB888X", + "66549": "AB888X", + "66550": "AB888X", + "66552": "AB888X", + "66554": "AB888X", + "66601": "AB888X", + "66603": "AB888X", + "66604": "AB888X", + "66605": "AB888X", + "66606": "AB888X", + "66607": "AB888X", + "66608": "AB888X", + "66609": "AB888X", + "66610": "AB888X", + "66611": "AB888X", + "66612": "AB888X", + "66614": "AB888X", + "66615": "AB888X", + "66616": "AB888X", + "66617": "AB888X", + "66618": "AB888X", + "66619": "AB888X", + "66620": "AB888X", + "66621": "AB888X", + "66622": "AB888X", + "66624": "AB888X", + "66625": "AB888X", + "66626": "AB888X", + "66628": "AB888X", + "66629": "AB888X", + "66636": "AB888X", + "66637": "AB888X", + "66642": "AB888X", + "66647": "AB888X", + "66652": "AB888X", + "66653": "AB888X", + "66667": "AB888X", + "66675": "AB888X", + "66683": "AB888X", + "66692": "AB888X", + "66699": "AB888X", + "66701": "AB888X", + "66710": "AB888X", + "66711": "AB888X", + "66712": "AB888X", + "66713": "AB888X", + "66714": "AB888X", + "66716": "AB888X", + "66717": "AB888X", + "66720": "AB888X", + "66724": "AB888X", + "66725": "AB888X", + "66728": "AB888X", + "66732": "AB888X", + "66733": "AB888X", + "66734": "AB888X", + "66735": "AB888X", + "66736": "AB888X", + "66738": "AB888X", + "66739": "AB888X", + "66740": "AB888X", + "66741": "AB888X", + "66742": "AB888X", + "66743": "AB888X", + "66746": "AB888X", + "66748": "AB888X", + "66749": "AB888X", + "66751": "AB888X", + "66753": "AB888X", + "66754": "AB888X", + "66755": "AB888X", + "66756": "AB888X", + "66757": "AB888X", + "66758": "AB888X", + "66759": "AB888X", + "66760": "AB888X", + "66761": "AB888X", + "66762": "AB888X", + "66763": "AB888X", + "66767": "AB888X", + "66769": "AB888X", + "66770": "AB888X", + "66771": "AB888X", + "66772": "AB888X", + "66773": "AB888X", + "66775": "AB888X", + "66776": "AB888X", + "66777": "AB888X", + "66778": "AB888X", + "66779": "AB888X", + "66780": "AB888X", + "66781": "AB888X", + "66782": "AB888X", + "66783": "AB888X", + "66801": "AB888X", + "66830": "AB888X", + "66833": "AB888X", + "66834": "AB888X", + "66835": "AB888X", + "66838": "AB888X", + "66839": "AB888X", + "66840": "AB888X", + "66842": "AB888X", + "66843": "AB888X", + "66845": "AB888X", + "66846": "AB888X", + "66849": "AB888X", + "66850": "AB888X", + "66851": "AB888X", + "66852": "AB888X", + "66853": "AB888X", + "66854": "AB888X", + "66855": "AB888X", + "66856": "AB888X", + "66857": "AB888X", + "66858": "AB888X", + "66859": "AB888X", + "66860": "AB888X", + "66861": "AB888X", + "66862": "AB888X", + "66863": "AB888X", + "66864": "AB888X", + "66865": "AB888X", + "66866": "AB888X", + "66868": "AB888X", + "66869": "AB888X", + "66870": "AB888X", + "66871": "AB888X", + "66872": "AB888X", + "66873": "AB888X", + "66901": "AB888X", + "66930": "AB889X", + "66932": "AB889X", + "66933": "AB889X", + "66935": "AB889X", + "66936": "AB889X", + "66937": "AB889X", + "66938": "AB888X", + "66939": "AB889X", + "66940": "AB889X", + "66941": "AB889X", + "66942": "AB889X", + "66943": "AB889X", + "66944": "AB889X", + "66945": "AB889X", + "66946": "AB889X", + "66948": "AB888X", + "66949": "AB889X", + "66951": "AB889X", + "66952": "AB889X", + "66953": "AB889X", + "66955": "AB889X", + "66956": "AB889X", + "66958": "AB889X", + "66959": "AB889X", + "66960": "AB889X", + "66961": "AB889X", + "66962": "AB889X", + "66963": "AB889X", + "66964": "AB889X", + "66966": "AB889X", + "66967": "AB889X", + "66968": "AB889X", + "66970": "AB889X", + "67001": "AB888X", + "67002": "AB888X", + "67003": "AB888X", + "67004": "AB888X", + "67005": "AB888X", + "67008": "AB888X", + "67009": "AB888X", + "67010": "AB888X", + "67012": "AB888X", + "67013": "AB888X", + "67016": "AB888X", + "67017": "AB888X", + "67018": "AB888X", + "67019": "AB888X", + "67020": "AB888X", + "67021": "AB888X", + "67022": "AB888X", + "67023": "AB888X", + "67024": "AB888X", + "67025": "AB888X", + "67026": "AB888X", + "67028": "AB888X", + "67029": "AB888X", + "67030": "AB888X", + "67031": "AB888X", + "67035": "AB888X", + "67036": "AB888X", + "67037": "AB888X", + "67038": "AB888X", + "67039": "AB888X", + "67041": "AB888X", + "67042": "AB888X", + "67045": "AB888X", + "67047": "AB888X", + "67049": "AB888X", + "67050": "AB888X", + "67051": "AB888X", + "67052": "AB888X", + "67053": "AB888X", + "67054": "AB888X", + "67055": "AB888X", + "67056": "AB888X", + "67057": "AB888X", + "67058": "AB888X", + "67059": "AB888X", + "67060": "AB888X", + "67061": "AB888X", + "67062": "AB888X", + "67063": "AB888X", + "67065": "AB888X", + "67066": "AB888X", + "67067": "AB888X", + "67068": "AB888X", + "67070": "AB888X", + "67071": "AB888X", + "67072": "AB888X", + "67073": "AB888X", + "67074": "AB888X", + "67101": "AB888X", + "67102": "AB888X", + "67103": "AB888X", + "67104": "AB888X", + "67105": "AB888X", + "67106": "AB888X", + "67107": "AB888X", + "67108": "AB888X", + "67109": "AB888X", + "67110": "AB888X", + "67111": "AB888X", + "67112": "AB888X", + "67114": "AB888X", + "67117": "AB888X", + "67118": "AB888X", + "67119": "AB888X", + "67120": "AB888X", + "67122": "AB888X", + "67123": "AB888X", + "67124": "AB888X", + "67127": "AB888X", + "67131": "AB888X", + "67132": "AB888X", + "67133": "AB888X", + "67134": "AB888X", + "67135": "AB888X", + "67137": "AB888X", + "67138": "AB888X", + "67140": "AB888X", + "67142": "AB888X", + "67143": "AB888X", + "67144": "AB888X", + "67146": "AB888X", + "67147": "AB888X", + "67149": "AB888X", + "67150": "AB888X", + "67151": "AB888X", + "67152": "AB888X", + "67154": "AB888X", + "67155": "AB888X", + "67156": "AB888X", + "67159": "AB888X", + "67201": "AB888X", + "67202": "AB888X", + "67203": "AB888X", + "67204": "AB888X", + "67205": "AB888X", + "67206": "AB888X", + "67207": "AB888X", + "67208": "AB888X", + "67209": "AB888X", + "67210": "AB888X", + "67211": "AB888X", + "67212": "AB888X", + "67213": "AB888X", + "67214": "AB888X", + "67215": "AB888X", + "67216": "AB888X", + "67217": "AB888X", + "67218": "AB888X", + "67219": "AB888X", + "67220": "AB888X", + "67221": "AB888X", + "67223": "AB888X", + "67226": "AB888X", + "67227": "AB888X", + "67228": "AB888X", + "67230": "AB888X", + "67231": "AB888X", + "67232": "AB888X", + "67235": "AB888X", + "67260": "AB888X", + "67275": "AB888X", + "67276": "AB888X", + "67277": "AB888X", + "67278": "AB888X", + "67301": "AB890X", + "67330": "AB888X", + "67332": "AB888X", + "67333": "AB890X", + "67334": "AB888X", + "67335": "AB890X", + "67336": "AB888X", + "67337": "AB890X", + "67340": "AB890X", + "67341": "AB888X", + "67342": "AB888X", + "67344": "AB890X", + "67345": "AB888X", + "67346": "AB888X", + "67347": "AB890X", + "67349": "AB888X", + "67351": "AB890X", + "67352": "AB888X", + "67353": "AB888X", + "67354": "AB888X", + "67355": "AB888X", + "67356": "AB888X", + "67357": "AB888X", + "67360": "AB888X", + "67361": "AB888X", + "67363": "AB890X", + "67364": "AB890X", + "67401": "AB888X", + "67402": "AB888X", + "67410": "AB888X", + "67416": "AB888X", + "67417": "AB888X", + "67418": "AB888X", + "67420": "AB888X", + "67422": "AB888X", + "67423": "AB888X", + "67425": "AB888X", + "67427": "AB888X", + "67428": "AB888X", + "67430": "AB888X", + "67431": "AB888X", + "67432": "AB888X", + "67436": "AB888X", + "67437": "AB888X", + "67438": "AB888X", + "67439": "AB888X", + "67441": "AB888X", + "67442": "AB888X", + "67443": "AB888X", + "67444": "AB888X", + "67445": "AB888X", + "67446": "AB888X", + "67447": "AB888X", + "67448": "AB888X", + "67449": "AB888X", + "67450": "AB888X", + "67451": "AB888X", + "67452": "AB888X", + "67454": "AB888X", + "67455": "AB888X", + "67456": "AB888X", + "67457": "AB888X", + "67458": "AB888X", + "67459": "AB888X", + "67460": "AB888X", + "67464": "AB888X", + "67466": "AB888X", + "67467": "AB888X", + "67468": "AB888X", + "67470": "AB888X", + "67473": "AB888X", + "67474": "AB888X", + "67475": "AB888X", + "67476": "AB888X", + "67478": "AB888X", + "67480": "AB888X", + "67481": "AB888X", + "67482": "AB888X", + "67483": "AB888X", + "67484": "AB888X", + "67485": "AB888X", + "67487": "AB888X", + "67490": "AB888X", + "67491": "AB888X", + "67492": "AB888X", + "67501": "AB888X", + "67502": "AB888X", + "67504": "AB888X", + "67505": "AB888X", + "67510": "AB888X", + "67511": "AB888X", + "67512": "AB888X", + "67513": "AB888X", + "67514": "AB888X", + "67515": "AB888X", + "67516": "AB888X", + "67518": "AB888X", + "67519": "AB888X", + "67520": "AB888X", + "67521": "AB888X", + "67522": "AB888X", + "67523": "AB888X", + "67524": "AB888X", + "67525": "AB888X", + "67526": "AB888X", + "67529": "AB888X", + "67530": "AB888X", + "67543": "AB888X", + "67544": "AB888X", + "67545": "AB888X", + "67546": "AB888X", + "67547": "AB888X", + "67548": "AB888X", + "67550": "AB888X", + "67552": "AB888X", + "67553": "AB888X", + "67554": "AB888X", + "67556": "AB888X", + "67557": "AB888X", + "67559": "AB888X", + "67560": "AB888X", + "67561": "AB888X", + "67563": "AB888X", + "67564": "AB888X", + "67565": "AB888X", + "67566": "AB888X", + "67567": "AB888X", + "67568": "AB888X", + "67570": "AB888X", + "67572": "AB888X", + "67573": "AB888X", + "67574": "AB888X", + "67575": "AB888X", + "67576": "AB888X", + "67578": "AB888X", + "67579": "AB888X", + "67581": "AB888X", + "67583": "AB888X", + "67584": "AB888X", + "67585": "AB888X", + "67601": "AB888X", + "67621": "AB888X", + "67622": "AB888X", + "67623": "AB888X", + "67625": "AB888X", + "67626": "AB888X", + "67627": "AB888X", + "67628": "AB889X", + "67629": "AB888X", + "67631": "AB888X", + "67632": "AB888X", + "67634": "AB888X", + "67635": "AB888X", + "67637": "AB888X", + "67638": "AB889X", + "67639": "AB888X", + "67640": "AB888X", + "67642": "AB888X", + "67643": "AB888X", + "67644": "AB888X", + "67645": "AB888X", + "67646": "AB888X", + "67647": "AB888X", + "67648": "AB888X", + "67649": "AB888X", + "67650": "AB888X", + "67651": "AB888X", + "67653": "AB888X", + "67654": "AB888X", + "67656": "AB888X", + "67657": "AB888X", + "67658": "AB888X", + "67659": "AB888X", + "67660": "AB888X", + "67661": "AB888X", + "67663": "AB888X", + "67664": "AB888X", + "67665": "AB888X", + "67667": "AB888X", + "67669": "AB888X", + "67671": "AB888X", + "67672": "AB888X", + "67673": "AB888X", + "67674": "AB888X", + "67675": "AB888X", + "67701": "AB888X", + "67730": "AB888X", + "67731": "AB888X", + "67732": "AB888X", + "67733": "AB888X", + "67734": "AB888X", + "67735": "AB888X", + "67736": "AB888X", + "67737": "AB888X", + "67738": "AB888X", + "67739": "AB888X", + "67740": "AB888X", + "67741": "AB888X", + "67743": "AB888X", + "67744": "AB888X", + "67745": "AB888X", + "67747": "AB888X", + "67748": "AB888X", + "67749": "AB888X", + "67751": "AB888X", + "67752": "AB888X", + "67753": "AB888X", + "67756": "AB888X", + "67757": "AB888X", + "67758": "AB888X", + "67761": "AB888X", + "67762": "AB888X", + "67764": "AB888X", + "67801": "AB888X", + "67831": "AB888X", + "67834": "AB888X", + "67835": "AB888X", + "67836": "AB888X", + "67837": "AB888X", + "67838": "AB888X", + "67839": "AB888X", + "67840": "AB888X", + "67841": "AB888X", + "67842": "AB888X", + "67843": "AB888X", + "67844": "AB888X", + "67846": "AB888X", + "67849": "AB888X", + "67850": "AB888X", + "67851": "AB888X", + "67853": "AB888X", + "67854": "AB888X", + "67855": "AB888X", + "67857": "AB888X", + "67859": "AB888X", + "67860": "AB888X", + "67861": "AB888X", + "67862": "AB888X", + "67863": "AB888X", + "67864": "AB888X", + "67865": "AB888X", + "67867": "AB888X", + "67868": "AB888X", + "67869": "AB888X", + "67870": "AB888X", + "67871": "AB888X", + "67876": "AB888X", + "67877": "AB888X", + "67878": "AB888X", + "67879": "AB888X", + "67880": "AB888X", + "67882": "AB888X", + "67901": "AB888X", + "67905": "AB888X", + "67950": "AB888X", + "67951": "AB888X", + "67952": "AB888X", + "67953": "AB888X", + "67954": "AB888X", + "68001": "AB889X", + "68002": "AB889X", + "68003": "AB889X", + "68004": "AB891X", + "68005": "AB889X", + "68007": "AB889X", + "68008": "AB889X", + "68009": "AB889X", + "68010": "AB889X", + "68014": "AB889X", + "68015": "AB889X", + "68016": "AB889X", + "68017": "AB889X", + "68018": "AB889X", + "68019": "AB891X", + "68020": "AB891X", + "68022": "AB889X", + "68023": "AB889X", + "68025": "AB889X", + "68026": "AB889X", + "68028": "AB889X", + "68029": "AB889X", + "68030": "AB891X", + "68031": "AB889X", + "68033": "AB889X", + "68034": "AB889X", + "68036": "AB889X", + "68037": "AB889X", + "68038": "AB891X", + "68039": "AB889X", + "68040": "AB889X", + "68041": "AB889X", + "68042": "AB889X", + "68044": "AB889X", + "68045": "AB891X", + "68046": "AB889X", + "68047": "AB891X", + "68048": "AB889X", + "68050": "AB889X", + "68055": "AB889X", + "68056": "AB889X", + "68057": "AB889X", + "68058": "AB889X", + "68059": "AB889X", + "68061": "AB889X", + "68062": "AB889X", + "68063": "AB889X", + "68064": "AB889X", + "68065": "AB889X", + "68066": "AB889X", + "68067": "AB891X", + "68068": "AB889X", + "68069": "AB889X", + "68070": "AB889X", + "68071": "AB891X", + "68072": "AB889X", + "68073": "AB889X", + "68101": "AB889X", + "68102": "AB889X", + "68103": "AB889X", + "68104": "AB889X", + "68105": "AB889X", + "68106": "AB889X", + "68107": "AB889X", + "68108": "AB889X", + "68109": "AB889X", + "68110": "AB889X", + "68111": "AB889X", + "68112": "AB889X", + "68113": "AB889X", + "68114": "AB889X", + "68116": "AB889X", + "68117": "AB889X", + "68118": "AB889X", + "68119": "AB889X", + "68120": "AB889X", + "68122": "AB889X", + "68123": "AB889X", + "68124": "AB889X", + "68127": "AB889X", + "68128": "AB889X", + "68130": "AB889X", + "68131": "AB889X", + "68132": "AB889X", + "68133": "AB889X", + "68134": "AB889X", + "68135": "AB889X", + "68136": "AB889X", + "68137": "AB889X", + "68138": "AB889X", + "68139": "AB889X", + "68142": "AB889X", + "68144": "AB889X", + "68145": "AB889X", + "68147": "AB889X", + "68152": "AB889X", + "68154": "AB889X", + "68155": "AB889X", + "68157": "AB889X", + "68164": "AB889X", + "68172": "AB889X", + "68175": "AB889X", + "68176": "AB889X", + "68178": "AB889X", + "68179": "AB889X", + "68180": "AB889X", + "68181": "AB889X", + "68182": "AB889X", + "68183": "AB889X", + "68197": "AB889X", + "68198": "AB889X", + "68301": "AB889X", + "68303": "AB889X", + "68304": "AB889X", + "68305": "AB889X", + "68307": "AB889X", + "68309": "AB889X", + "68310": "AB889X", + "68313": "AB889X", + "68314": "AB889X", + "68315": "AB889X", + "68316": "AB889X", + "68317": "AB889X", + "68318": "AB889X", + "68319": "AB889X", + "68320": "AB889X", + "68321": "AB889X", + "68322": "AB889X", + "68323": "AB889X", + "68324": "AB889X", + "68325": "AB889X", + "68326": "AB889X", + "68327": "AB889X", + "68328": "AB889X", + "68329": "AB889X", + "68330": "AB889X", + "68331": "AB889X", + "68332": "AB889X", + "68333": "AB889X", + "68335": "AB889X", + "68336": "AB889X", + "68337": "AB889X", + "68338": "AB889X", + "68339": "AB889X", + "68340": "AB889X", + "68341": "AB889X", + "68342": "AB889X", + "68343": "AB889X", + "68344": "AB889X", + "68345": "AB889X", + "68346": "AB889X", + "68347": "AB889X", + "68348": "AB889X", + "68349": "AB889X", + "68350": "AB889X", + "68351": "AB889X", + "68352": "AB889X", + "68354": "AB889X", + "68355": "AB889X", + "68357": "AB889X", + "68358": "AB889X", + "68359": "AB889X", + "68360": "AB889X", + "68361": "AB889X", + "68362": "AB889X", + "68364": "AB889X", + "68365": "AB889X", + "68366": "AB889X", + "68367": "AB889X", + "68368": "AB889X", + "68370": "AB889X", + "68371": "AB889X", + "68372": "AB889X", + "68375": "AB889X", + "68376": "AB889X", + "68377": "AB889X", + "68378": "AB889X", + "68379": "AB889X", + "68380": "AB889X", + "68381": "AB889X", + "68382": "AB889X", + "68401": "AB889X", + "68402": "AB889X", + "68403": "AB889X", + "68404": "AB889X", + "68405": "AB889X", + "68406": "AB889X", + "68407": "AB889X", + "68409": "AB889X", + "68410": "AB889X", + "68413": "AB889X", + "68414": "AB889X", + "68415": "AB889X", + "68416": "AB889X", + "68417": "AB889X", + "68418": "AB889X", + "68419": "AB889X", + "68420": "AB889X", + "68421": "AB889X", + "68422": "AB889X", + "68423": "AB889X", + "68424": "AB889X", + "68428": "AB889X", + "68429": "AB889X", + "68430": "AB889X", + "68431": "AB889X", + "68433": "AB889X", + "68434": "AB889X", + "68436": "AB889X", + "68437": "AB889X", + "68438": "AB889X", + "68439": "AB889X", + "68440": "AB889X", + "68441": "AB889X", + "68442": "AB889X", + "68443": "AB889X", + "68444": "AB889X", + "68445": "AB889X", + "68446": "AB889X", + "68447": "AB889X", + "68448": "AB889X", + "68450": "AB889X", + "68452": "AB889X", + "68453": "AB889X", + "68454": "AB889X", + "68455": "AB889X", + "68456": "AB889X", + "68457": "AB889X", + "68458": "AB889X", + "68460": "AB889X", + "68461": "AB889X", + "68462": "AB889X", + "68463": "AB889X", + "68464": "AB889X", + "68465": "AB889X", + "68466": "AB889X", + "68467": "AB889X", + "68501": "AB889X", + "68502": "AB889X", + "68503": "AB889X", + "68504": "AB889X", + "68505": "AB889X", + "68506": "AB889X", + "68507": "AB889X", + "68508": "AB889X", + "68509": "AB889X", + "68510": "AB889X", + "68512": "AB889X", + "68514": "AB889X", + "68516": "AB889X", + "68517": "AB889X", + "68520": "AB889X", + "68521": "AB889X", + "68522": "AB889X", + "68523": "AB889X", + "68524": "AB889X", + "68526": "AB889X", + "68527": "AB889X", + "68528": "AB889X", + "68529": "AB889X", + "68531": "AB889X", + "68532": "AB889X", + "68542": "AB889X", + "68583": "AB889X", + "68588": "AB889X", + "68601": "AB889X", + "68602": "AB889X", + "68620": "AB889X", + "68621": "AB889X", + "68622": "AB889X", + "68623": "AB889X", + "68624": "AB889X", + "68626": "AB889X", + "68627": "AB889X", + "68628": "AB889X", + "68629": "AB889X", + "68631": "AB889X", + "68632": "AB889X", + "68633": "AB889X", + "68634": "AB889X", + "68635": "AB889X", + "68636": "AB889X", + "68637": "AB889X", + "68638": "AB889X", + "68640": "AB889X", + "68641": "AB889X", + "68642": "AB889X", + "68643": "AB889X", + "68644": "AB889X", + "68647": "AB889X", + "68648": "AB889X", + "68649": "AB889X", + "68651": "AB889X", + "68652": "AB889X", + "68653": "AB889X", + "68654": "AB889X", + "68655": "AB889X", + "68658": "AB889X", + "68659": "AB889X", + "68660": "AB889X", + "68661": "AB889X", + "68662": "AB889X", + "68663": "AB889X", + "68664": "AB889X", + "68665": "AB889X", + "68666": "AB889X", + "68667": "AB889X", + "68669": "AB889X", + "68701": "AB891X", + "68702": "AB889X", + "68710": "AB891X", + "68711": "AB889X", + "68713": "AB889X", + "68714": "AB889X", + "68715": "AB889X", + "68716": "AB889X", + "68717": "AB889X", + "68718": "AB889X", + "68719": "AB889X", + "68720": "AB889X", + "68722": "AB889X", + "68723": "AB889X", + "68724": "AB889X", + "68725": "AB889X", + "68726": "AB889X", + "68727": "AB889X", + "68728": "AB889X", + "68729": "AB889X", + "68730": "AB889X", + "68731": "AB891X", + "68732": "AB889X", + "68733": "AB891X", + "68734": "AB889X", + "68735": "AB889X", + "68736": "AB889X", + "68738": "AB889X", + "68739": "AB891X", + "68740": "AB889X", + "68741": "AB891X", + "68742": "AB889X", + "68743": "AB891X", + "68745": "AB891X", + "68746": "AB889X", + "68747": "AB889X", + "68748": "AB889X", + "68749": "AB889X", + "68751": "AB889X", + "68752": "AB889X", + "68753": "AB889X", + "68755": "AB889X", + "68756": "AB889X", + "68757": "AB891X", + "68758": "AB889X", + "68759": "AB889X", + "68760": "AB889X", + "68761": "AB889X", + "68763": "AB889X", + "68764": "AB889X", + "68765": "AB889X", + "68766": "AB889X", + "68767": "AB889X", + "68768": "AB889X", + "68769": "AB889X", + "68770": "AB891X", + "68771": "AB889X", + "68773": "AB889X", + "68774": "AB889X", + "68776": "AB891X", + "68777": "AB889X", + "68778": "AB889X", + "68779": "AB889X", + "68780": "AB889X", + "68781": "AB889X", + "68783": "AB889X", + "68784": "AB891X", + "68785": "AB889X", + "68786": "AB889X", + "68787": "AB891X", + "68788": "AB889X", + "68789": "AB889X", + "68790": "AB889X", + "68791": "AB889X", + "68792": "AB889X", + "68801": "AB889X", + "68802": "AB889X", + "68803": "AB889X", + "68810": "AB889X", + "68812": "AB889X", + "68813": "AB889X", + "68814": "AB889X", + "68815": "AB889X", + "68816": "AB889X", + "68817": "AB889X", + "68818": "AB889X", + "68820": "AB889X", + "68821": "AB889X", + "68822": "AB889X", + "68823": "AB889X", + "68824": "AB889X", + "68825": "AB889X", + "68826": "AB889X", + "68827": "AB889X", + "68828": "AB889X", + "68831": "AB889X", + "68832": "AB889X", + "68833": "AB889X", + "68834": "AB889X", + "68835": "AB889X", + "68836": "AB889X", + "68837": "AB889X", + "68838": "AB889X", + "68840": "AB889X", + "68841": "AB889X", + "68842": "AB889X", + "68843": "AB889X", + "68844": "AB889X", + "68845": "AB889X", + "68846": "AB889X", + "68847": "AB889X", + "68848": "AB889X", + "68849": "AB889X", + "68850": "AB889X", + "68852": "AB889X", + "68853": "AB889X", + "68854": "AB889X", + "68855": "AB889X", + "68856": "AB889X", + "68858": "AB889X", + "68859": "AB889X", + "68860": "AB889X", + "68861": "AB889X", + "68862": "AB889X", + "68863": "AB889X", + "68864": "AB889X", + "68865": "AB889X", + "68866": "AB889X", + "68869": "AB889X", + "68870": "AB889X", + "68871": "AB889X", + "68872": "AB889X", + "68873": "AB889X", + "68874": "AB889X", + "68875": "AB889X", + "68876": "AB889X", + "68878": "AB889X", + "68879": "AB889X", + "68881": "AB889X", + "68882": "AB889X", + "68883": "AB889X", + "68901": "AB889X", + "68902": "AB889X", + "68920": "AB889X", + "68922": "AB889X", + "68923": "AB889X", + "68924": "AB889X", + "68925": "AB889X", + "68926": "AB889X", + "68927": "AB889X", + "68928": "AB889X", + "68929": "AB889X", + "68930": "AB889X", + "68932": "AB889X", + "68933": "AB889X", + "68934": "AB889X", + "68935": "AB889X", + "68936": "AB889X", + "68937": "AB889X", + "68938": "AB889X", + "68939": "AB889X", + "68940": "AB889X", + "68941": "AB889X", + "68942": "AB889X", + "68943": "AB889X", + "68944": "AB889X", + "68945": "AB889X", + "68946": "AB889X", + "68947": "AB889X", + "68948": "AB889X", + "68949": "AB889X", + "68950": "AB889X", + "68952": "AB889X", + "68954": "AB889X", + "68955": "AB889X", + "68956": "AB889X", + "68957": "AB889X", + "68958": "AB889X", + "68959": "AB889X", + "68960": "AB889X", + "68961": "AB889X", + "68964": "AB889X", + "68966": "AB889X", + "68967": "AB889X", + "68969": "AB889X", + "68970": "AB889X", + "68971": "AB889X", + "68972": "AB889X", + "68973": "AB889X", + "68974": "AB889X", + "68975": "AB889X", + "68976": "AB889X", + "68977": "AB889X", + "68978": "AB889X", + "68979": "AB889X", + "68980": "AB889X", + "68981": "AB889X", + "68982": "AB889X", + "69001": "AB889X", + "69020": "AB889X", + "69021": "AB889X", + "69022": "AB889X", + "69023": "AB889X", + "69024": "AB889X", + "69025": "AB889X", + "69026": "AB889X", + "69027": "AB889X", + "69028": "AB889X", + "69029": "AB889X", + "69030": "AB889X", + "69032": "AB889X", + "69033": "AB889X", + "69034": "AB889X", + "69036": "AB889X", + "69037": "AB889X", + "69038": "AB889X", + "69039": "AB889X", + "69040": "AB889X", + "69041": "AB889X", + "69042": "AB889X", + "69043": "AB889X", + "69044": "AB889X", + "69045": "AB889X", + "69046": "AB889X", + "69101": "AB889X", + "69103": "AB889X", + "69120": "AB889X", + "69121": "AB889X", + "69122": "AB889X", + "69123": "AB889X", + "69125": "AB889X", + "69127": "AB889X", + "69128": "AB889X", + "69129": "AB889X", + "69130": "AB889X", + "69131": "AB887X", + "69132": "AB889X", + "69133": "AB887X", + "69134": "AB889X", + "69135": "AB889X", + "69138": "AB889X", + "69140": "AB889X", + "69141": "AB887X", + "69142": "AB889X", + "69143": "AB889X", + "69144": "AB889X", + "69145": "AB887X", + "69146": "AB889X", + "69147": "AB889X", + "69148": "AB889X", + "69149": "AB887X", + "69150": "AB889X", + "69151": "AB889X", + "69152": "AB889X", + "69153": "AB889X", + "69154": "AB889X", + "69155": "AB889X", + "69156": "AB887X", + "69157": "AB889X", + "69160": "AB889X", + "69161": "AB889X", + "69162": "AB887X", + "69163": "AB889X", + "69165": "AB889X", + "69166": "AB889X", + "69167": "AB889X", + "69168": "AB889X", + "69169": "AB889X", + "69170": "AB889X", + "69171": "AB889X", + "69190": "AB889X", + "69201": "AB889X", + "69210": "AB889X", + "69211": "AB889X", + "69212": "AB889X", + "69214": "AB889X", + "69216": "AB889X", + "69217": "AB889X", + "69218": "AB889X", + "69219": "AB889X", + "69220": "AB889X", + "69221": "AB889X", + "69301": "AB889X", + "69331": "AB889X", + "69333": "AB889X", + "69334": "AB889X", + "69335": "AB889X", + "69336": "AB889X", + "69337": "AB887X", + "69339": "AB887X", + "69340": "AB889X", + "69341": "AB889X", + "69343": "AB887X", + "69345": "AB889X", + "69346": "AB887X", + "69347": "AB887X", + "69348": "AB887X", + "69350": "AB889X", + "69351": "AB889X", + "69352": "AB889X", + "69353": "AB889X", + "69354": "AB887X", + "69355": "AB889X", + "69356": "AB889X", + "69357": "AB889X", + "69358": "AB889X", + "69360": "AB887X", + "69361": "AB887X", + "69363": "AB889X", + "69365": "AB889X", + "69366": "AB889X", + "69367": "AB887X", + "69999": "AB889X", + "70001": "AB889X", + "70002": "AB889X", + "70003": "AB889X", + "70004": "AB889X", + "70005": "AB889X", + "70006": "AB889X", + "70009": "AB889X", + "70010": "AB889X", + "70011": "AB889X", + "70030": "AB889X", + "70031": "AB889X", + "70032": "AB889X", + "70033": "AB889X", + "70036": "AB889X", + "70037": "AB889X", + "70038": "AB889X", + "70039": "AB889X", + "70040": "AB889X", + "70041": "AB889X", + "70043": "AB889X", + "70044": "AB889X", + "70047": "AB889X", + "70049": "AB889X", + "70050": "AB889X", + "70051": "AB889X", + "70052": "AB889X", + "70053": "AB889X", + "70054": "AB889X", + "70055": "AB889X", + "70056": "AB889X", + "70057": "AB889X", + "70058": "AB889X", + "70059": "AB889X", + "70060": "AB889X", + "70062": "AB889X", + "70063": "AB889X", + "70064": "AB889X", + "70065": "AB889X", + "70067": "AB889X", + "70068": "AB889X", + "70069": "AB889X", + "70070": "AB889X", + "70071": "AB889X", + "70072": "AB889X", + "70073": "AB889X", + "70075": "AB889X", + "70076": "AB889X", + "70078": "AB889X", + "70079": "AB889X", + "70080": "AB889X", + "70081": "AB889X", + "70082": "AB889X", + "70083": "AB889X", + "70084": "AB889X", + "70085": "AB889X", + "70086": "AB889X", + "70087": "AB889X", + "70090": "AB889X", + "70091": "AB889X", + "70092": "AB889X", + "70093": "AB889X", + "70094": "AB889X", + "70096": "AB889X", + "70097": "AB889X", + "70112": "AB889X", + "70113": "AB889X", + "70114": "AB889X", + "70115": "AB889X", + "70116": "AB889X", + "70117": "AB889X", + "70118": "AB889X", + "70119": "AB889X", + "70121": "AB889X", + "70122": "AB889X", + "70123": "AB889X", + "70124": "AB889X", + "70125": "AB889X", + "70126": "AB889X", + "70127": "AB889X", + "70128": "AB889X", + "70129": "AB889X", + "70130": "AB889X", + "70131": "AB889X", + "70139": "AB889X", + "70140": "AB889X", + "70141": "AB889X", + "70142": "AB889X", + "70143": "AB889X", + "70145": "AB889X", + "70146": "AB889X", + "70148": "AB889X", + "70149": "AB889X", + "70150": "AB889X", + "70151": "AB889X", + "70152": "AB889X", + "70153": "AB889X", + "70154": "AB889X", + "70156": "AB889X", + "70157": "AB889X", + "70158": "AB889X", + "70159": "AB889X", + "70160": "AB889X", + "70161": "AB889X", + "70162": "AB889X", + "70163": "AB889X", + "70164": "AB889X", + "70165": "AB889X", + "70166": "AB889X", + "70167": "AB889X", + "70170": "AB889X", + "70172": "AB889X", + "70174": "AB889X", + "70175": "AB889X", + "70176": "AB889X", + "70177": "AB889X", + "70178": "AB889X", + "70179": "AB889X", + "70181": "AB889X", + "70182": "AB889X", + "70183": "AB889X", + "70184": "AB889X", + "70185": "AB889X", + "70186": "AB889X", + "70187": "AB889X", + "70189": "AB889X", + "70190": "AB889X", + "70195": "AB889X", + "70301": "AB889X", + "70302": "AB889X", + "70310": "AB889X", + "70339": "AB889X", + "70340": "AB889X", + "70341": "AB889X", + "70342": "AB889X", + "70343": "AB889X", + "70344": "AB889X", + "70345": "AB889X", + "70346": "AB889X", + "70352": "AB889X", + "70353": "AB889X", + "70354": "AB889X", + "70355": "AB889X", + "70356": "AB889X", + "70357": "AB889X", + "70358": "AB889X", + "70359": "AB889X", + "70360": "AB889X", + "70361": "AB889X", + "70363": "AB889X", + "70364": "AB889X", + "70371": "AB889X", + "70372": "AB889X", + "70373": "AB889X", + "70374": "AB889X", + "70375": "AB889X", + "70377": "AB889X", + "70380": "AB889X", + "70381": "AB889X", + "70390": "AB889X", + "70391": "AB889X", + "70392": "AB889X", + "70393": "AB889X", + "70394": "AB889X", + "70395": "AB889X", + "70397": "AB889X", + "70401": "AB889X", + "70402": "AB889X", + "70403": "AB889X", + "70404": "AB889X", + "70420": "AB889X", + "70421": "AB889X", + "70422": "AB889X", + "70426": "AB889X", + "70427": "AB889X", + "70429": "AB889X", + "70431": "AB889X", + "70433": "AB889X", + "70434": "AB889X", + "70435": "AB889X", + "70436": "AB889X", + "70437": "AB889X", + "70438": "AB889X", + "70441": "AB889X", + "70442": "AB889X", + "70443": "AB889X", + "70444": "AB889X", + "70445": "AB889X", + "70446": "AB889X", + "70447": "AB889X", + "70448": "AB889X", + "70449": "AB889X", + "70450": "AB889X", + "70451": "AB889X", + "70452": "AB889X", + "70453": "AB889X", + "70454": "AB889X", + "70455": "AB889X", + "70456": "AB889X", + "70457": "AB889X", + "70458": "AB889X", + "70459": "AB889X", + "70460": "AB889X", + "70461": "AB889X", + "70462": "AB889X", + "70463": "AB889X", + "70464": "AB889X", + "70465": "AB889X", + "70466": "AB889X", + "70467": "AB889X", + "70469": "AB889X", + "70470": "AB889X", + "70471": "AB889X", + "70501": "AB887X", + "70502": "AB887X", + "70503": "AB887X", + "70504": "AB887X", + "70505": "AB887X", + "70506": "AB887X", + "70507": "AB887X", + "70508": "AB887X", + "70509": "AB887X", + "70510": "AB887X", + "70511": "AB887X", + "70512": "AB887X", + "70513": "AB887X", + "70514": "AB887X", + "70515": "AB887X", + "70516": "AB887X", + "70517": "AB887X", + "70518": "AB887X", + "70519": "AB887X", + "70520": "AB887X", + "70521": "AB887X", + "70522": "AB887X", + "70523": "AB887X", + "70524": "AB887X", + "70525": "AB887X", + "70526": "AB887X", + "70527": "AB887X", + "70528": "AB887X", + "70529": "AB887X", + "70531": "AB887X", + "70532": "AB887X", + "70533": "AB887X", + "70534": "AB887X", + "70535": "AB887X", + "70537": "AB887X", + "70538": "AB887X", + "70540": "AB887X", + "70541": "AB887X", + "70542": "AB887X", + "70543": "AB887X", + "70544": "AB887X", + "70546": "AB887X", + "70548": "AB887X", + "70549": "AB887X", + "70550": "AB887X", + "70551": "AB887X", + "70552": "AB887X", + "70554": "AB887X", + "70555": "AB887X", + "70556": "AB887X", + "70558": "AB887X", + "70559": "AB887X", + "70560": "AB887X", + "70562": "AB887X", + "70563": "AB887X", + "70569": "AB887X", + "70570": "AB887X", + "70571": "AB887X", + "70575": "AB887X", + "70576": "AB887X", + "70577": "AB887X", + "70578": "AB887X", + "70580": "AB887X", + "70581": "AB887X", + "70582": "AB887X", + "70583": "AB887X", + "70584": "AB887X", + "70585": "AB887X", + "70586": "AB887X", + "70589": "AB887X", + "70591": "AB887X", + "70592": "AB887X", + "70593": "AB887X", + "70595": "AB887X", + "70596": "AB887X", + "70598": "AB887X", + "70601": "AB887X", + "70602": "AB887X", + "70605": "AB887X", + "70606": "AB887X", + "70607": "AB887X", + "70609": "AB887X", + "70611": "AB887X", + "70612": "AB887X", + "70615": "AB887X", + "70616": "AB887X", + "70629": "AB887X", + "70630": "AB887X", + "70631": "AB887X", + "70632": "AB887X", + "70633": "AB887X", + "70634": "AB887X", + "70637": "AB887X", + "70638": "AB887X", + "70639": "AB887X", + "70640": "AB887X", + "70643": "AB887X", + "70644": "AB887X", + "70645": "AB887X", + "70646": "AB887X", + "70647": "AB887X", + "70648": "AB887X", + "70650": "AB887X", + "70651": "AB887X", + "70652": "AB887X", + "70653": "AB887X", + "70654": "AB887X", + "70655": "AB887X", + "70656": "AB887X", + "70657": "AB887X", + "70658": "AB887X", + "70659": "AB887X", + "70660": "AB887X", + "70661": "AB887X", + "70662": "AB887X", + "70663": "AB887X", + "70664": "AB887X", + "70665": "AB887X", + "70668": "AB887X", + "70669": "AB887X", + "70704": "AB889X", + "70706": "AB889X", + "70707": "AB889X", + "70710": "AB889X", + "70711": "AB889X", + "70712": "AB889X", + "70714": "AB889X", + "70715": "AB889X", + "70718": "AB889X", + "70719": "AB889X", + "70721": "AB889X", + "70722": "AB889X", + "70723": "AB889X", + "70725": "AB889X", + "70726": "AB889X", + "70727": "AB887X", + "70728": "AB889X", + "70729": "AB889X", + "70730": "AB889X", + "70732": "AB889X", + "70733": "AB889X", + "70734": "AB889X", + "70736": "AB889X", + "70737": "AB889X", + "70738": "AB889X", + "70739": "AB889X", + "70740": "AB889X", + "70743": "AB889X", + "70744": "AB889X", + "70747": "AB889X", + "70748": "AB889X", + "70749": "AB889X", + "70750": "AB887X", + "70752": "AB889X", + "70753": "AB889X", + "70754": "AB889X", + "70755": "AB889X", + "70756": "AB889X", + "70757": "AB889X", + "70759": "AB889X", + "70760": "AB889X", + "70761": "AB889X", + "70762": "AB889X", + "70763": "AB889X", + "70764": "AB889X", + "70765": "AB889X", + "70767": "AB889X", + "70769": "AB889X", + "70770": "AB889X", + "70772": "AB889X", + "70773": "AB889X", + "70774": "AB889X", + "70775": "AB889X", + "70776": "AB889X", + "70777": "AB889X", + "70778": "AB889X", + "70780": "AB889X", + "70782": "AB889X", + "70783": "AB889X", + "70784": "AB889X", + "70785": "AB889X", + "70786": "AB889X", + "70787": "AB889X", + "70788": "AB889X", + "70789": "AB889X", + "70791": "AB889X", + "70792": "AB889X", + "70801": "AB887X", + "70802": "AB887X", + "70803": "AB889X", + "70804": "AB889X", + "70805": "AB889X", + "70806": "AB889X", + "70807": "AB889X", + "70808": "AB889X", + "70809": "AB889X", + "70810": "AB889X", + "70811": "AB889X", + "70812": "AB889X", + "70813": "AB889X", + "70814": "AB889X", + "70815": "AB889X", + "70816": "AB889X", + "70817": "AB889X", + "70818": "AB889X", + "70819": "AB889X", + "70820": "AB889X", + "70821": "AB889X", + "70822": "AB889X", + "70823": "AB889X", + "70825": "AB889X", + "70826": "AB889X", + "70827": "AB889X", + "70831": "AB889X", + "70833": "AB889X", + "70835": "AB889X", + "70836": "AB889X", + "70837": "AB889X", + "70873": "AB889X", + "70874": "AB889X", + "70879": "AB889X", + "70883": "AB889X", + "70884": "AB889X", + "70891": "AB889X", + "70892": "AB889X", + "70893": "AB889X", + "70894": "AB889X", + "70895": "AB889X", + "70896": "AB889X", + "70898": "AB889X", + "71001": "AB887X", + "71002": "AB888X", + "71003": "AB888X", + "71004": "AB888X", + "71006": "AB888X", + "71007": "AB888X", + "71008": "AB887X", + "71009": "AB888X", + "71016": "AB887X", + "71018": "AB888X", + "71019": "AB888X", + "71021": "AB888X", + "71023": "AB888X", + "71024": "AB888X", + "71027": "AB888X", + "71028": "AB887X", + "71029": "AB888X", + "71030": "AB888X", + "71031": "AB887X", + "71032": "AB888X", + "71033": "AB888X", + "71034": "AB888X", + "71037": "AB888X", + "71038": "AB888X", + "71039": "AB888X", + "71040": "AB888X", + "71043": "AB888X", + "71044": "AB888X", + "71045": "AB887X", + "71046": "AB888X", + "71047": "AB888X", + "71048": "AB888X", + "71049": "AB888X", + "71050": "AB888X", + "71051": "AB888X", + "71052": "AB888X", + "71055": "AB888X", + "71058": "AB888X", + "71060": "AB888X", + "71061": "AB888X", + "71063": "AB888X", + "71064": "AB888X", + "71065": "AB888X", + "71066": "AB888X", + "71067": "AB888X", + "71068": "AB888X", + "71069": "AB888X", + "71070": "AB887X", + "71071": "AB888X", + "71072": "AB888X", + "71073": "AB888X", + "71075": "AB888X", + "71078": "AB888X", + "71079": "AB888X", + "71080": "AB887X", + "71082": "AB888X", + "71101": "AB888X", + "71102": "AB888X", + "71103": "AB888X", + "71104": "AB888X", + "71105": "AB888X", + "71106": "AB888X", + "71107": "AB888X", + "71108": "AB888X", + "71109": "AB888X", + "71110": "AB888X", + "71111": "AB888X", + "71112": "AB888X", + "71113": "AB888X", + "71115": "AB888X", + "71118": "AB888X", + "71119": "AB888X", + "71120": "AB888X", + "71129": "AB888X", + "71130": "AB888X", + "71133": "AB888X", + "71134": "AB888X", + "71135": "AB888X", + "71136": "AB888X", + "71137": "AB888X", + "71138": "AB888X", + "71148": "AB888X", + "71149": "AB888X", + "71150": "AB888X", + "71151": "AB888X", + "71152": "AB888X", + "71153": "AB888X", + "71154": "AB888X", + "71156": "AB888X", + "71161": "AB888X", + "71162": "AB888X", + "71163": "AB888X", + "71164": "AB888X", + "71165": "AB888X", + "71166": "AB888X", + "71171": "AB888X", + "71172": "AB888X", + "71201": "AB887X", + "71202": "AB887X", + "71203": "AB887X", + "71207": "AB887X", + "71208": "AB887X", + "71209": "AB887X", + "71210": "AB887X", + "71211": "AB887X", + "71212": "AB887X", + "71213": "AB887X", + "71217": "AB887X", + "71218": "AB887X", + "71219": "AB887X", + "71220": "AB887X", + "71221": "AB887X", + "71222": "AB887X", + "71223": "AB887X", + "71225": "AB887X", + "71226": "AB887X", + "71227": "AB887X", + "71229": "AB887X", + "71230": "AB887X", + "71232": "AB887X", + "71233": "AB887X", + "71234": "AB887X", + "71235": "AB887X", + "71237": "AB887X", + "71238": "AB887X", + "71240": "AB887X", + "71241": "AB887X", + "71242": "AB887X", + "71243": "AB887X", + "71245": "AB887X", + "71247": "AB887X", + "71249": "AB887X", + "71250": "AB887X", + "71251": "AB887X", + "71253": "AB887X", + "71254": "AB887X", + "71256": "AB887X", + "71259": "AB887X", + "71260": "AB887X", + "71261": "AB887X", + "71263": "AB887X", + "71264": "AB887X", + "71266": "AB887X", + "71268": "AB887X", + "71269": "AB887X", + "71270": "AB887X", + "71272": "AB887X", + "71273": "AB887X", + "71275": "AB887X", + "71276": "AB887X", + "71277": "AB887X", + "71279": "AB887X", + "71280": "AB887X", + "71281": "AB887X", + "71282": "AB887X", + "71284": "AB887X", + "71286": "AB887X", + "71291": "AB887X", + "71292": "AB887X", + "71294": "AB887X", + "71295": "AB887X", + "71301": "AB887X", + "71302": "AB887X", + "71303": "AB887X", + "71306": "AB887X", + "71307": "AB887X", + "71309": "AB887X", + "71315": "AB887X", + "71316": "AB887X", + "71320": "AB887X", + "71322": "AB887X", + "71323": "AB887X", + "71324": "AB887X", + "71325": "AB887X", + "71326": "AB887X", + "71327": "AB887X", + "71328": "AB887X", + "71329": "AB887X", + "71330": "AB887X", + "71331": "AB887X", + "71333": "AB887X", + "71334": "AB887X", + "71336": "AB887X", + "71339": "AB887X", + "71340": "AB887X", + "71341": "AB887X", + "71342": "AB887X", + "71343": "AB887X", + "71345": "AB887X", + "71346": "AB887X", + "71347": "AB887X", + "71348": "AB887X", + "71350": "AB887X", + "71351": "AB887X", + "71353": "AB887X", + "71354": "AB887X", + "71355": "AB887X", + "71356": "AB887X", + "71357": "AB887X", + "71358": "AB887X", + "71359": "AB887X", + "71360": "AB887X", + "71361": "AB887X", + "71362": "AB887X", + "71363": "AB887X", + "71365": "AB887X", + "71366": "AB887X", + "71367": "AB887X", + "71368": "AB887X", + "71369": "AB887X", + "71371": "AB887X", + "71373": "AB887X", + "71375": "AB887X", + "71377": "AB887X", + "71378": "AB887X", + "71401": "AB887X", + "71403": "AB887X", + "71404": "AB887X", + "71405": "AB887X", + "71406": "AB888X", + "71407": "AB887X", + "71409": "AB887X", + "71410": "AB887X", + "71411": "AB888X", + "71412": "AB888X", + "71414": "AB888X", + "71415": "AB888X", + "71416": "AB888X", + "71417": "AB887X", + "71418": "AB888X", + "71419": "AB888X", + "71422": "AB887X", + "71423": "AB887X", + "71424": "AB887X", + "71425": "AB887X", + "71426": "AB888X", + "71427": "AB887X", + "71428": "AB888X", + "71429": "AB888X", + "71430": "AB887X", + "71431": "AB887X", + "71432": "AB887X", + "71433": "AB887X", + "71434": "AB888X", + "71435": "AB888X", + "71438": "AB887X", + "71439": "AB888X", + "71440": "AB887X", + "71441": "AB888X", + "71443": "AB887X", + "71444": "AB887X", + "71446": "AB887X", + "71447": "AB888X", + "71448": "AB887X", + "71449": "AB888X", + "71450": "AB888X", + "71452": "AB888X", + "71454": "AB887X", + "71455": "AB888X", + "71456": "AB888X", + "71457": "AB888X", + "71458": "AB888X", + "71459": "AB887X", + "71460": "AB888X", + "71461": "AB887X", + "71462": "AB888X", + "71463": "AB887X", + "71465": "AB887X", + "71466": "AB887X", + "71467": "AB887X", + "71468": "AB888X", + "71469": "AB888X", + "71471": "AB888X", + "71472": "AB887X", + "71473": "AB887X", + "71474": "AB887X", + "71475": "AB887X", + "71477": "AB887X", + "71479": "AB887X", + "71480": "AB887X", + "71483": "AB887X", + "71485": "AB887X", + "71486": "AB888X", + "71496": "AB887X", + "71497": "AB890X", + "71601": "AB887X", + "71602": "AB887X", + "71603": "AB887X", + "71611": "AB887X", + "71612": "AB887X", + "71613": "AB887X", + "71630": "AB887X", + "71631": "AB887X", + "71635": "AB887X", + "71638": "AB889X", + "71639": "AB887X", + "71640": "AB889X", + "71642": "AB887X", + "71643": "AB887X", + "71644": "AB887X", + "71646": "AB887X", + "71647": "AB887X", + "71651": "AB887X", + "71652": "AB887X", + "71653": "AB889X", + "71654": "AB887X", + "71655": "AB887X", + "71656": "AB887X", + "71657": "AB887X", + "71658": "AB887X", + "71659": "AB887X", + "71660": "AB887X", + "71661": "AB887X", + "71662": "AB887X", + "71663": "AB887X", + "71665": "AB887X", + "71666": "AB887X", + "71667": "AB887X", + "71670": "AB887X", + "71671": "AB887X", + "71674": "AB887X", + "71675": "AB887X", + "71676": "AB887X", + "71677": "AB887X", + "71678": "AB887X", + "71701": "AB887X", + "71711": "AB887X", + "71716": "AB887X", + "71720": "AB887X", + "71721": "AB887X", + "71722": "AB888X", + "71724": "AB887X", + "71725": "AB887X", + "71726": "AB887X", + "71728": "AB887X", + "71730": "AB887X", + "71731": "AB887X", + "71740": "AB888X", + "71742": "AB887X", + "71743": "AB887X", + "71744": "AB887X", + "71745": "AB887X", + "71747": "AB887X", + "71748": "AB887X", + "71749": "AB887X", + "71750": "AB887X", + "71751": "AB887X", + "71752": "AB888X", + "71753": "AB888X", + "71754": "AB888X", + "71758": "AB887X", + "71759": "AB887X", + "71762": "AB887X", + "71763": "AB887X", + "71764": "AB887X", + "71765": "AB887X", + "71766": "AB887X", + "71768": "AB887X", + "71770": "AB888X", + "71772": "AB887X", + "71801": "AB888X", + "71802": "AB888X", + "71820": "AB888X", + "71822": "AB888X", + "71823": "AB888X", + "71825": "AB888X", + "71826": "AB888X", + "71827": "AB888X", + "71828": "AB888X", + "71831": "AB888X", + "71832": "AB888X", + "71833": "AB888X", + "71834": "AB888X", + "71835": "AB888X", + "71836": "AB888X", + "71837": "AB888X", + "71838": "AB888X", + "71839": "AB888X", + "71840": "AB888X", + "71841": "AB888X", + "71842": "AB888X", + "71844": "AB888X", + "71845": "AB888X", + "71846": "AB888X", + "71847": "AB888X", + "71851": "AB888X", + "71852": "AB888X", + "71853": "AB888X", + "71854": "AB888X", + "71855": "AB888X", + "71857": "AB888X", + "71858": "AB888X", + "71859": "AB888X", + "71860": "AB888X", + "71861": "AB888X", + "71862": "AB888X", + "71864": "AB888X", + "71865": "AB888X", + "71866": "AB888X", + "71901": "AB887X", + "71902": "AB887X", + "71903": "AB887X", + "71909": "AB887X", + "71910": "AB887X", + "71913": "AB887X", + "71914": "AB887X", + "71920": "AB887X", + "71921": "AB887X", + "71922": "AB887X", + "71923": "AB887X", + "71928": "AB887X", + "71929": "AB887X", + "71932": "AB890X", + "71933": "AB887X", + "71935": "AB887X", + "71937": "AB890X", + "71940": "AB887X", + "71941": "AB887X", + "71942": "AB887X", + "71943": "AB887X", + "71944": "AB890X", + "71945": "AB890X", + "71946": "AB887X", + "71949": "AB887X", + "71950": "AB887X", + "71951": "AB887X", + "71952": "AB887X", + "71953": "AB890X", + "71956": "AB887X", + "71957": "AB887X", + "71958": "AB887X", + "71959": "AB887X", + "71960": "AB887X", + "71961": "AB890X", + "71962": "AB887X", + "71964": "AB887X", + "71965": "AB887X", + "71966": "AB887X", + "71968": "AB887X", + "71969": "AB887X", + "71970": "AB887X", + "71971": "AB888X", + "71972": "AB890X", + "71973": "AB890X", + "71998": "AB887X", + "71999": "AB887X", + "72001": "AB887X", + "72002": "AB887X", + "72003": "AB887X", + "72004": "AB887X", + "72005": "AB887X", + "72006": "AB889X", + "72007": "AB887X", + "72010": "AB887X", + "72011": "AB887X", + "72012": "AB887X", + "72013": "AB887X", + "72014": "AB887X", + "72015": "AB887X", + "72016": "AB887X", + "72017": "AB889X", + "72018": "AB887X", + "72019": "AB887X", + "72020": "AB887X", + "72021": "AB889X", + "72022": "AB887X", + "72023": "AB887X", + "72024": "AB887X", + "72025": "AB887X", + "72026": "AB887X", + "72027": "AB887X", + "72028": "AB887X", + "72029": "AB889X", + "72030": "AB887X", + "72031": "AB887X", + "72032": "AB887X", + "72033": "AB887X", + "72034": "AB887X", + "72035": "AB887X", + "72036": "AB889X", + "72037": "AB887X", + "72038": "AB887X", + "72039": "AB887X", + "72040": "AB889X", + "72041": "AB889X", + "72042": "AB887X", + "72043": "AB888X", + "72044": "AB887X", + "72045": "AB887X", + "72046": "AB887X", + "72047": "AB887X", + "72048": "AB887X", + "72051": "AB887X", + "72052": "AB887X", + "72053": "AB887X", + "72055": "AB887X", + "72057": "AB887X", + "72058": "AB887X", + "72059": "AB889X", + "72060": "AB889X", + "72061": "AB887X", + "72063": "AB887X", + "72064": "AB889X", + "72065": "AB887X", + "72066": "AB889X", + "72067": "AB887X", + "72068": "AB887X", + "72069": "AB889X", + "72070": "AB887X", + "72072": "AB887X", + "72073": "AB887X", + "72074": "AB889X", + "72075": "AB888X", + "72076": "AB887X", + "72078": "AB887X", + "72079": "AB887X", + "72080": "AB887X", + "72081": "AB887X", + "72082": "AB887X", + "72083": "AB887X", + "72084": "AB887X", + "72085": "AB887X", + "72086": "AB887X", + "72087": "AB887X", + "72088": "AB887X", + "72089": "AB887X", + "72099": "AB887X", + "72101": "AB888X", + "72102": "AB887X", + "72103": "AB887X", + "72104": "AB887X", + "72105": "AB887X", + "72106": "AB887X", + "72107": "AB887X", + "72108": "AB889X", + "72110": "AB887X", + "72111": "AB887X", + "72112": "AB887X", + "72113": "AB887X", + "72114": "AB887X", + "72115": "AB887X", + "72116": "AB887X", + "72117": "AB887X", + "72118": "AB887X", + "72119": "AB887X", + "72120": "AB887X", + "72121": "AB887X", + "72122": "AB887X", + "72123": "AB889X", + "72124": "AB887X", + "72125": "AB887X", + "72126": "AB887X", + "72127": "AB887X", + "72128": "AB887X", + "72129": "AB887X", + "72130": "AB887X", + "72131": "AB887X", + "72132": "AB887X", + "72133": "AB887X", + "72134": "AB887X", + "72135": "AB887X", + "72136": "AB887X", + "72137": "AB887X", + "72139": "AB887X", + "72140": "AB887X", + "72141": "AB887X", + "72142": "AB887X", + "72143": "AB887X", + "72145": "AB887X", + "72149": "AB887X", + "72150": "AB887X", + "72152": "AB887X", + "72153": "AB887X", + "72156": "AB887X", + "72157": "AB887X", + "72158": "AB887X", + "72160": "AB887X", + "72164": "AB887X", + "72165": "AB887X", + "72166": "AB887X", + "72167": "AB887X", + "72168": "AB887X", + "72169": "AB888X", + "72170": "AB887X", + "72173": "AB887X", + "72175": "AB887X", + "72176": "AB887X", + "72178": "AB887X", + "72179": "AB887X", + "72180": "AB887X", + "72181": "AB887X", + "72182": "AB887X", + "72183": "AB887X", + "72189": "AB889X", + "72190": "AB887X", + "72198": "AB887X", + "72199": "AB887X", + "72201": "AB887X", + "72202": "AB887X", + "72203": "AB887X", + "72204": "AB887X", + "72205": "AB887X", + "72206": "AB887X", + "72207": "AB887X", + "72209": "AB887X", + "72210": "AB887X", + "72211": "AB887X", + "72212": "AB887X", + "72214": "AB887X", + "72215": "AB887X", + "72216": "AB887X", + "72217": "AB887X", + "72219": "AB887X", + "72221": "AB887X", + "72222": "AB887X", + "72223": "AB887X", + "72225": "AB887X", + "72227": "AB887X", + "72231": "AB887X", + "72260": "AB887X", + "72295": "AB887X", + "72301": "AB889X", + "72303": "AB887X", + "72310": "AB889X", + "72311": "AB889X", + "72312": "AB889X", + "72313": "AB889X", + "72315": "AB889X", + "72316": "AB889X", + "72319": "AB887X", + "72320": "AB887X", + "72321": "AB889X", + "72322": "AB889X", + "72324": "AB888X", + "72325": "AB887X", + "72326": "AB889X", + "72327": "AB887X", + "72328": "AB889X", + "72329": "AB889X", + "72330": "AB889X", + "72331": "AB887X", + "72332": "AB887X", + "72333": "AB889X", + "72335": "AB889X", + "72336": "AB889X", + "72338": "AB889X", + "72339": "AB887X", + "72340": "AB889X", + "72341": "AB889X", + "72342": "AB889X", + "72346": "AB887X", + "72347": "AB888X", + "72348": "AB889X", + "72350": "AB889X", + "72351": "AB889X", + "72352": "AB889X", + "72353": "AB889X", + "72354": "AB888X", + "72355": "AB889X", + "72358": "AB889X", + "72359": "AB889X", + "72360": "AB889X", + "72364": "AB889X", + "72365": "AB888X", + "72366": "AB889X", + "72367": "AB889X", + "72368": "AB889X", + "72369": "AB889X", + "72370": "AB889X", + "72372": "AB889X", + "72373": "AB887X", + "72374": "AB889X", + "72376": "AB889X", + "72377": "AB888X", + "72379": "AB887X", + "72383": "AB889X", + "72384": "AB887X", + "72386": "AB888X", + "72387": "AB888X", + "72389": "AB889X", + "72390": "AB889X", + "72391": "AB889X", + "72392": "AB889X", + "72394": "AB889X", + "72395": "AB889X", + "72396": "AB889X", + "72401": "AB888X", + "72402": "AB888X", + "72403": "AB888X", + "72404": "AB888X", + "72410": "AB888X", + "72411": "AB888X", + "72412": "AB888X", + "72413": "AB888X", + "72414": "AB888X", + "72415": "AB888X", + "72416": "AB888X", + "72417": "AB888X", + "72419": "AB888X", + "72421": "AB888X", + "72422": "AB888X", + "72424": "AB888X", + "72425": "AB888X", + "72426": "AB889X", + "72427": "AB888X", + "72428": "AB889X", + "72429": "AB888X", + "72430": "AB888X", + "72431": "AB887X", + "72432": "AB888X", + "72433": "AB888X", + "72434": "AB888X", + "72435": "AB888X", + "72436": "AB888X", + "72437": "AB888X", + "72438": "AB888X", + "72439": "AB888X", + "72440": "AB888X", + "72441": "AB888X", + "72442": "AB888X", + "72443": "AB888X", + "72444": "AB888X", + "72445": "AB888X", + "72447": "AB888X", + "72449": "AB888X", + "72450": "AB888X", + "72451": "AB888X", + "72453": "AB888X", + "72454": "AB888X", + "72455": "AB888X", + "72456": "AB888X", + "72457": "AB888X", + "72458": "AB888X", + "72459": "AB888X", + "72460": "AB888X", + "72461": "AB888X", + "72462": "AB888X", + "72464": "AB888X", + "72465": "AB888X", + "72466": "AB888X", + "72467": "AB887X", + "72469": "AB888X", + "72470": "AB887X", + "72471": "AB888X", + "72472": "AB888X", + "72473": "AB888X", + "72474": "AB888X", + "72475": "AB888X", + "72476": "AB888X", + "72478": "AB888X", + "72479": "AB888X", + "72482": "AB888X", + "72501": "AB887X", + "72503": "AB887X", + "72512": "AB887X", + "72513": "AB888X", + "72515": "AB888X", + "72517": "AB888X", + "72519": "AB891X", + "72520": "AB888X", + "72521": "AB888X", + "72522": "AB887X", + "72523": "AB887X", + "72524": "AB887X", + "72525": "AB888X", + "72526": "AB887X", + "72527": "AB887X", + "72528": "AB887X", + "72529": "AB888X", + "72530": "AB887X", + "72531": "AB888X", + "72532": "AB888X", + "72533": "AB887X", + "72534": "AB887X", + "72536": "AB887X", + "72537": "AB891X", + "72538": "AB888X", + "72539": "AB888X", + "72540": "AB887X", + "72542": "AB888X", + "72543": "AB887X", + "72544": "AB891X", + "72545": "AB887X", + "72546": "AB887X", + "72550": "AB887X", + "72553": "AB887X", + "72554": "AB888X", + "72555": "AB887X", + "72556": "AB887X", + "72560": "AB887X", + "72561": "AB887X", + "72562": "AB887X", + "72564": "AB887X", + "72565": "AB888X", + "72566": "AB891X", + "72567": "AB887X", + "72568": "AB887X", + "72569": "AB888X", + "72571": "AB887X", + "72572": "AB888X", + "72573": "AB887X", + "72575": "AB887X", + "72576": "AB888X", + "72577": "AB888X", + "72578": "AB888X", + "72579": "AB887X", + "72581": "AB887X", + "72583": "AB888X", + "72584": "AB888X", + "72585": "AB887X", + "72587": "AB888X", + "72601": "AB891X", + "72602": "AB891X", + "72611": "AB891X", + "72613": "AB891X", + "72615": "AB891X", + "72616": "AB891X", + "72617": "AB891X", + "72619": "AB891X", + "72623": "AB891X", + "72624": "AB891X", + "72626": "AB891X", + "72628": "AB891X", + "72629": "AB887X", + "72630": "AB891X", + "72631": "AB891X", + "72632": "AB891X", + "72633": "AB891X", + "72634": "AB891X", + "72635": "AB891X", + "72636": "AB891X", + "72638": "AB891X", + "72639": "AB887X", + "72640": "AB891X", + "72641": "AB891X", + "72642": "AB891X", + "72644": "AB891X", + "72645": "AB887X", + "72648": "AB891X", + "72650": "AB891X", + "72651": "AB891X", + "72653": "AB891X", + "72654": "AB891X", + "72655": "AB891X", + "72657": "AB887X", + "72658": "AB891X", + "72659": "AB891X", + "72660": "AB891X", + "72661": "AB891X", + "72662": "AB891X", + "72663": "AB887X", + "72666": "AB891X", + "72668": "AB891X", + "72669": "AB891X", + "72670": "AB891X", + "72672": "AB891X", + "72675": "AB891X", + "72677": "AB891X", + "72679": "AB887X", + "72680": "AB887X", + "72682": "AB891X", + "72683": "AB891X", + "72685": "AB891X", + "72686": "AB891X", + "72687": "AB891X", + "72701": "AB890X", + "72702": "AB890X", + "72703": "AB890X", + "72704": "AB890X", + "72711": "AB890X", + "72712": "AB890X", + "72714": "AB890X", + "72715": "AB890X", + "72716": "AB890X", + "72717": "AB890X", + "72718": "AB890X", + "72719": "AB890X", + "72721": "AB890X", + "72722": "AB890X", + "72727": "AB890X", + "72728": "AB890X", + "72729": "AB890X", + "72730": "AB890X", + "72732": "AB890X", + "72733": "AB890X", + "72734": "AB890X", + "72735": "AB890X", + "72736": "AB890X", + "72737": "AB890X", + "72738": "AB890X", + "72739": "AB890X", + "72740": "AB890X", + "72741": "AB890X", + "72742": "AB890X", + "72744": "AB890X", + "72745": "AB890X", + "72747": "AB890X", + "72749": "AB890X", + "72751": "AB890X", + "72752": "AB890X", + "72753": "AB890X", + "72756": "AB890X", + "72757": "AB890X", + "72758": "AB890X", + "72760": "AB890X", + "72761": "AB890X", + "72762": "AB890X", + "72764": "AB890X", + "72765": "AB890X", + "72766": "AB890X", + "72768": "AB890X", + "72769": "AB890X", + "72770": "AB890X", + "72773": "AB890X", + "72774": "AB890X", + "72776": "AB890X", + "72801": "AB887X", + "72802": "AB887X", + "72811": "AB887X", + "72812": "AB887X", + "72820": "AB890X", + "72821": "AB887X", + "72823": "AB887X", + "72824": "AB887X", + "72826": "AB887X", + "72827": "AB887X", + "72828": "AB887X", + "72829": "AB887X", + "72830": "AB887X", + "72832": "AB887X", + "72833": "AB887X", + "72834": "AB887X", + "72835": "AB890X", + "72837": "AB887X", + "72838": "AB887X", + "72839": "AB887X", + "72840": "AB887X", + "72841": "AB887X", + "72842": "AB887X", + "72843": "AB887X", + "72845": "AB887X", + "72846": "AB887X", + "72847": "AB887X", + "72851": "AB890X", + "72852": "AB887X", + "72853": "AB887X", + "72854": "AB887X", + "72855": "AB890X", + "72856": "AB891X", + "72857": "AB887X", + "72858": "AB887X", + "72860": "AB887X", + "72863": "AB890X", + "72865": "AB890X", + "72901": "AB890X", + "72902": "AB890X", + "72903": "AB890X", + "72904": "AB890X", + "72905": "AB890X", + "72906": "AB890X", + "72908": "AB890X", + "72913": "AB890X", + "72914": "AB890X", + "72916": "AB890X", + "72917": "AB890X", + "72918": "AB890X", + "72919": "AB890X", + "72921": "AB890X", + "72923": "AB890X", + "72926": "AB890X", + "72927": "AB890X", + "72928": "AB890X", + "72930": "AB890X", + "72932": "AB890X", + "72933": "AB890X", + "72934": "AB890X", + "72935": "AB890X", + "72936": "AB890X", + "72937": "AB890X", + "72938": "AB890X", + "72940": "AB890X", + "72941": "AB890X", + "72943": "AB890X", + "72944": "AB890X", + "72945": "AB890X", + "72946": "AB890X", + "72947": "AB890X", + "72948": "AB890X", + "72949": "AB890X", + "72950": "AB890X", + "72951": "AB890X", + "72952": "AB890X", + "72955": "AB890X", + "72956": "AB890X", + "72957": "AB890X", + "72958": "AB890X", + "72959": "AB890X", + "73001": "AB890X", + "73002": "AB890X", + "73003": "AB890X", + "73004": "AB890X", + "73005": "AB890X", + "73006": "AB890X", + "73007": "AB890X", + "73008": "AB890X", + "73009": "AB890X", + "73010": "AB890X", + "73011": "AB890X", + "73012": "AB890X", + "73013": "AB890X", + "73014": "AB890X", + "73015": "AB890X", + "73016": "AB890X", + "73017": "AB890X", + "73018": "AB890X", + "73019": "AB890X", + "73020": "AB890X", + "73021": "AB890X", + "73022": "AB890X", + "73023": "AB890X", + "73024": "AB890X", + "73025": "AB890X", + "73026": "AB890X", + "73027": "AB890X", + "73028": "AB890X", + "73029": "AB890X", + "73030": "AB890X", + "73031": "AB890X", + "73032": "AB890X", + "73033": "AB890X", + "73034": "AB890X", + "73036": "AB890X", + "73038": "AB890X", + "73039": "AB890X", + "73040": "AB890X", + "73041": "AB890X", + "73042": "AB890X", + "73043": "AB890X", + "73044": "AB890X", + "73045": "AB890X", + "73047": "AB890X", + "73048": "AB890X", + "73049": "AB890X", + "73050": "AB890X", + "73051": "AB890X", + "73052": "AB890X", + "73053": "AB890X", + "73054": "AB890X", + "73055": "AB890X", + "73056": "AB890X", + "73057": "AB890X", + "73058": "AB890X", + "73059": "AB890X", + "73061": "AB890X", + "73062": "AB890X", + "73063": "AB890X", + "73064": "AB890X", + "73065": "AB890X", + "73066": "AB890X", + "73067": "AB890X", + "73068": "AB890X", + "73069": "AB890X", + "73070": "AB890X", + "73071": "AB890X", + "73072": "AB890X", + "73073": "AB890X", + "73074": "AB890X", + "73075": "AB890X", + "73077": "AB890X", + "73078": "AB890X", + "73079": "AB890X", + "73080": "AB890X", + "73081": "AB887X", + "73082": "AB890X", + "73083": "AB890X", + "73084": "AB890X", + "73085": "AB890X", + "73086": "AB890X", + "73089": "AB890X", + "73090": "AB890X", + "73092": "AB890X", + "73093": "AB890X", + "73094": "AB890X", + "73095": "AB890X", + "73096": "AB890X", + "73097": "AB890X", + "73098": "AB890X", + "73099": "AB890X", + "73101": "AB890X", + "73102": "AB890X", + "73103": "AB890X", + "73104": "AB890X", + "73105": "AB890X", + "73106": "AB890X", + "73107": "AB890X", + "73108": "AB890X", + "73109": "AB890X", + "73110": "AB890X", + "73111": "AB890X", + "73112": "AB890X", + "73113": "AB890X", + "73114": "AB890X", + "73115": "AB890X", + "73116": "AB890X", + "73117": "AB890X", + "73118": "AB890X", + "73119": "AB890X", + "73120": "AB890X", + "73121": "AB890X", + "73122": "AB890X", + "73123": "AB890X", + "73124": "AB890X", + "73125": "AB890X", + "73126": "AB890X", + "73127": "AB890X", + "73128": "AB890X", + "73129": "AB890X", + "73130": "AB890X", + "73131": "AB890X", + "73132": "AB890X", + "73134": "AB890X", + "73135": "AB890X", + "73136": "AB890X", + "73137": "AB890X", + "73139": "AB890X", + "73140": "AB890X", + "73141": "AB890X", + "73142": "AB890X", + "73143": "AB890X", + "73144": "AB890X", + "73145": "AB890X", + "73146": "AB890X", + "73147": "AB890X", + "73148": "AB890X", + "73149": "AB890X", + "73150": "AB890X", + "73151": "AB890X", + "73152": "AB890X", + "73153": "AB890X", + "73154": "AB890X", + "73155": "AB890X", + "73156": "AB890X", + "73157": "AB890X", + "73159": "AB890X", + "73160": "AB890X", + "73162": "AB890X", + "73163": "AB890X", + "73164": "AB890X", + "73165": "AB890X", + "73167": "AB890X", + "73169": "AB890X", + "73170": "AB890X", + "73172": "AB890X", + "73173": "AB890X", + "73178": "AB890X", + "73179": "AB890X", + "73184": "AB890X", + "73185": "AB890X", + "73189": "AB890X", + "73190": "AB890X", + "73193": "AB890X", + "73194": "AB890X", + "73195": "AB890X", + "73196": "AB890X", + "73197": "AB890X", + "73198": "AB890X", + "73199": "AB890X", + "73301": "AB890X", + "73344": "AB890X", + "73401": "AB887X", + "73402": "AB887X", + "73403": "AB887X", + "73425": "AB890X", + "73430": "AB887X", + "73432": "AB890X", + "73433": "AB890X", + "73434": "AB890X", + "73435": "AB887X", + "73436": "AB887X", + "73437": "AB887X", + "73438": "AB887X", + "73439": "AB887X", + "73440": "AB887X", + "73441": "AB887X", + "73442": "AB890X", + "73443": "AB887X", + "73444": "AB887X", + "73446": "AB887X", + "73447": "AB890X", + "73448": "AB887X", + "73449": "AB887X", + "73450": "AB890X", + "73452": "AB887X", + "73453": "AB887X", + "73455": "AB890X", + "73456": "AB890X", + "73458": "AB887X", + "73459": "AB887X", + "73460": "AB890X", + "73461": "AB890X", + "73463": "AB887X", + "73481": "AB887X", + "73487": "AB887X", + "73488": "AB887X", + "73491": "AB890X", + "73501": "AB890X", + "73502": "AB890X", + "73503": "AB890X", + "73505": "AB890X", + "73506": "AB890X", + "73507": "AB890X", + "73520": "AB890X", + "73521": "AB890X", + "73522": "AB890X", + "73523": "AB890X", + "73526": "AB890X", + "73527": "AB890X", + "73528": "AB890X", + "73529": "AB890X", + "73530": "AB890X", + "73531": "AB890X", + "73532": "AB890X", + "73533": "AB890X", + "73534": "AB890X", + "73536": "AB890X", + "73537": "AB890X", + "73538": "AB890X", + "73539": "AB890X", + "73540": "AB890X", + "73541": "AB890X", + "73542": "AB890X", + "73543": "AB890X", + "73544": "AB890X", + "73546": "AB890X", + "73547": "AB890X", + "73548": "AB890X", + "73549": "AB890X", + "73550": "AB890X", + "73551": "AB890X", + "73552": "AB890X", + "73553": "AB890X", + "73554": "AB890X", + "73555": "AB890X", + "73556": "AB890X", + "73557": "AB890X", + "73558": "AB890X", + "73559": "AB900X", + "73560": "AB890X", + "73561": "AB890X", + "73562": "AB890X", + "73564": "AB900X", + "73565": "AB890X", + "73566": "AB900X", + "73567": "AB890X", + "73568": "AB890X", + "73569": "AB890X", + "73570": "AB890X", + "73571": "AB890X", + "73572": "AB890X", + "73573": "AB890X", + "73601": "AB890X", + "73620": "AB890X", + "73622": "AB890X", + "73624": "AB890X", + "73625": "AB890X", + "73626": "AB890X", + "73627": "AB890X", + "73628": "AB890X", + "73632": "AB890X", + "73638": "AB890X", + "73639": "AB890X", + "73641": "AB890X", + "73642": "AB890X", + "73644": "AB890X", + "73645": "AB890X", + "73646": "AB890X", + "73647": "AB890X", + "73648": "AB890X", + "73650": "AB890X", + "73651": "AB890X", + "73654": "AB890X", + "73655": "AB890X", + "73658": "AB890X", + "73659": "AB890X", + "73660": "AB890X", + "73661": "AB890X", + "73662": "AB890X", + "73663": "AB890X", + "73664": "AB890X", + "73666": "AB890X", + "73667": "AB890X", + "73668": "AB890X", + "73669": "AB890X", + "73673": "AB890X", + "73701": "AB890X", + "73702": "AB890X", + "73703": "AB890X", + "73705": "AB890X", + "73706": "AB890X", + "73716": "AB890X", + "73717": "AB890X", + "73718": "AB890X", + "73719": "AB890X", + "73720": "AB890X", + "73722": "AB890X", + "73724": "AB890X", + "73726": "AB890X", + "73727": "AB890X", + "73728": "AB890X", + "73729": "AB890X", + "73730": "AB890X", + "73731": "AB890X", + "73733": "AB890X", + "73734": "AB890X", + "73735": "AB890X", + "73736": "AB890X", + "73737": "AB890X", + "73738": "AB890X", + "73739": "AB890X", + "73741": "AB890X", + "73742": "AB890X", + "73743": "AB890X", + "73744": "AB890X", + "73746": "AB890X", + "73747": "AB890X", + "73748": "AB890X", + "73749": "AB890X", + "73750": "AB890X", + "73753": "AB890X", + "73754": "AB890X", + "73755": "AB890X", + "73756": "AB890X", + "73757": "AB890X", + "73758": "AB890X", + "73759": "AB890X", + "73760": "AB890X", + "73761": "AB890X", + "73762": "AB890X", + "73763": "AB890X", + "73764": "AB890X", + "73766": "AB890X", + "73768": "AB890X", + "73770": "AB890X", + "73771": "AB890X", + "73772": "AB890X", + "73773": "AB890X", + "73801": "AB890X", + "73802": "AB890X", + "73832": "AB890X", + "73834": "AB890X", + "73835": "AB890X", + "73838": "AB890X", + "73840": "AB890X", + "73841": "AB890X", + "73842": "AB890X", + "73843": "AB890X", + "73844": "AB888X", + "73848": "AB890X", + "73851": "AB890X", + "73852": "AB890X", + "73853": "AB890X", + "73855": "AB890X", + "73857": "AB890X", + "73858": "AB890X", + "73859": "AB890X", + "73860": "AB890X", + "73901": "AB900X", + "73931": "AB888X", + "73932": "AB888X", + "73933": "AB890X", + "73937": "AB890X", + "73938": "AB888X", + "73939": "AB900X", + "73942": "AB900X", + "73944": "AB900X", + "73945": "AB900X", + "73946": "AB890X", + "73947": "AB890X", + "73948": "AB900X", + "73949": "AB900X", + "73950": "AB888X", + "73951": "AB900X", + "73958": "AB890X", + "74001": "AB890X", + "74002": "AB890X", + "74003": "AB890X", + "74004": "AB890X", + "74005": "AB890X", + "74006": "AB890X", + "74008": "AB890X", + "74010": "AB890X", + "74011": "AB890X", + "74012": "AB890X", + "74013": "AB890X", + "74014": "AB890X", + "74015": "AB890X", + "74016": "AB890X", + "74017": "AB890X", + "74018": "AB890X", + "74019": "AB890X", + "74020": "AB890X", + "74021": "AB890X", + "74022": "AB890X", + "74023": "AB890X", + "74026": "AB890X", + "74027": "AB890X", + "74028": "AB890X", + "74029": "AB890X", + "74030": "AB890X", + "74031": "AB890X", + "74032": "AB890X", + "74033": "AB890X", + "74034": "AB890X", + "74035": "AB890X", + "74036": "AB890X", + "74037": "AB890X", + "74038": "AB890X", + "74039": "AB890X", + "74041": "AB890X", + "74042": "AB890X", + "74043": "AB890X", + "74044": "AB890X", + "74045": "AB890X", + "74046": "AB890X", + "74047": "AB890X", + "74048": "AB890X", + "74050": "AB890X", + "74051": "AB890X", + "74052": "AB890X", + "74053": "AB890X", + "74054": "AB890X", + "74055": "AB890X", + "74056": "AB890X", + "74058": "AB890X", + "74059": "AB890X", + "74060": "AB890X", + "74061": "AB890X", + "74062": "AB890X", + "74063": "AB890X", + "74066": "AB890X", + "74067": "AB890X", + "74068": "AB890X", + "74070": "AB890X", + "74071": "AB890X", + "74072": "AB890X", + "74073": "AB890X", + "74074": "AB890X", + "74075": "AB890X", + "74076": "AB890X", + "74077": "AB890X", + "74078": "AB890X", + "74079": "AB890X", + "74080": "AB890X", + "74081": "AB890X", + "74082": "AB890X", + "74083": "AB890X", + "74084": "AB890X", + "74085": "AB890X", + "74087": "AB890X", + "74100": "AB890X", + "74101": "AB890X", + "74102": "AB890X", + "74103": "AB890X", + "74104": "AB890X", + "74105": "AB890X", + "74106": "AB890X", + "74107": "AB890X", + "74108": "AB890X", + "74110": "AB890X", + "74112": "AB890X", + "74114": "AB890X", + "74115": "AB890X", + "74116": "AB890X", + "74117": "AB890X", + "74119": "AB890X", + "74120": "AB890X", + "74121": "AB890X", + "74126": "AB890X", + "74127": "AB890X", + "74128": "AB890X", + "74129": "AB890X", + "74130": "AB890X", + "74131": "AB890X", + "74132": "AB890X", + "74133": "AB890X", + "74134": "AB890X", + "74135": "AB890X", + "74136": "AB890X", + "74137": "AB890X", + "74141": "AB890X", + "74145": "AB890X", + "74146": "AB890X", + "74147": "AB890X", + "74148": "AB890X", + "74149": "AB890X", + "74150": "AB890X", + "74152": "AB890X", + "74153": "AB890X", + "74154": "AB890X", + "74155": "AB890X", + "74156": "AB890X", + "74157": "AB890X", + "74158": "AB890X", + "74159": "AB890X", + "74169": "AB890X", + "74170": "AB890X", + "74171": "AB890X", + "74172": "AB890X", + "74182": "AB890X", + "74183": "AB890X", + "74184": "AB890X", + "74186": "AB890X", + "74187": "AB890X", + "74189": "AB890X", + "74192": "AB890X", + "74193": "AB890X", + "74194": "AB890X", + "74301": "AB890X", + "74330": "AB890X", + "74331": "AB890X", + "74332": "AB890X", + "74333": "AB890X", + "74335": "AB890X", + "74337": "AB890X", + "74338": "AB890X", + "74339": "AB890X", + "74340": "AB890X", + "74342": "AB890X", + "74343": "AB890X", + "74344": "AB890X", + "74345": "AB890X", + "74346": "AB890X", + "74347": "AB890X", + "74349": "AB890X", + "74350": "AB890X", + "74352": "AB890X", + "74354": "AB890X", + "74355": "AB890X", + "74358": "AB890X", + "74359": "AB890X", + "74360": "AB890X", + "74361": "AB890X", + "74362": "AB890X", + "74363": "AB890X", + "74364": "AB890X", + "74365": "AB890X", + "74366": "AB890X", + "74367": "AB890X", + "74368": "AB890X", + "74369": "AB890X", + "74370": "AB890X", + "74401": "AB890X", + "74402": "AB890X", + "74403": "AB890X", + "74421": "AB890X", + "74422": "AB890X", + "74423": "AB890X", + "74425": "AB890X", + "74426": "AB890X", + "74427": "AB890X", + "74428": "AB890X", + "74429": "AB890X", + "74430": "AB890X", + "74431": "AB890X", + "74432": "AB890X", + "74434": "AB890X", + "74435": "AB890X", + "74436": "AB890X", + "74437": "AB890X", + "74438": "AB890X", + "74439": "AB890X", + "74440": "AB890X", + "74441": "AB890X", + "74442": "AB890X", + "74444": "AB890X", + "74445": "AB890X", + "74446": "AB890X", + "74447": "AB890X", + "74450": "AB890X", + "74451": "AB890X", + "74452": "AB890X", + "74454": "AB890X", + "74455": "AB890X", + "74456": "AB890X", + "74457": "AB890X", + "74458": "AB890X", + "74459": "AB890X", + "74460": "AB890X", + "74461": "AB890X", + "74462": "AB890X", + "74463": "AB890X", + "74464": "AB890X", + "74465": "AB890X", + "74466": "AB890X", + "74467": "AB890X", + "74468": "AB890X", + "74469": "AB890X", + "74470": "AB890X", + "74471": "AB890X", + "74472": "AB890X", + "74477": "AB890X", + "74501": "AB890X", + "74502": "AB890X", + "74521": "AB890X", + "74522": "AB890X", + "74523": "AB890X", + "74525": "AB887X", + "74528": "AB890X", + "74529": "AB890X", + "74530": "AB890X", + "74531": "AB890X", + "74533": "AB887X", + "74534": "AB887X", + "74535": "AB887X", + "74536": "AB890X", + "74538": "AB887X", + "74540": "AB887X", + "74542": "AB887X", + "74543": "AB890X", + "74545": "AB890X", + "74546": "AB890X", + "74547": "AB890X", + "74549": "AB890X", + "74552": "AB890X", + "74553": "AB890X", + "74554": "AB890X", + "74555": "AB887X", + "74556": "AB887X", + "74557": "AB890X", + "74558": "AB890X", + "74559": "AB890X", + "74560": "AB890X", + "74561": "AB890X", + "74562": "AB890X", + "74563": "AB890X", + "74565": "AB890X", + "74567": "AB890X", + "74569": "AB887X", + "74570": "AB890X", + "74571": "AB890X", + "74572": "AB887X", + "74574": "AB890X", + "74576": "AB890X", + "74577": "AB890X", + "74578": "AB890X", + "74601": "AB890X", + "74602": "AB890X", + "74604": "AB890X", + "74630": "AB890X", + "74631": "AB890X", + "74632": "AB890X", + "74633": "AB890X", + "74636": "AB890X", + "74637": "AB890X", + "74640": "AB890X", + "74641": "AB890X", + "74643": "AB890X", + "74644": "AB890X", + "74646": "AB890X", + "74647": "AB890X", + "74650": "AB890X", + "74651": "AB890X", + "74652": "AB890X", + "74653": "AB890X", + "74701": "AB887X", + "74702": "AB887X", + "74720": "AB887X", + "74721": "AB887X", + "74722": "AB890X", + "74723": "AB887X", + "74724": "AB890X", + "74726": "AB887X", + "74727": "AB890X", + "74728": "AB890X", + "74729": "AB887X", + "74730": "AB887X", + "74731": "AB887X", + "74733": "AB887X", + "74734": "AB890X", + "74735": "AB890X", + "74736": "AB890X", + "74737": "AB890X", + "74738": "AB890X", + "74740": "AB890X", + "74741": "AB887X", + "74743": "AB890X", + "74745": "AB890X", + "74747": "AB887X", + "74748": "AB890X", + "74750": "AB890X", + "74752": "AB890X", + "74753": "AB887X", + "74754": "AB890X", + "74755": "AB890X", + "74756": "AB890X", + "74759": "AB890X", + "74760": "AB890X", + "74761": "AB890X", + "74764": "AB890X", + "74766": "AB890X", + "74801": "AB890X", + "74802": "AB890X", + "74804": "AB890X", + "74818": "AB890X", + "74820": "AB890X", + "74821": "AB890X", + "74824": "AB890X", + "74825": "AB890X", + "74826": "AB890X", + "74827": "AB890X", + "74829": "AB890X", + "74830": "AB890X", + "74831": "AB890X", + "74832": "AB890X", + "74833": "AB890X", + "74834": "AB890X", + "74836": "AB890X", + "74837": "AB890X", + "74839": "AB890X", + "74840": "AB890X", + "74842": "AB890X", + "74843": "AB890X", + "74844": "AB890X", + "74845": "AB890X", + "74848": "AB890X", + "74849": "AB890X", + "74850": "AB890X", + "74851": "AB890X", + "74852": "AB890X", + "74854": "AB890X", + "74855": "AB890X", + "74856": "AB890X", + "74857": "AB890X", + "74859": "AB890X", + "74860": "AB890X", + "74864": "AB890X", + "74865": "AB890X", + "74866": "AB890X", + "74867": "AB890X", + "74868": "AB890X", + "74869": "AB890X", + "74871": "AB890X", + "74872": "AB890X", + "74873": "AB890X", + "74875": "AB890X", + "74878": "AB890X", + "74880": "AB890X", + "74881": "AB890X", + "74883": "AB890X", + "74884": "AB890X", + "74901": "AB890X", + "74902": "AB890X", + "74930": "AB890X", + "74931": "AB890X", + "74932": "AB890X", + "74935": "AB890X", + "74936": "AB890X", + "74937": "AB890X", + "74939": "AB890X", + "74940": "AB890X", + "74941": "AB890X", + "74942": "AB890X", + "74943": "AB890X", + "74944": "AB890X", + "74945": "AB890X", + "74946": "AB890X", + "74947": "AB890X", + "74948": "AB890X", + "74949": "AB890X", + "74951": "AB890X", + "74953": "AB890X", + "74954": "AB890X", + "74955": "AB890X", + "74956": "AB890X", + "74957": "AB890X", + "74959": "AB890X", + "74960": "AB890X", + "74962": "AB890X", + "74963": "AB890X", + "74964": "AB890X", + "74965": "AB890X", + "74966": "AB890X", + "75001": "AB887X", + "75002": "AB887X", + "75006": "AB887X", + "75007": "AB887X", + "75009": "AB887X", + "75010": "AB887X", + "75011": "AB887X", + "75013": "AB887X", + "75014": "AB887X", + "75015": "AB887X", + "75016": "AB887X", + "75017": "AB887X", + "75019": "AB887X", + "75020": "AB887X", + "75021": "AB887X", + "75022": "AB887X", + "75023": "AB887X", + "75024": "AB887X", + "75025": "AB887X", + "75026": "AB887X", + "75027": "AB887X", + "75028": "AB887X", + "75029": "AB887X", + "75030": "AB887X", + "75032": "AB887X", + "75033": "AB887X", + "75034": "AB887X", + "75035": "AB887X", + "75037": "AB887X", + "75038": "AB887X", + "75039": "AB887X", + "75040": "AB887X", + "75041": "AB887X", + "75042": "AB887X", + "75043": "AB887X", + "75044": "AB887X", + "75045": "AB887X", + "75046": "AB887X", + "75047": "AB887X", + "75048": "AB887X", + "75049": "AB887X", + "75050": "AB887X", + "75051": "AB887X", + "75052": "AB887X", + "75053": "AB887X", + "75054": "AB887X", + "75056": "AB887X", + "75057": "AB887X", + "75058": "AB887X", + "75060": "AB887X", + "75061": "AB887X", + "75062": "AB887X", + "75063": "AB887X", + "75065": "AB887X", + "75067": "AB887X", + "75068": "AB887X", + "75069": "AB887X", + "75070": "AB887X", + "75071": "AB887X", + "75074": "AB887X", + "75075": "AB887X", + "75076": "AB887X", + "75077": "AB887X", + "75078": "AB887X", + "75080": "AB887X", + "75081": "AB887X", + "75082": "AB887X", + "75083": "AB887X", + "75085": "AB887X", + "75086": "AB887X", + "75087": "AB887X", + "75088": "AB887X", + "75089": "AB887X", + "75090": "AB887X", + "75091": "AB887X", + "75092": "AB887X", + "75093": "AB887X", + "75094": "AB887X", + "75097": "AB887X", + "75098": "AB887X", + "75099": "AB887X", + "75101": "AB887X", + "75102": "AB887X", + "75103": "AB887X", + "75104": "AB887X", + "75105": "AB887X", + "75106": "AB887X", + "75109": "AB887X", + "75110": "AB887X", + "75114": "AB887X", + "75115": "AB887X", + "75116": "AB887X", + "75117": "AB887X", + "75118": "AB887X", + "75119": "AB887X", + "75120": "AB887X", + "75121": "AB887X", + "75123": "AB887X", + "75124": "AB887X", + "75125": "AB887X", + "75126": "AB887X", + "75127": "AB887X", + "75132": "AB887X", + "75134": "AB887X", + "75135": "AB887X", + "75137": "AB887X", + "75138": "AB887X", + "75140": "AB887X", + "75141": "AB887X", + "75142": "AB887X", + "75143": "AB887X", + "75144": "AB887X", + "75146": "AB887X", + "75147": "AB887X", + "75148": "AB887X", + "75149": "AB887X", + "75150": "AB887X", + "75151": "AB887X", + "75152": "AB887X", + "75153": "AB887X", + "75154": "AB887X", + "75155": "AB887X", + "75156": "AB887X", + "75157": "AB887X", + "75158": "AB887X", + "75159": "AB887X", + "75160": "AB887X", + "75161": "AB887X", + "75163": "AB887X", + "75164": "AB887X", + "75165": "AB887X", + "75166": "AB887X", + "75167": "AB887X", + "75168": "AB887X", + "75169": "AB887X", + "75172": "AB887X", + "75173": "AB887X", + "75180": "AB887X", + "75181": "AB887X", + "75182": "AB887X", + "75185": "AB887X", + "75187": "AB887X", + "75189": "AB887X", + "75201": "AB887X", + "75202": "AB887X", + "75203": "AB887X", + "75204": "AB887X", + "75205": "AB887X", + "75206": "AB887X", + "75207": "AB887X", + "75208": "AB887X", + "75209": "AB887X", + "75210": "AB887X", + "75211": "AB887X", + "75212": "AB887X", + "75214": "AB887X", + "75215": "AB887X", + "75216": "AB887X", + "75217": "AB887X", + "75218": "AB887X", + "75219": "AB887X", + "75220": "AB887X", + "75221": "AB887X", + "75222": "AB887X", + "75223": "AB887X", + "75224": "AB887X", + "75225": "AB887X", + "75226": "AB887X", + "75227": "AB887X", + "75228": "AB887X", + "75229": "AB887X", + "75230": "AB887X", + "75231": "AB887X", + "75232": "AB887X", + "75233": "AB887X", + "75234": "AB887X", + "75235": "AB887X", + "75236": "AB887X", + "75237": "AB887X", + "75238": "AB887X", + "75240": "AB887X", + "75241": "AB887X", + "75242": "AB887X", + "75243": "AB887X", + "75244": "AB887X", + "75245": "AB887X", + "75246": "AB887X", + "75247": "AB887X", + "75248": "AB887X", + "75249": "AB887X", + "75250": "AB887X", + "75251": "AB887X", + "75252": "AB887X", + "75253": "AB887X", + "75254": "AB887X", + "75258": "AB887X", + "75260": "AB887X", + "75261": "AB887X", + "75262": "AB887X", + "75263": "AB887X", + "75264": "AB887X", + "75265": "AB887X", + "75266": "AB887X", + "75267": "AB887X", + "75270": "AB887X", + "75275": "AB887X", + "75277": "AB887X", + "75283": "AB887X", + "75284": "AB887X", + "75285": "AB887X", + "75286": "AB887X", + "75287": "AB887X", + "75301": "AB887X", + "75303": "AB887X", + "75310": "AB887X", + "75312": "AB887X", + "75313": "AB887X", + "75315": "AB887X", + "75320": "AB887X", + "75323": "AB887X", + "75326": "AB887X", + "75334": "AB887X", + "75336": "AB887X", + "75339": "AB887X", + "75340": "AB887X", + "75342": "AB887X", + "75343": "AB887X", + "75344": "AB887X", + "75353": "AB887X", + "75354": "AB887X", + "75355": "AB887X", + "75356": "AB887X", + "75357": "AB887X", + "75358": "AB887X", + "75359": "AB887X", + "75360": "AB887X", + "75363": "AB887X", + "75364": "AB887X", + "75367": "AB887X", + "75368": "AB887X", + "75370": "AB887X", + "75371": "AB887X", + "75372": "AB887X", + "75373": "AB887X", + "75374": "AB887X", + "75376": "AB887X", + "75378": "AB887X", + "75379": "AB887X", + "75380": "AB887X", + "75381": "AB887X", + "75382": "AB887X", + "75386": "AB887X", + "75387": "AB887X", + "75388": "AB887X", + "75389": "AB887X", + "75390": "AB887X", + "75391": "AB887X", + "75392": "AB887X", + "75393": "AB887X", + "75394": "AB887X", + "75395": "AB887X", + "75396": "AB887X", + "75397": "AB887X", + "75398": "AB887X", + "75401": "AB887X", + "75402": "AB887X", + "75403": "AB887X", + "75404": "AB887X", + "75407": "AB887X", + "75409": "AB887X", + "75410": "AB888X", + "75411": "AB887X", + "75412": "AB887X", + "75413": "AB887X", + "75414": "AB887X", + "75415": "AB887X", + "75416": "AB887X", + "75417": "AB887X", + "75418": "AB887X", + "75420": "AB887X", + "75421": "AB887X", + "75422": "AB887X", + "75423": "AB887X", + "75424": "AB887X", + "75425": "AB887X", + "75426": "AB887X", + "75428": "AB887X", + "75429": "AB887X", + "75431": "AB887X", + "75432": "AB887X", + "75433": "AB887X", + "75434": "AB887X", + "75435": "AB887X", + "75436": "AB887X", + "75437": "AB887X", + "75438": "AB887X", + "75439": "AB887X", + "75440": "AB887X", + "75441": "AB887X", + "75442": "AB887X", + "75443": "AB887X", + "75444": "AB888X", + "75446": "AB887X", + "75447": "AB887X", + "75448": "AB887X", + "75449": "AB887X", + "75450": "AB887X", + "75451": "AB888X", + "75452": "AB887X", + "75453": "AB887X", + "75454": "AB887X", + "75455": "AB888X", + "75456": "AB888X", + "75457": "AB887X", + "75458": "AB887X", + "75459": "AB887X", + "75460": "AB887X", + "75461": "AB887X", + "75462": "AB887X", + "75468": "AB887X", + "75469": "AB887X", + "75470": "AB887X", + "75471": "AB887X", + "75472": "AB887X", + "75473": "AB887X", + "75474": "AB887X", + "75475": "AB887X", + "75476": "AB887X", + "75477": "AB887X", + "75478": "AB887X", + "75479": "AB887X", + "75480": "AB887X", + "75481": "AB887X", + "75482": "AB887X", + "75483": "AB887X", + "75485": "AB887X", + "75486": "AB887X", + "75487": "AB887X", + "75488": "AB887X", + "75489": "AB887X", + "75490": "AB887X", + "75491": "AB887X", + "75492": "AB887X", + "75493": "AB888X", + "75494": "AB888X", + "75495": "AB887X", + "75496": "AB887X", + "75497": "AB888X", + "75501": "AB888X", + "75503": "AB888X", + "75504": "AB888X", + "75505": "AB888X", + "75507": "AB888X", + "75550": "AB887X", + "75551": "AB888X", + "75554": "AB887X", + "75555": "AB888X", + "75556": "AB888X", + "75558": "AB888X", + "75559": "AB888X", + "75560": "AB888X", + "75561": "AB888X", + "75562": "AB888X", + "75563": "AB888X", + "75564": "AB888X", + "75565": "AB888X", + "75566": "AB888X", + "75567": "AB888X", + "75568": "AB888X", + "75569": "AB888X", + "75570": "AB888X", + "75571": "AB888X", + "75572": "AB888X", + "75573": "AB888X", + "75574": "AB888X", + "75599": "AB888X", + "75601": "AB888X", + "75602": "AB888X", + "75603": "AB888X", + "75604": "AB888X", + "75605": "AB888X", + "75606": "AB888X", + "75607": "AB888X", + "75608": "AB888X", + "75615": "AB888X", + "75630": "AB888X", + "75631": "AB888X", + "75633": "AB888X", + "75636": "AB888X", + "75637": "AB888X", + "75638": "AB888X", + "75639": "AB888X", + "75640": "AB888X", + "75641": "AB888X", + "75642": "AB888X", + "75643": "AB888X", + "75644": "AB888X", + "75645": "AB888X", + "75647": "AB888X", + "75650": "AB888X", + "75651": "AB888X", + "75652": "AB888X", + "75653": "AB888X", + "75654": "AB888X", + "75656": "AB888X", + "75657": "AB888X", + "75658": "AB888X", + "75659": "AB888X", + "75660": "AB888X", + "75661": "AB888X", + "75662": "AB888X", + "75663": "AB888X", + "75666": "AB888X", + "75667": "AB888X", + "75668": "AB888X", + "75669": "AB888X", + "75670": "AB888X", + "75671": "AB888X", + "75672": "AB888X", + "75680": "AB888X", + "75681": "AB888X", + "75682": "AB888X", + "75683": "AB888X", + "75684": "AB888X", + "75685": "AB888X", + "75686": "AB888X", + "75687": "AB888X", + "75688": "AB888X", + "75689": "AB888X", + "75691": "AB888X", + "75692": "AB888X", + "75693": "AB888X", + "75694": "AB888X", + "75701": "AB888X", + "75702": "AB888X", + "75703": "AB888X", + "75704": "AB888X", + "75705": "AB888X", + "75706": "AB888X", + "75707": "AB888X", + "75708": "AB888X", + "75709": "AB888X", + "75710": "AB888X", + "75711": "AB888X", + "75712": "AB888X", + "75713": "AB888X", + "75750": "AB888X", + "75751": "AB887X", + "75752": "AB887X", + "75754": "AB887X", + "75755": "AB888X", + "75756": "AB887X", + "75757": "AB888X", + "75758": "AB887X", + "75759": "AB888X", + "75760": "AB888X", + "75762": "AB888X", + "75763": "AB887X", + "75764": "AB888X", + "75765": "AB888X", + "75766": "AB888X", + "75770": "AB887X", + "75771": "AB888X", + "75772": "AB888X", + "75773": "AB888X", + "75778": "AB887X", + "75779": "AB887X", + "75780": "AB888X", + "75782": "AB887X", + "75783": "AB888X", + "75784": "AB888X", + "75785": "AB888X", + "75788": "AB888X", + "75789": "AB888X", + "75790": "AB887X", + "75791": "AB888X", + "75792": "AB888X", + "75797": "AB888X", + "75798": "AB888X", + "75799": "AB888X", + "75801": "AB887X", + "75802": "AB887X", + "75803": "AB887X", + "75831": "AB890X", + "75832": "AB887X", + "75833": "AB890X", + "75834": "AB890X", + "75835": "AB888X", + "75838": "AB890X", + "75839": "AB887X", + "75840": "AB890X", + "75844": "AB888X", + "75845": "AB890X", + "75846": "AB890X", + "75847": "AB888X", + "75848": "AB890X", + "75849": "AB888X", + "75850": "AB890X", + "75851": "AB888X", + "75852": "AB890X", + "75853": "AB887X", + "75855": "AB890X", + "75856": "AB890X", + "75858": "AB888X", + "75859": "AB890X", + "75860": "AB890X", + "75861": "AB887X", + "75862": "AB890X", + "75865": "AB890X", + "75880": "AB887X", + "75882": "AB887X", + "75884": "AB887X", + "75886": "AB887X", + "75901": "AB888X", + "75902": "AB888X", + "75903": "AB888X", + "75904": "AB888X", + "75915": "AB888X", + "75925": "AB888X", + "75926": "AB890X", + "75928": "AB890X", + "75929": "AB888X", + "75930": "AB888X", + "75931": "AB890X", + "75932": "AB890X", + "75933": "AB890X", + "75934": "AB890X", + "75935": "AB888X", + "75936": "AB890X", + "75937": "AB888X", + "75938": "AB890X", + "75939": "AB890X", + "75941": "AB888X", + "75942": "AB890X", + "75943": "AB888X", + "75944": "AB888X", + "75946": "AB888X", + "75948": "AB888X", + "75949": "AB888X", + "75951": "AB890X", + "75954": "AB888X", + "75956": "AB890X", + "75958": "AB888X", + "75959": "AB888X", + "75960": "AB890X", + "75961": "AB888X", + "75962": "AB888X", + "75963": "AB888X", + "75964": "AB888X", + "75965": "AB888X", + "75966": "AB890X", + "75968": "AB888X", + "75969": "AB888X", + "75972": "AB888X", + "75973": "AB888X", + "75974": "AB888X", + "75975": "AB888X", + "75976": "AB888X", + "75977": "AB890X", + "75978": "AB888X", + "75979": "AB890X", + "75980": "AB888X", + "75990": "AB890X", + "76001": "AB887X", + "76002": "AB887X", + "76003": "AB887X", + "76004": "AB887X", + "76005": "AB887X", + "76006": "AB887X", + "76007": "AB887X", + "76008": "AB887X", + "76009": "AB887X", + "76010": "AB887X", + "76011": "AB887X", + "76012": "AB887X", + "76013": "AB887X", + "76014": "AB887X", + "76015": "AB887X", + "76016": "AB887X", + "76017": "AB887X", + "76018": "AB887X", + "76019": "AB887X", + "76020": "AB887X", + "76021": "AB887X", + "76022": "AB887X", + "76023": "AB887X", + "76028": "AB887X", + "76031": "AB887X", + "76033": "AB887X", + "76034": "AB887X", + "76035": "AB887X", + "76036": "AB887X", + "76039": "AB887X", + "76040": "AB887X", + "76041": "AB887X", + "76043": "AB887X", + "76044": "AB887X", + "76048": "AB887X", + "76049": "AB887X", + "76050": "AB887X", + "76051": "AB887X", + "76052": "AB887X", + "76053": "AB887X", + "76054": "AB887X", + "76055": "AB887X", + "76058": "AB887X", + "76059": "AB887X", + "76060": "AB887X", + "76061": "AB887X", + "76063": "AB887X", + "76064": "AB887X", + "76065": "AB887X", + "76066": "AB887X", + "76067": "AB887X", + "76068": "AB887X", + "76070": "AB887X", + "76071": "AB887X", + "76073": "AB887X", + "76077": "AB887X", + "76078": "AB887X", + "76082": "AB887X", + "76084": "AB887X", + "76085": "AB887X", + "76086": "AB887X", + "76087": "AB887X", + "76088": "AB887X", + "76092": "AB887X", + "76093": "AB887X", + "76094": "AB887X", + "76095": "AB887X", + "76096": "AB887X", + "76097": "AB887X", + "76098": "AB887X", + "76099": "AB887X", + "76101": "AB887X", + "76102": "AB887X", + "76103": "AB887X", + "76104": "AB887X", + "76105": "AB887X", + "76106": "AB887X", + "76107": "AB887X", + "76108": "AB887X", + "76109": "AB887X", + "76110": "AB887X", + "76111": "AB887X", + "76112": "AB887X", + "76113": "AB887X", + "76114": "AB887X", + "76115": "AB887X", + "76116": "AB887X", + "76117": "AB887X", + "76118": "AB887X", + "76119": "AB887X", + "76120": "AB887X", + "76121": "AB887X", + "76122": "AB887X", + "76123": "AB887X", + "76124": "AB887X", + "76126": "AB887X", + "76127": "AB887X", + "76129": "AB887X", + "76130": "AB887X", + "76131": "AB887X", + "76132": "AB887X", + "76133": "AB887X", + "76134": "AB887X", + "76135": "AB887X", + "76136": "AB887X", + "76137": "AB887X", + "76140": "AB887X", + "76147": "AB887X", + "76148": "AB887X", + "76150": "AB887X", + "76155": "AB887X", + "76161": "AB887X", + "76162": "AB887X", + "76163": "AB887X", + "76164": "AB887X", + "76177": "AB887X", + "76179": "AB887X", + "76180": "AB887X", + "76181": "AB887X", + "76182": "AB887X", + "76185": "AB887X", + "76191": "AB887X", + "76192": "AB887X", + "76193": "AB887X", + "76195": "AB887X", + "76196": "AB887X", + "76197": "AB887X", + "76198": "AB887X", + "76199": "AB887X", + "76201": "AB887X", + "76202": "AB887X", + "76203": "AB887X", + "76204": "AB887X", + "76205": "AB887X", + "76206": "AB887X", + "76207": "AB887X", + "76208": "AB887X", + "76209": "AB887X", + "76210": "AB887X", + "76225": "AB887X", + "76226": "AB887X", + "76227": "AB887X", + "76228": "AB900X", + "76230": "AB900X", + "76233": "AB887X", + "76234": "AB887X", + "76238": "AB887X", + "76239": "AB900X", + "76240": "AB887X", + "76241": "AB887X", + "76244": "AB887X", + "76245": "AB887X", + "76246": "AB887X", + "76247": "AB887X", + "76248": "AB887X", + "76249": "AB887X", + "76250": "AB887X", + "76251": "AB900X", + "76252": "AB887X", + "76253": "AB887X", + "76255": "AB900X", + "76258": "AB887X", + "76259": "AB887X", + "76261": "AB900X", + "76262": "AB887X", + "76263": "AB887X", + "76264": "AB887X", + "76265": "AB900X", + "76266": "AB887X", + "76267": "AB887X", + "76268": "AB887X", + "76270": "AB900X", + "76271": "AB887X", + "76272": "AB887X", + "76273": "AB887X", + "76299": "AB887X", + "76301": "AB900X", + "76302": "AB900X", + "76305": "AB900X", + "76306": "AB900X", + "76307": "AB900X", + "76308": "AB900X", + "76309": "AB900X", + "76310": "AB900X", + "76311": "AB900X", + "76351": "AB900X", + "76352": "AB900X", + "76354": "AB900X", + "76357": "AB900X", + "76360": "AB900X", + "76363": "AB900X", + "76364": "AB900X", + "76365": "AB900X", + "76366": "AB900X", + "76367": "AB900X", + "76369": "AB900X", + "76370": "AB900X", + "76371": "AB900X", + "76372": "AB900X", + "76373": "AB900X", + "76374": "AB900X", + "76377": "AB900X", + "76379": "AB900X", + "76380": "AB900X", + "76384": "AB900X", + "76385": "AB900X", + "76388": "AB900X", + "76389": "AB900X", + "76401": "AB887X", + "76402": "AB887X", + "76424": "AB900X", + "76426": "AB887X", + "76427": "AB900X", + "76429": "AB900X", + "76430": "AB900X", + "76431": "AB887X", + "76432": "AB900X", + "76433": "AB887X", + "76435": "AB900X", + "76436": "AB887X", + "76437": "AB900X", + "76439": "AB887X", + "76442": "AB887X", + "76443": "AB900X", + "76444": "AB887X", + "76445": "AB900X", + "76446": "AB887X", + "76448": "AB900X", + "76449": "AB887X", + "76450": "AB900X", + "76452": "AB887X", + "76453": "AB887X", + "76454": "AB900X", + "76455": "AB887X", + "76457": "AB887X", + "76458": "AB900X", + "76459": "AB900X", + "76460": "AB900X", + "76461": "AB887X", + "76462": "AB887X", + "76463": "AB887X", + "76464": "AB900X", + "76465": "AB887X", + "76466": "AB900X", + "76467": "AB887X", + "76468": "AB887X", + "76469": "AB900X", + "76470": "AB900X", + "76471": "AB900X", + "76472": "AB887X", + "76474": "AB887X", + "76475": "AB887X", + "76476": "AB887X", + "76481": "AB900X", + "76483": "AB900X", + "76484": "AB887X", + "76485": "AB887X", + "76486": "AB900X", + "76487": "AB887X", + "76490": "AB887X", + "76491": "AB900X", + "76501": "AB890X", + "76502": "AB890X", + "76503": "AB890X", + "76504": "AB890X", + "76505": "AB890X", + "76508": "AB890X", + "76511": "AB890X", + "76513": "AB890X", + "76518": "AB890X", + "76519": "AB890X", + "76520": "AB890X", + "76522": "AB890X", + "76523": "AB890X", + "76524": "AB890X", + "76525": "AB890X", + "76526": "AB890X", + "76527": "AB890X", + "76528": "AB890X", + "76530": "AB890X", + "76531": "AB887X", + "76533": "AB890X", + "76534": "AB890X", + "76537": "AB890X", + "76538": "AB890X", + "76539": "AB890X", + "76540": "AB890X", + "76541": "AB890X", + "76542": "AB890X", + "76543": "AB890X", + "76544": "AB890X", + "76545": "AB890X", + "76546": "AB890X", + "76547": "AB890X", + "76548": "AB890X", + "76549": "AB890X", + "76550": "AB890X", + "76554": "AB890X", + "76556": "AB890X", + "76557": "AB890X", + "76558": "AB890X", + "76559": "AB890X", + "76561": "AB890X", + "76564": "AB890X", + "76565": "AB887X", + "76566": "AB890X", + "76567": "AB890X", + "76569": "AB890X", + "76570": "AB890X", + "76571": "AB890X", + "76573": "AB890X", + "76574": "AB890X", + "76577": "AB890X", + "76578": "AB890X", + "76579": "AB890X", + "76596": "AB890X", + "76597": "AB890X", + "76598": "AB890X", + "76599": "AB890X", + "76621": "AB887X", + "76622": "AB887X", + "76623": "AB887X", + "76624": "AB890X", + "76626": "AB887X", + "76627": "AB887X", + "76628": "AB887X", + "76629": "AB890X", + "76630": "AB890X", + "76631": "AB887X", + "76632": "AB890X", + "76633": "AB890X", + "76634": "AB890X", + "76635": "AB890X", + "76636": "AB887X", + "76637": "AB890X", + "76638": "AB890X", + "76639": "AB887X", + "76640": "AB890X", + "76641": "AB887X", + "76642": "AB890X", + "76643": "AB890X", + "76644": "AB890X", + "76645": "AB887X", + "76648": "AB887X", + "76649": "AB890X", + "76650": "AB887X", + "76651": "AB887X", + "76652": "AB890X", + "76653": "AB890X", + "76654": "AB890X", + "76655": "AB890X", + "76656": "AB890X", + "76657": "AB890X", + "76660": "AB887X", + "76661": "AB890X", + "76664": "AB890X", + "76665": "AB890X", + "76666": "AB887X", + "76667": "AB890X", + "76670": "AB887X", + "76671": "AB890X", + "76673": "AB887X", + "76676": "AB887X", + "76678": "AB890X", + "76679": "AB887X", + "76680": "AB890X", + "76681": "AB887X", + "76682": "AB890X", + "76684": "AB890X", + "76685": "AB890X", + "76686": "AB890X", + "76687": "AB890X", + "76689": "AB890X", + "76690": "AB890X", + "76691": "AB890X", + "76692": "AB887X", + "76693": "AB890X", + "76701": "AB890X", + "76702": "AB890X", + "76703": "AB890X", + "76704": "AB890X", + "76705": "AB890X", + "76706": "AB890X", + "76707": "AB890X", + "76708": "AB890X", + "76710": "AB890X", + "76711": "AB890X", + "76712": "AB890X", + "76714": "AB890X", + "76715": "AB890X", + "76716": "AB890X", + "76795": "AB890X", + "76797": "AB890X", + "76798": "AB890X", + "76799": "AB890X", + "76801": "AB900X", + "76802": "AB900X", + "76803": "AB900X", + "76804": "AB900X", + "76820": "AB900X", + "76821": "AB900X", + "76823": "AB900X", + "76824": "AB900X", + "76825": "AB900X", + "76827": "AB900X", + "76828": "AB900X", + "76831": "AB890X", + "76832": "AB900X", + "76834": "AB900X", + "76836": "AB900X", + "76837": "AB900X", + "76841": "AB900X", + "76842": "AB900X", + "76844": "AB890X", + "76845": "AB900X", + "76848": "AB900X", + "76849": "AB900X", + "76852": "AB900X", + "76853": "AB890X", + "76854": "AB900X", + "76855": "AB900X", + "76856": "AB900X", + "76857": "AB900X", + "76858": "AB900X", + "76859": "AB900X", + "76861": "AB900X", + "76862": "AB900X", + "76864": "AB890X", + "76865": "AB900X", + "76866": "AB900X", + "76869": "AB900X", + "76870": "AB890X", + "76871": "AB900X", + "76872": "AB900X", + "76873": "AB900X", + "76874": "AB900X", + "76875": "AB900X", + "76877": "AB900X", + "76878": "AB900X", + "76880": "AB890X", + "76882": "AB900X", + "76883": "AB891X", + "76884": "AB900X", + "76885": "AB890X", + "76886": "AB900X", + "76887": "AB900X", + "76888": "AB900X", + "76890": "AB900X", + "76901": "AB900X", + "76902": "AB900X", + "76903": "AB900X", + "76904": "AB900X", + "76905": "AB900X", + "76906": "AB900X", + "76908": "AB900X", + "76909": "AB900X", + "76930": "AB900X", + "76932": "AB900X", + "76933": "AB900X", + "76934": "AB900X", + "76935": "AB900X", + "76936": "AB900X", + "76937": "AB900X", + "76939": "AB900X", + "76940": "AB900X", + "76941": "AB900X", + "76943": "AB900X", + "76945": "AB900X", + "76949": "AB900X", + "76950": "AB900X", + "76951": "AB900X", + "76953": "AB900X", + "76955": "AB900X", + "76957": "AB900X", + "76958": "AB900X", + "77001": "AB890X", + "77002": "AB890X", + "77003": "AB890X", + "77004": "AB890X", + "77005": "AB890X", + "77006": "AB890X", + "77007": "AB890X", + "77008": "AB890X", + "77009": "AB890X", + "77010": "AB890X", + "77011": "AB890X", + "77012": "AB890X", + "77013": "AB890X", + "77014": "AB890X", + "77015": "AB890X", + "77016": "AB890X", + "77017": "AB890X", + "77018": "AB890X", + "77019": "AB890X", + "77020": "AB890X", + "77021": "AB890X", + "77022": "AB890X", + "77023": "AB890X", + "77024": "AB890X", + "77025": "AB890X", + "77026": "AB890X", + "77027": "AB890X", + "77028": "AB890X", + "77029": "AB890X", + "77030": "AB890X", + "77031": "AB890X", + "77032": "AB890X", + "77033": "AB890X", + "77034": "AB890X", + "77035": "AB890X", + "77036": "AB890X", + "77037": "AB890X", + "77038": "AB890X", + "77039": "AB890X", + "77040": "AB890X", + "77041": "AB890X", + "77042": "AB890X", + "77043": "AB890X", + "77044": "AB890X", + "77045": "AB890X", + "77046": "AB890X", + "77047": "AB890X", + "77048": "AB890X", + "77049": "AB890X", + "77050": "AB890X", + "77051": "AB890X", + "77052": "AB890X", + "77053": "AB890X", + "77054": "AB890X", + "77055": "AB890X", + "77056": "AB890X", + "77057": "AB890X", + "77058": "AB890X", + "77059": "AB890X", + "77060": "AB890X", + "77061": "AB890X", + "77062": "AB890X", + "77063": "AB890X", + "77064": "AB890X", + "77065": "AB890X", + "77066": "AB890X", + "77067": "AB890X", + "77068": "AB890X", + "77069": "AB890X", + "77070": "AB890X", + "77071": "AB890X", + "77072": "AB890X", + "77073": "AB890X", + "77074": "AB890X", + "77075": "AB890X", + "77076": "AB890X", + "77077": "AB890X", + "77078": "AB890X", + "77079": "AB890X", + "77080": "AB890X", + "77081": "AB890X", + "77082": "AB890X", + "77083": "AB890X", + "77084": "AB890X", + "77085": "AB890X", + "77086": "AB890X", + "77087": "AB890X", + "77088": "AB890X", + "77089": "AB890X", + "77090": "AB890X", + "77091": "AB890X", + "77092": "AB890X", + "77093": "AB890X", + "77094": "AB890X", + "77095": "AB890X", + "77096": "AB890X", + "77097": "AB890X", + "77098": "AB890X", + "77099": "AB890X", + "77201": "AB890X", + "77202": "AB890X", + "77203": "AB890X", + "77204": "AB890X", + "77205": "AB890X", + "77206": "AB890X", + "77207": "AB890X", + "77208": "AB890X", + "77209": "AB890X", + "77210": "AB890X", + "77212": "AB890X", + "77213": "AB890X", + "77215": "AB890X", + "77216": "AB890X", + "77217": "AB890X", + "77218": "AB890X", + "77219": "AB890X", + "77220": "AB890X", + "77221": "AB890X", + "77222": "AB890X", + "77223": "AB890X", + "77224": "AB890X", + "77225": "AB890X", + "77226": "AB890X", + "77227": "AB890X", + "77228": "AB890X", + "77229": "AB890X", + "77230": "AB890X", + "77231": "AB890X", + "77233": "AB890X", + "77234": "AB890X", + "77235": "AB890X", + "77236": "AB890X", + "77237": "AB890X", + "77238": "AB890X", + "77240": "AB890X", + "77241": "AB890X", + "77242": "AB890X", + "77243": "AB890X", + "77244": "AB890X", + "77245": "AB890X", + "77246": "AB890X", + "77247": "AB890X", + "77248": "AB890X", + "77249": "AB890X", + "77250": "AB890X", + "77251": "AB890X", + "77252": "AB890X", + "77253": "AB890X", + "77254": "AB890X", + "77255": "AB890X", + "77256": "AB890X", + "77257": "AB890X", + "77258": "AB890X", + "77259": "AB890X", + "77260": "AB890X", + "77261": "AB890X", + "77262": "AB890X", + "77263": "AB890X", + "77265": "AB890X", + "77266": "AB890X", + "77267": "AB890X", + "77268": "AB890X", + "77269": "AB890X", + "77270": "AB890X", + "77271": "AB890X", + "77272": "AB890X", + "77273": "AB890X", + "77274": "AB890X", + "77275": "AB890X", + "77276": "AB890X", + "77277": "AB890X", + "77278": "AB890X", + "77279": "AB890X", + "77280": "AB890X", + "77282": "AB890X", + "77284": "AB890X", + "77285": "AB890X", + "77286": "AB890X", + "77287": "AB890X", + "77288": "AB890X", + "77289": "AB890X", + "77290": "AB890X", + "77291": "AB890X", + "77292": "AB890X", + "77293": "AB890X", + "77294": "AB890X", + "77296": "AB890X", + "77297": "AB890X", + "77298": "AB890X", + "77299": "AB890X", + "77301": "AB890X", + "77302": "AB890X", + "77303": "AB890X", + "77304": "AB890X", + "77305": "AB890X", + "77306": "AB890X", + "77315": "AB890X", + "77316": "AB890X", + "77318": "AB890X", + "77320": "AB890X", + "77325": "AB890X", + "77326": "AB890X", + "77327": "AB890X", + "77328": "AB890X", + "77331": "AB890X", + "77332": "AB890X", + "77333": "AB890X", + "77334": "AB890X", + "77335": "AB890X", + "77336": "AB890X", + "77337": "AB890X", + "77338": "AB890X", + "77339": "AB890X", + "77340": "AB890X", + "77341": "AB890X", + "77342": "AB890X", + "77343": "AB890X", + "77344": "AB890X", + "77345": "AB890X", + "77346": "AB890X", + "77347": "AB890X", + "77348": "AB890X", + "77349": "AB890X", + "77350": "AB890X", + "77351": "AB890X", + "77353": "AB890X", + "77354": "AB890X", + "77355": "AB890X", + "77356": "AB890X", + "77357": "AB890X", + "77358": "AB890X", + "77359": "AB890X", + "77360": "AB890X", + "77362": "AB890X", + "77363": "AB890X", + "77364": "AB890X", + "77365": "AB890X", + "77367": "AB890X", + "77368": "AB890X", + "77369": "AB890X", + "77371": "AB890X", + "77372": "AB890X", + "77373": "AB890X", + "77374": "AB890X", + "77375": "AB890X", + "77376": "AB890X", + "77377": "AB890X", + "77378": "AB890X", + "77379": "AB890X", + "77380": "AB890X", + "77381": "AB890X", + "77382": "AB890X", + "77383": "AB890X", + "77384": "AB890X", + "77385": "AB890X", + "77386": "AB890X", + "77387": "AB890X", + "77388": "AB890X", + "77389": "AB890X", + "77391": "AB890X", + "77393": "AB890X", + "77396": "AB890X", + "77399": "AB890X", + "77401": "AB890X", + "77402": "AB890X", + "77404": "AB890X", + "77406": "AB890X", + "77410": "AB890X", + "77411": "AB890X", + "77412": "AB890X", + "77413": "AB890X", + "77414": "AB890X", + "77415": "AB890X", + "77417": "AB890X", + "77418": "AB890X", + "77419": "AB890X", + "77420": "AB890X", + "77422": "AB890X", + "77423": "AB890X", + "77426": "AB890X", + "77428": "AB890X", + "77429": "AB890X", + "77430": "AB890X", + "77431": "AB890X", + "77432": "AB890X", + "77433": "AB890X", + "77434": "AB890X", + "77435": "AB890X", + "77436": "AB890X", + "77437": "AB890X", + "77440": "AB890X", + "77441": "AB890X", + "77442": "AB890X", + "77443": "AB890X", + "77444": "AB890X", + "77445": "AB890X", + "77446": "AB890X", + "77447": "AB890X", + "77448": "AB890X", + "77449": "AB890X", + "77450": "AB890X", + "77451": "AB890X", + "77452": "AB890X", + "77453": "AB890X", + "77454": "AB890X", + "77455": "AB890X", + "77456": "AB890X", + "77457": "AB890X", + "77458": "AB890X", + "77459": "AB890X", + "77460": "AB890X", + "77461": "AB890X", + "77463": "AB890X", + "77464": "AB890X", + "77465": "AB890X", + "77466": "AB890X", + "77467": "AB890X", + "77468": "AB890X", + "77469": "AB890X", + "77470": "AB890X", + "77471": "AB890X", + "77473": "AB890X", + "77474": "AB890X", + "77475": "AB890X", + "77476": "AB890X", + "77477": "AB890X", + "77478": "AB890X", + "77479": "AB890X", + "77480": "AB890X", + "77481": "AB890X", + "77482": "AB890X", + "77483": "AB890X", + "77484": "AB890X", + "77485": "AB890X", + "77486": "AB890X", + "77487": "AB890X", + "77488": "AB890X", + "77489": "AB890X", + "77491": "AB890X", + "77492": "AB890X", + "77493": "AB890X", + "77494": "AB890X", + "77496": "AB890X", + "77497": "AB890X", + "77498": "AB890X", + "77501": "AB890X", + "77502": "AB890X", + "77503": "AB890X", + "77504": "AB890X", + "77505": "AB890X", + "77506": "AB890X", + "77507": "AB890X", + "77508": "AB890X", + "77510": "AB890X", + "77511": "AB890X", + "77512": "AB890X", + "77514": "AB890X", + "77515": "AB890X", + "77516": "AB890X", + "77517": "AB890X", + "77518": "AB890X", + "77519": "AB890X", + "77520": "AB890X", + "77521": "AB890X", + "77522": "AB890X", + "77523": "AB890X", + "77530": "AB890X", + "77531": "AB890X", + "77532": "AB890X", + "77533": "AB890X", + "77534": "AB890X", + "77535": "AB890X", + "77536": "AB890X", + "77538": "AB890X", + "77539": "AB890X", + "77541": "AB890X", + "77542": "AB890X", + "77545": "AB890X", + "77546": "AB890X", + "77547": "AB890X", + "77549": "AB890X", + "77550": "AB890X", + "77551": "AB890X", + "77552": "AB890X", + "77553": "AB890X", + "77554": "AB890X", + "77555": "AB890X", + "77560": "AB890X", + "77561": "AB890X", + "77562": "AB890X", + "77563": "AB890X", + "77564": "AB890X", + "77565": "AB890X", + "77566": "AB890X", + "77568": "AB890X", + "77571": "AB890X", + "77572": "AB890X", + "77573": "AB890X", + "77574": "AB890X", + "77575": "AB890X", + "77577": "AB890X", + "77578": "AB890X", + "77580": "AB890X", + "77581": "AB890X", + "77582": "AB890X", + "77583": "AB890X", + "77584": "AB890X", + "77585": "AB890X", + "77586": "AB890X", + "77587": "AB890X", + "77588": "AB890X", + "77590": "AB890X", + "77591": "AB890X", + "77592": "AB890X", + "77597": "AB890X", + "77598": "AB890X", + "77611": "AB890X", + "77612": "AB890X", + "77613": "AB890X", + "77614": "AB890X", + "77615": "AB890X", + "77616": "AB890X", + "77617": "AB890X", + "77619": "AB890X", + "77622": "AB890X", + "77623": "AB890X", + "77624": "AB890X", + "77625": "AB890X", + "77626": "AB890X", + "77627": "AB890X", + "77629": "AB890X", + "77630": "AB890X", + "77631": "AB890X", + "77632": "AB890X", + "77639": "AB890X", + "77640": "AB890X", + "77641": "AB890X", + "77642": "AB890X", + "77643": "AB890X", + "77650": "AB890X", + "77651": "AB890X", + "77655": "AB890X", + "77656": "AB890X", + "77657": "AB890X", + "77659": "AB890X", + "77660": "AB890X", + "77661": "AB890X", + "77662": "AB890X", + "77663": "AB890X", + "77664": "AB890X", + "77665": "AB890X", + "77670": "AB890X", + "77701": "AB890X", + "77702": "AB890X", + "77703": "AB890X", + "77704": "AB890X", + "77705": "AB890X", + "77706": "AB890X", + "77707": "AB890X", + "77708": "AB890X", + "77709": "AB890X", + "77710": "AB890X", + "77713": "AB890X", + "77720": "AB890X", + "77725": "AB890X", + "77726": "AB890X", + "77801": "AB890X", + "77802": "AB890X", + "77803": "AB890X", + "77805": "AB890X", + "77806": "AB890X", + "77807": "AB890X", + "77808": "AB890X", + "77830": "AB890X", + "77831": "AB890X", + "77833": "AB890X", + "77834": "AB890X", + "77835": "AB890X", + "77836": "AB890X", + "77837": "AB890X", + "77838": "AB890X", + "77840": "AB890X", + "77841": "AB890X", + "77842": "AB890X", + "77843": "AB890X", + "77844": "AB890X", + "77845": "AB890X", + "77850": "AB890X", + "77852": "AB890X", + "77853": "AB890X", + "77855": "AB890X", + "77856": "AB890X", + "77857": "AB890X", + "77859": "AB890X", + "77861": "AB890X", + "77862": "AB890X", + "77863": "AB890X", + "77864": "AB890X", + "77865": "AB890X", + "77866": "AB890X", + "77867": "AB890X", + "77868": "AB890X", + "77869": "AB890X", + "77870": "AB890X", + "77871": "AB890X", + "77872": "AB890X", + "77873": "AB890X", + "77875": "AB890X", + "77876": "AB890X", + "77878": "AB890X", + "77879": "AB890X", + "77880": "AB890X", + "77881": "AB890X", + "77882": "AB890X", + "77901": "AB890X", + "77902": "AB890X", + "77903": "AB890X", + "77904": "AB890X", + "77905": "AB890X", + "77950": "AB891X", + "77951": "AB890X", + "77954": "AB890X", + "77957": "AB890X", + "77960": "AB889X", + "77961": "AB890X", + "77962": "AB890X", + "77963": "AB889X", + "77964": "AB890X", + "77967": "AB890X", + "77968": "AB890X", + "77969": "AB890X", + "77970": "AB890X", + "77971": "AB890X", + "77973": "AB890X", + "77974": "AB890X", + "77975": "AB890X", + "77976": "AB890X", + "77977": "AB890X", + "77978": "AB890X", + "77979": "AB890X", + "77982": "AB890X", + "77983": "AB890X", + "77984": "AB890X", + "77986": "AB890X", + "77987": "AB890X", + "77988": "AB890X", + "77989": "AB890X", + "77990": "AB891X", + "77991": "AB890X", + "77993": "AB889X", + "77994": "AB890X", + "77995": "AB890X", + "78001": "AB891X", + "78002": "AB891X", + "78003": "AB891X", + "78004": "AB891X", + "78005": "AB891X", + "78006": "AB891X", + "78007": "AB891X", + "78008": "AB891X", + "78009": "AB891X", + "78010": "AB891X", + "78011": "AB891X", + "78012": "AB891X", + "78013": "AB891X", + "78014": "AB891X", + "78015": "AB891X", + "78016": "AB891X", + "78017": "AB891X", + "78019": "AB891X", + "78021": "AB891X", + "78022": "AB891X", + "78023": "AB891X", + "78024": "AB891X", + "78025": "AB891X", + "78026": "AB891X", + "78027": "AB891X", + "78028": "AB891X", + "78029": "AB891X", + "78039": "AB891X", + "78040": "AB891X", + "78041": "AB891X", + "78042": "AB891X", + "78043": "AB891X", + "78044": "AB891X", + "78045": "AB891X", + "78046": "AB891X", + "78049": "AB891X", + "78050": "AB891X", + "78052": "AB891X", + "78054": "AB891X", + "78055": "AB891X", + "78056": "AB891X", + "78057": "AB891X", + "78058": "AB891X", + "78059": "AB891X", + "78060": "AB891X", + "78061": "AB891X", + "78062": "AB891X", + "78063": "AB891X", + "78064": "AB891X", + "78065": "AB891X", + "78066": "AB891X", + "78067": "AB891X", + "78069": "AB891X", + "78070": "AB890X", + "78071": "AB891X", + "78072": "AB891X", + "78073": "AB891X", + "78074": "AB891X", + "78075": "AB891X", + "78076": "AB891X", + "78101": "AB891X", + "78102": "AB891X", + "78104": "AB891X", + "78107": "AB889X", + "78108": "AB891X", + "78109": "AB891X", + "78111": "AB891X", + "78112": "AB891X", + "78113": "AB891X", + "78114": "AB891X", + "78115": "AB891X", + "78116": "AB891X", + "78117": "AB891X", + "78118": "AB891X", + "78119": "AB891X", + "78121": "AB891X", + "78122": "AB891X", + "78123": "AB891X", + "78124": "AB891X", + "78125": "AB891X", + "78130": "AB890X", + "78131": "AB890X", + "78132": "AB890X", + "78133": "AB890X", + "78135": "AB890X", + "78140": "AB891X", + "78141": "AB890X", + "78142": "AB891X", + "78143": "AB891X", + "78144": "AB891X", + "78145": "AB891X", + "78146": "AB891X", + "78147": "AB891X", + "78148": "AB891X", + "78150": "AB891X", + "78151": "AB891X", + "78152": "AB891X", + "78154": "AB891X", + "78155": "AB891X", + "78156": "AB891X", + "78159": "AB891X", + "78160": "AB891X", + "78161": "AB891X", + "78162": "AB891X", + "78163": "AB890X", + "78164": "AB890X", + "78201": "AB891X", + "78202": "AB891X", + "78203": "AB891X", + "78204": "AB891X", + "78205": "AB891X", + "78206": "AB891X", + "78207": "AB891X", + "78208": "AB891X", + "78209": "AB891X", + "78210": "AB891X", + "78211": "AB891X", + "78212": "AB891X", + "78213": "AB891X", + "78214": "AB891X", + "78215": "AB891X", + "78216": "AB891X", + "78217": "AB891X", + "78218": "AB891X", + "78219": "AB891X", + "78220": "AB891X", + "78221": "AB891X", + "78222": "AB891X", + "78223": "AB891X", + "78224": "AB891X", + "78225": "AB891X", + "78226": "AB891X", + "78227": "AB891X", + "78228": "AB891X", + "78229": "AB891X", + "78230": "AB891X", + "78231": "AB891X", + "78232": "AB891X", + "78233": "AB891X", + "78234": "AB891X", + "78235": "AB891X", + "78236": "AB891X", + "78237": "AB891X", + "78238": "AB891X", + "78239": "AB891X", + "78240": "AB891X", + "78241": "AB891X", + "78242": "AB891X", + "78243": "AB891X", + "78244": "AB891X", + "78245": "AB891X", + "78246": "AB891X", + "78247": "AB891X", + "78248": "AB891X", + "78249": "AB891X", + "78250": "AB891X", + "78251": "AB891X", + "78252": "AB891X", + "78253": "AB891X", + "78254": "AB891X", + "78255": "AB891X", + "78256": "AB891X", + "78257": "AB891X", + "78258": "AB891X", + "78259": "AB891X", + "78260": "AB891X", + "78261": "AB891X", + "78262": "AB891X", + "78263": "AB891X", + "78264": "AB891X", + "78265": "AB891X", + "78266": "AB890X", + "78268": "AB891X", + "78269": "AB891X", + "78270": "AB891X", + "78275": "AB891X", + "78278": "AB891X", + "78279": "AB891X", + "78280": "AB891X", + "78283": "AB891X", + "78284": "AB891X", + "78285": "AB891X", + "78286": "AB891X", + "78287": "AB891X", + "78288": "AB891X", + "78289": "AB891X", + "78291": "AB891X", + "78292": "AB891X", + "78293": "AB891X", + "78294": "AB891X", + "78295": "AB891X", + "78296": "AB891X", + "78297": "AB891X", + "78298": "AB891X", + "78299": "AB891X", + "78330": "AB891X", + "78332": "AB891X", + "78333": "AB891X", + "78335": "AB891X", + "78336": "AB891X", + "78338": "AB891X", + "78339": "AB891X", + "78340": "AB891X", + "78341": "AB891X", + "78342": "AB891X", + "78343": "AB891X", + "78344": "AB891X", + "78347": "AB891X", + "78349": "AB891X", + "78350": "AB891X", + "78351": "AB891X", + "78352": "AB891X", + "78353": "AB891X", + "78355": "AB891X", + "78357": "AB891X", + "78358": "AB891X", + "78359": "AB891X", + "78360": "AB891X", + "78361": "AB891X", + "78362": "AB891X", + "78363": "AB891X", + "78364": "AB891X", + "78368": "AB891X", + "78369": "AB891X", + "78370": "AB891X", + "78371": "AB891X", + "78372": "AB891X", + "78373": "AB891X", + "78374": "AB891X", + "78375": "AB891X", + "78376": "AB891X", + "78377": "AB891X", + "78379": "AB891X", + "78380": "AB891X", + "78381": "AB891X", + "78382": "AB891X", + "78383": "AB891X", + "78384": "AB891X", + "78385": "AB891X", + "78387": "AB891X", + "78389": "AB891X", + "78390": "AB891X", + "78391": "AB891X", + "78393": "AB891X", + "78401": "AB891X", + "78402": "AB891X", + "78403": "AB891X", + "78404": "AB891X", + "78405": "AB891X", + "78406": "AB891X", + "78407": "AB891X", + "78408": "AB891X", + "78409": "AB891X", + "78410": "AB891X", + "78411": "AB891X", + "78412": "AB891X", + "78413": "AB891X", + "78414": "AB891X", + "78415": "AB891X", + "78416": "AB891X", + "78417": "AB891X", + "78418": "AB891X", + "78419": "AB891X", + "78426": "AB891X", + "78427": "AB891X", + "78460": "AB891X", + "78461": "AB891X", + "78463": "AB891X", + "78465": "AB891X", + "78466": "AB891X", + "78467": "AB891X", + "78468": "AB891X", + "78469": "AB891X", + "78470": "AB891X", + "78471": "AB891X", + "78472": "AB891X", + "78473": "AB891X", + "78474": "AB891X", + "78475": "AB891X", + "78476": "AB891X", + "78477": "AB891X", + "78478": "AB891X", + "78480": "AB891X", + "78501": "AB891X", + "78502": "AB891X", + "78503": "AB891X", + "78504": "AB891X", + "78505": "AB891X", + "78516": "AB891X", + "78520": "AB891X", + "78521": "AB891X", + "78522": "AB891X", + "78523": "AB891X", + "78526": "AB891X", + "78535": "AB891X", + "78536": "AB891X", + "78537": "AB891X", + "78538": "AB891X", + "78539": "AB891X", + "78540": "AB891X", + "78541": "AB891X", + "78542": "AB891X", + "78543": "AB891X", + "78545": "AB891X", + "78547": "AB891X", + "78548": "AB891X", + "78549": "AB891X", + "78550": "AB891X", + "78551": "AB891X", + "78552": "AB891X", + "78553": "AB891X", + "78557": "AB891X", + "78558": "AB891X", + "78559": "AB891X", + "78560": "AB891X", + "78561": "AB891X", + "78562": "AB891X", + "78563": "AB891X", + "78564": "AB891X", + "78565": "AB891X", + "78566": "AB891X", + "78567": "AB891X", + "78568": "AB891X", + "78569": "AB891X", + "78570": "AB891X", + "78572": "AB891X", + "78573": "AB891X", + "78574": "AB891X", + "78575": "AB891X", + "78576": "AB891X", + "78577": "AB891X", + "78578": "AB891X", + "78579": "AB891X", + "78580": "AB891X", + "78582": "AB891X", + "78583": "AB891X", + "78584": "AB891X", + "78585": "AB891X", + "78586": "AB891X", + "78588": "AB891X", + "78589": "AB891X", + "78590": "AB891X", + "78591": "AB891X", + "78592": "AB891X", + "78593": "AB891X", + "78594": "AB891X", + "78595": "AB891X", + "78596": "AB891X", + "78597": "AB891X", + "78598": "AB891X", + "78599": "AB891X", + "78602": "AB890X", + "78604": "AB891X", + "78605": "AB890X", + "78606": "AB890X", + "78607": "AB890X", + "78608": "AB890X", + "78609": "AB890X", + "78610": "AB890X", + "78611": "AB890X", + "78612": "AB890X", + "78613": "AB890X", + "78614": "AB891X", + "78615": "AB890X", + "78616": "AB890X", + "78617": "AB890X", + "78618": "AB890X", + "78619": "AB890X", + "78620": "AB890X", + "78621": "AB890X", + "78622": "AB890X", + "78623": "AB890X", + "78624": "AB890X", + "78626": "AB890X", + "78627": "AB890X", + "78628": "AB890X", + "78629": "AB891X", + "78630": "AB890X", + "78631": "AB890X", + "78632": "AB891X", + "78633": "AB890X", + "78634": "AB890X", + "78635": "AB890X", + "78636": "AB890X", + "78638": "AB891X", + "78639": "AB890X", + "78640": "AB890X", + "78641": "AB890X", + "78642": "AB890X", + "78643": "AB890X", + "78644": "AB890X", + "78645": "AB890X", + "78646": "AB890X", + "78648": "AB890X", + "78650": "AB890X", + "78651": "AB890X", + "78652": "AB890X", + "78653": "AB890X", + "78654": "AB890X", + "78655": "AB890X", + "78656": "AB890X", + "78657": "AB890X", + "78658": "AB891X", + "78659": "AB890X", + "78660": "AB890X", + "78661": "AB890X", + "78662": "AB890X", + "78663": "AB890X", + "78664": "AB890X", + "78665": "AB890X", + "78666": "AB890X", + "78667": "AB890X", + "78669": "AB890X", + "78670": "AB891X", + "78671": "AB890X", + "78672": "AB890X", + "78673": "AB890X", + "78674": "AB890X", + "78675": "AB890X", + "78676": "AB890X", + "78677": "AB891X", + "78680": "AB890X", + "78681": "AB890X", + "78682": "AB890X", + "78683": "AB890X", + "78691": "AB890X", + "78701": "AB890X", + "78702": "AB890X", + "78703": "AB890X", + "78704": "AB890X", + "78705": "AB890X", + "78708": "AB890X", + "78709": "AB890X", + "78710": "AB890X", + "78711": "AB890X", + "78712": "AB890X", + "78713": "AB890X", + "78714": "AB890X", + "78715": "AB890X", + "78716": "AB890X", + "78717": "AB890X", + "78718": "AB890X", + "78719": "AB890X", + "78720": "AB890X", + "78721": "AB890X", + "78722": "AB890X", + "78723": "AB890X", + "78724": "AB890X", + "78725": "AB890X", + "78726": "AB890X", + "78727": "AB890X", + "78728": "AB890X", + "78729": "AB890X", + "78730": "AB890X", + "78731": "AB890X", + "78732": "AB890X", + "78733": "AB890X", + "78734": "AB890X", + "78735": "AB890X", + "78736": "AB890X", + "78737": "AB890X", + "78738": "AB890X", + "78739": "AB890X", + "78741": "AB890X", + "78742": "AB890X", + "78744": "AB890X", + "78745": "AB890X", + "78746": "AB890X", + "78747": "AB890X", + "78748": "AB890X", + "78749": "AB890X", + "78750": "AB890X", + "78751": "AB890X", + "78752": "AB890X", + "78753": "AB890X", + "78754": "AB890X", + "78755": "AB890X", + "78756": "AB890X", + "78757": "AB890X", + "78758": "AB890X", + "78759": "AB890X", + "78760": "AB890X", + "78761": "AB890X", + "78762": "AB890X", + "78763": "AB890X", + "78764": "AB890X", + "78765": "AB890X", + "78766": "AB890X", + "78767": "AB890X", + "78768": "AB890X", + "78769": "AB890X", + "78772": "AB890X", + "78773": "AB890X", + "78774": "AB890X", + "78778": "AB890X", + "78779": "AB890X", + "78780": "AB890X", + "78781": "AB890X", + "78783": "AB890X", + "78785": "AB890X", + "78786": "AB890X", + "78788": "AB890X", + "78789": "AB890X", + "78798": "AB890X", + "78799": "AB890X", + "78801": "AB891X", + "78802": "AB891X", + "78827": "AB891X", + "78828": "AB891X", + "78829": "AB891X", + "78830": "AB891X", + "78832": "AB891X", + "78833": "AB891X", + "78834": "AB891X", + "78836": "AB891X", + "78837": "AB891X", + "78838": "AB891X", + "78839": "AB891X", + "78840": "AB891X", + "78841": "AB891X", + "78842": "AB891X", + "78843": "AB891X", + "78847": "AB891X", + "78850": "AB891X", + "78851": "AB900X", + "78852": "AB891X", + "78853": "AB891X", + "78860": "AB891X", + "78861": "AB891X", + "78870": "AB891X", + "78871": "AB891X", + "78872": "AB891X", + "78873": "AB891X", + "78877": "AB891X", + "78879": "AB891X", + "78880": "AB891X", + "78881": "AB891X", + "78883": "AB891X", + "78884": "AB891X", + "78885": "AB891X", + "78886": "AB891X", + "78931": "AB890X", + "78932": "AB890X", + "78933": "AB890X", + "78934": "AB890X", + "78935": "AB890X", + "78938": "AB890X", + "78940": "AB890X", + "78941": "AB890X", + "78942": "AB890X", + "78943": "AB890X", + "78944": "AB890X", + "78945": "AB890X", + "78946": "AB890X", + "78947": "AB890X", + "78948": "AB890X", + "78949": "AB890X", + "78950": "AB890X", + "78951": "AB890X", + "78952": "AB890X", + "78953": "AB890X", + "78954": "AB890X", + "78956": "AB890X", + "78957": "AB890X", + "78959": "AB891X", + "78960": "AB890X", + "78961": "AB890X", + "78962": "AB890X", + "78963": "AB890X", + "79001": "AB900X", + "79002": "AB900X", + "79003": "AB900X", + "79005": "AB900X", + "79007": "AB900X", + "79008": "AB900X", + "79009": "AB900X", + "79010": "AB900X", + "79011": "AB900X", + "79012": "AB900X", + "79013": "AB900X", + "79014": "AB900X", + "79015": "AB900X", + "79016": "AB900X", + "79018": "AB900X", + "79019": "AB900X", + "79021": "AB900X", + "79022": "AB900X", + "79024": "AB900X", + "79025": "AB900X", + "79027": "AB900X", + "79029": "AB900X", + "79031": "AB900X", + "79032": "AB900X", + "79033": "AB890X", + "79034": "AB900X", + "79035": "AB900X", + "79036": "AB900X", + "79039": "AB900X", + "79040": "AB900X", + "79041": "AB900X", + "79042": "AB900X", + "79043": "AB900X", + "79044": "AB900X", + "79045": "AB900X", + "79046": "AB900X", + "79051": "AB900X", + "79052": "AB900X", + "79053": "AB900X", + "79054": "AB900X", + "79056": "AB900X", + "79057": "AB900X", + "79058": "AB900X", + "79059": "AB900X", + "79061": "AB900X", + "79062": "AB900X", + "79063": "AB900X", + "79064": "AB900X", + "79065": "AB900X", + "79066": "AB900X", + "79068": "AB900X", + "79070": "AB890X", + "79072": "AB900X", + "79073": "AB900X", + "79077": "AB900X", + "79078": "AB900X", + "79079": "AB900X", + "79080": "AB900X", + "79081": "AB900X", + "79082": "AB900X", + "79083": "AB900X", + "79084": "AB900X", + "79085": "AB900X", + "79086": "AB900X", + "79087": "AB900X", + "79088": "AB900X", + "79091": "AB900X", + "79092": "AB900X", + "79093": "AB890X", + "79094": "AB900X", + "79095": "AB900X", + "79096": "AB900X", + "79097": "AB900X", + "79098": "AB900X", + "79101": "AB900X", + "79102": "AB900X", + "79103": "AB900X", + "79104": "AB900X", + "79105": "AB900X", + "79106": "AB900X", + "79107": "AB900X", + "79108": "AB900X", + "79109": "AB900X", + "79110": "AB900X", + "79111": "AB900X", + "79114": "AB900X", + "79116": "AB900X", + "79117": "AB900X", + "79118": "AB900X", + "79119": "AB900X", + "79120": "AB900X", + "79121": "AB900X", + "79124": "AB900X", + "79159": "AB900X", + "79166": "AB900X", + "79168": "AB900X", + "79172": "AB900X", + "79174": "AB900X", + "79178": "AB900X", + "79185": "AB900X", + "79187": "AB900X", + "79189": "AB900X", + "79201": "AB900X", + "79220": "AB889X", + "79221": "AB900X", + "79223": "AB900X", + "79225": "AB900X", + "79226": "AB900X", + "79227": "AB900X", + "79229": "AB889X", + "79230": "AB900X", + "79231": "AB900X", + "79233": "AB900X", + "79234": "AB900X", + "79235": "AB900X", + "79236": "AB900X", + "79237": "AB900X", + "79239": "AB900X", + "79240": "AB900X", + "79241": "AB900X", + "79243": "AB889X", + "79244": "AB900X", + "79245": "AB900X", + "79247": "AB900X", + "79248": "AB900X", + "79250": "AB900X", + "79251": "AB900X", + "79252": "AB900X", + "79255": "AB900X", + "79256": "AB900X", + "79257": "AB900X", + "79258": "AB900X", + "79259": "AB900X", + "79261": "AB900X", + "79311": "AB900X", + "79312": "AB900X", + "79313": "AB900X", + "79314": "AB900X", + "79316": "AB900X", + "79320": "AB900X", + "79322": "AB900X", + "79323": "AB900X", + "79324": "AB900X", + "79325": "AB900X", + "79326": "AB900X", + "79329": "AB900X", + "79330": "AB900X", + "79331": "AB900X", + "79336": "AB900X", + "79338": "AB900X", + "79339": "AB900X", + "79342": "AB900X", + "79343": "AB900X", + "79344": "AB900X", + "79345": "AB900X", + "79346": "AB900X", + "79347": "AB900X", + "79350": "AB900X", + "79351": "AB900X", + "79353": "AB900X", + "79355": "AB900X", + "79356": "AB900X", + "79357": "AB900X", + "79358": "AB900X", + "79359": "AB900X", + "79360": "AB900X", + "79363": "AB900X", + "79364": "AB900X", + "79366": "AB900X", + "79367": "AB900X", + "79369": "AB900X", + "79370": "AB889X", + "79371": "AB900X", + "79372": "AB900X", + "79373": "AB900X", + "79376": "AB900X", + "79377": "AB900X", + "79378": "AB900X", + "79379": "AB900X", + "79380": "AB900X", + "79381": "AB900X", + "79382": "AB900X", + "79383": "AB900X", + "79401": "AB900X", + "79402": "AB900X", + "79403": "AB900X", + "79404": "AB900X", + "79405": "AB900X", + "79406": "AB900X", + "79407": "AB900X", + "79408": "AB900X", + "79409": "AB900X", + "79410": "AB900X", + "79411": "AB900X", + "79412": "AB900X", + "79413": "AB900X", + "79414": "AB900X", + "79415": "AB900X", + "79416": "AB900X", + "79423": "AB900X", + "79424": "AB900X", + "79430": "AB900X", + "79452": "AB900X", + "79453": "AB900X", + "79457": "AB900X", + "79464": "AB900X", + "79490": "AB900X", + "79491": "AB900X", + "79493": "AB900X", + "79499": "AB900X", + "79501": "AB900X", + "79502": "AB900X", + "79503": "AB900X", + "79504": "AB900X", + "79505": "AB900X", + "79506": "AB900X", + "79508": "AB900X", + "79510": "AB900X", + "79511": "AB900X", + "79512": "AB900X", + "79516": "AB900X", + "79517": "AB900X", + "79518": "AB900X", + "79519": "AB900X", + "79520": "AB900X", + "79521": "AB900X", + "79525": "AB900X", + "79526": "AB900X", + "79527": "AB900X", + "79528": "AB900X", + "79529": "AB900X", + "79530": "AB900X", + "79532": "AB900X", + "79533": "AB900X", + "79534": "AB900X", + "79535": "AB900X", + "79536": "AB900X", + "79537": "AB900X", + "79538": "AB900X", + "79539": "AB900X", + "79540": "AB900X", + "79541": "AB900X", + "79543": "AB900X", + "79544": "AB900X", + "79545": "AB900X", + "79546": "AB900X", + "79547": "AB900X", + "79548": "AB900X", + "79549": "AB900X", + "79550": "AB900X", + "79553": "AB900X", + "79556": "AB900X", + "79560": "AB900X", + "79561": "AB900X", + "79562": "AB900X", + "79563": "AB900X", + "79565": "AB900X", + "79566": "AB900X", + "79567": "AB900X", + "79601": "AB900X", + "79602": "AB900X", + "79603": "AB900X", + "79604": "AB900X", + "79605": "AB900X", + "79606": "AB900X", + "79607": "AB900X", + "79608": "AB900X", + "79697": "AB900X", + "79698": "AB900X", + "79699": "AB900X", + "79701": "AB900X", + "79702": "AB900X", + "79703": "AB900X", + "79704": "AB900X", + "79705": "AB900X", + "79706": "AB900X", + "79707": "AB900X", + "79708": "AB900X", + "79710": "AB900X", + "79711": "AB900X", + "79712": "AB900X", + "79713": "AB900X", + "79714": "AB900X", + "79718": "AB900X", + "79719": "AB900X", + "79720": "AB900X", + "79721": "AB900X", + "79730": "AB900X", + "79731": "AB900X", + "79733": "AB900X", + "79734": "AB900X", + "79735": "AB900X", + "79738": "AB900X", + "79739": "AB900X", + "79740": "AB900X", + "79741": "AB900X", + "79742": "AB900X", + "79743": "AB900X", + "79744": "AB900X", + "79745": "AB889X", + "79748": "AB900X", + "79749": "AB900X", + "79752": "AB900X", + "79754": "AB900X", + "79755": "AB900X", + "79756": "AB900X", + "79758": "AB900X", + "79759": "AB900X", + "79760": "AB900X", + "79761": "AB900X", + "79762": "AB900X", + "79763": "AB900X", + "79764": "AB900X", + "79765": "AB900X", + "79766": "AB900X", + "79768": "AB900X", + "79769": "AB900X", + "79770": "AB900X", + "79772": "AB900X", + "79776": "AB900X", + "79777": "AB900X", + "79778": "AB900X", + "79780": "AB900X", + "79781": "AB900X", + "79782": "AB900X", + "79783": "AB900X", + "79785": "AB900X", + "79786": "AB900X", + "79788": "AB900X", + "79789": "AB889X", + "79821": "AB889X", + "79830": "AB900X", + "79831": "AB900X", + "79832": "AB900X", + "79834": "AB900X", + "79835": "AB889X", + "79836": "AB889X", + "79837": "AB889X", + "79838": "AB889X", + "79839": "AB889X", + "79842": "AB900X", + "79843": "AB900X", + "79845": "AB900X", + "79846": "AB900X", + "79847": "AB889X", + "79848": "AB900X", + "79849": "AB889X", + "79851": "AB889X", + "79852": "AB900X", + "79853": "AB889X", + "79854": "AB900X", + "79855": "AB900X", + "79901": "AB889X", + "79902": "AB889X", + "79903": "AB889X", + "79904": "AB889X", + "79905": "AB889X", + "79906": "AB889X", + "79907": "AB889X", + "79908": "AB889X", + "79910": "AB889X", + "79911": "AB889X", + "79912": "AB889X", + "79913": "AB889X", + "79914": "AB889X", + "79915": "AB889X", + "79916": "AB889X", + "79917": "AB889X", + "79918": "AB889X", + "79920": "AB889X", + "79922": "AB889X", + "79923": "AB889X", + "79924": "AB889X", + "79925": "AB889X", + "79926": "AB889X", + "79927": "AB889X", + "79928": "AB889X", + "79929": "AB889X", + "79930": "AB889X", + "79931": "AB889X", + "79932": "AB889X", + "79934": "AB889X", + "79935": "AB889X", + "79936": "AB889X", + "79937": "AB889X", + "79938": "AB889X", + "79940": "AB889X", + "79941": "AB889X", + "79942": "AB889X", + "79943": "AB889X", + "79944": "AB889X", + "79945": "AB889X", + "79946": "AB889X", + "79947": "AB889X", + "79948": "AB889X", + "79949": "AB889X", + "79950": "AB889X", + "79951": "AB889X", + "79952": "AB889X", + "79953": "AB889X", + "79954": "AB889X", + "79955": "AB889X", + "79958": "AB889X", + "79960": "AB889X", + "79961": "AB889X", + "79968": "AB889X", + "79976": "AB889X", + "79978": "AB889X", + "79980": "AB889X", + "79990": "AB889X", + "79995": "AB889X", + "79996": "AB889X", + "79997": "AB889X", + "79998": "AB889X", + "79999": "AB889X", + "80001": "AB887X", + "80002": "AB887X", + "80003": "AB887X", + "80004": "AB887X", + "80005": "AB887X", + "80006": "AB887X", + "80007": "AB887X", + "80010": "AB887X", + "80011": "AB887X", + "80012": "AB887X", + "80013": "AB887X", + "80014": "AB887X", + "80015": "AB887X", + "80016": "AB887X", + "80017": "AB887X", + "80018": "AB887X", + "80019": "AB887X", + "80020": "AB887X", + "80021": "AB887X", + "80022": "AB887X", + "80023": "AB887X", + "80024": "AB887X", + "80025": "AB887X", + "80026": "AB887X", + "80027": "AB887X", + "80028": "AB887X", + "80030": "AB887X", + "80031": "AB887X", + "80033": "AB887X", + "80034": "AB887X", + "80035": "AB887X", + "80036": "AB887X", + "80037": "AB887X", + "80038": "AB887X", + "80040": "AB887X", + "80041": "AB887X", + "80042": "AB887X", + "80044": "AB887X", + "80045": "AB887X", + "80046": "AB887X", + "80047": "AB887X", + "80101": "AB887X", + "80102": "AB887X", + "80103": "AB887X", + "80104": "AB887X", + "80105": "AB887X", + "80106": "AB887X", + "80107": "AB887X", + "80108": "AB887X", + "80109": "AB887X", + "80110": "AB887X", + "80111": "AB887X", + "80112": "AB887X", + "80113": "AB887X", + "80116": "AB887X", + "80117": "AB887X", + "80118": "AB887X", + "80120": "AB887X", + "80121": "AB887X", + "80122": "AB887X", + "80123": "AB887X", + "80124": "AB887X", + "80125": "AB887X", + "80126": "AB887X", + "80127": "AB887X", + "80128": "AB887X", + "80129": "AB887X", + "80130": "AB887X", + "80131": "AB887X", + "80132": "AB887X", + "80133": "AB887X", + "80134": "AB887X", + "80135": "AB887X", + "80136": "AB887X", + "80137": "AB887X", + "80138": "AB887X", + "80150": "AB887X", + "80151": "AB887X", + "80155": "AB887X", + "80160": "AB887X", + "80161": "AB887X", + "80162": "AB887X", + "80163": "AB887X", + "80165": "AB887X", + "80166": "AB887X", + "80201": "AB887X", + "80202": "AB887X", + "80203": "AB887X", + "80204": "AB887X", + "80205": "AB887X", + "80206": "AB887X", + "80207": "AB887X", + "80208": "AB887X", + "80209": "AB887X", + "80210": "AB887X", + "80211": "AB887X", + "80212": "AB887X", + "80214": "AB887X", + "80215": "AB887X", + "80216": "AB887X", + "80217": "AB887X", + "80218": "AB887X", + "80219": "AB887X", + "80220": "AB887X", + "80221": "AB887X", + "80222": "AB887X", + "80223": "AB887X", + "80224": "AB887X", + "80225": "AB887X", + "80226": "AB887X", + "80227": "AB887X", + "80228": "AB887X", + "80229": "AB887X", + "80230": "AB887X", + "80231": "AB887X", + "80232": "AB887X", + "80233": "AB887X", + "80234": "AB887X", + "80235": "AB887X", + "80236": "AB887X", + "80237": "AB887X", + "80238": "AB887X", + "80239": "AB887X", + "80241": "AB887X", + "80243": "AB887X", + "80244": "AB887X", + "80246": "AB887X", + "80247": "AB887X", + "80248": "AB887X", + "80249": "AB887X", + "80250": "AB887X", + "80251": "AB887X", + "80252": "AB887X", + "80256": "AB887X", + "80257": "AB887X", + "80259": "AB887X", + "80260": "AB887X", + "80261": "AB887X", + "80262": "AB887X", + "80263": "AB887X", + "80264": "AB887X", + "80265": "AB887X", + "80266": "AB887X", + "80271": "AB887X", + "80273": "AB887X", + "80274": "AB887X", + "80279": "AB887X", + "80280": "AB887X", + "80281": "AB887X", + "80290": "AB887X", + "80291": "AB887X", + "80293": "AB887X", + "80294": "AB887X", + "80295": "AB887X", + "80299": "AB887X", + "80301": "AB887X", + "80302": "AB887X", + "80303": "AB887X", + "80304": "AB887X", + "80305": "AB887X", + "80306": "AB887X", + "80307": "AB887X", + "80308": "AB887X", + "80309": "AB887X", + "80310": "AB887X", + "80314": "AB887X", + "80321": "AB887X", + "80322": "AB887X", + "80323": "AB887X", + "80328": "AB887X", + "80329": "AB887X", + "80401": "AB887X", + "80402": "AB887X", + "80403": "AB887X", + "80419": "AB887X", + "80420": "AB887X", + "80421": "AB887X", + "80422": "AB887X", + "80423": "AB887X", + "80424": "AB887X", + "80425": "AB887X", + "80426": "AB887X", + "80427": "AB887X", + "80428": "AB887X", + "80429": "AB887X", + "80430": "AB887X", + "80432": "AB887X", + "80433": "AB887X", + "80434": "AB887X", + "80435": "AB887X", + "80436": "AB887X", + "80437": "AB887X", + "80438": "AB887X", + "80439": "AB887X", + "80440": "AB887X", + "80442": "AB887X", + "80443": "AB887X", + "80444": "AB887X", + "80446": "AB887X", + "80447": "AB887X", + "80448": "AB887X", + "80449": "AB887X", + "80451": "AB887X", + "80452": "AB887X", + "80453": "AB887X", + "80454": "AB887X", + "80455": "AB887X", + "80456": "AB887X", + "80457": "AB887X", + "80459": "AB887X", + "80461": "AB887X", + "80463": "AB887X", + "80465": "AB887X", + "80466": "AB887X", + "80467": "AB887X", + "80468": "AB887X", + "80469": "AB887X", + "80470": "AB887X", + "80471": "AB887X", + "80473": "AB887X", + "80474": "AB887X", + "80475": "AB887X", + "80476": "AB887X", + "80477": "AB887X", + "80478": "AB887X", + "80479": "AB887X", + "80480": "AB887X", + "80481": "AB887X", + "80482": "AB887X", + "80483": "AB887X", + "80487": "AB887X", + "80488": "AB887X", + "80497": "AB887X", + "80498": "AB887X", + "80501": "AB887X", + "80502": "AB887X", + "80503": "AB887X", + "80504": "AB887X", + "80510": "AB887X", + "80511": "AB887X", + "80512": "AB887X", + "80513": "AB887X", + "80514": "AB887X", + "80515": "AB887X", + "80516": "AB887X", + "80517": "AB887X", + "80520": "AB887X", + "80521": "AB887X", + "80522": "AB887X", + "80523": "AB887X", + "80524": "AB887X", + "80525": "AB887X", + "80526": "AB887X", + "80527": "AB887X", + "80528": "AB887X", + "80530": "AB887X", + "80532": "AB887X", + "80533": "AB887X", + "80534": "AB887X", + "80535": "AB887X", + "80536": "AB887X", + "80537": "AB887X", + "80538": "AB887X", + "80539": "AB887X", + "80540": "AB887X", + "80541": "AB887X", + "80542": "AB887X", + "80543": "AB887X", + "80544": "AB887X", + "80545": "AB887X", + "80546": "AB887X", + "80547": "AB887X", + "80549": "AB887X", + "80550": "AB887X", + "80551": "AB887X", + "80553": "AB887X", + "80601": "AB887X", + "80602": "AB887X", + "80603": "AB887X", + "80610": "AB887X", + "80611": "AB887X", + "80612": "AB887X", + "80614": "AB887X", + "80615": "AB887X", + "80620": "AB887X", + "80621": "AB887X", + "80622": "AB887X", + "80623": "AB887X", + "80624": "AB887X", + "80631": "AB887X", + "80632": "AB887X", + "80633": "AB887X", + "80634": "AB887X", + "80638": "AB887X", + "80639": "AB887X", + "80640": "AB887X", + "80642": "AB887X", + "80643": "AB887X", + "80644": "AB887X", + "80645": "AB887X", + "80646": "AB887X", + "80648": "AB887X", + "80649": "AB887X", + "80650": "AB887X", + "80651": "AB887X", + "80652": "AB887X", + "80653": "AB887X", + "80654": "AB887X", + "80701": "AB887X", + "80705": "AB887X", + "80720": "AB887X", + "80721": "AB887X", + "80722": "AB887X", + "80723": "AB887X", + "80725": "AB887X", + "80726": "AB887X", + "80727": "AB887X", + "80728": "AB887X", + "80729": "AB887X", + "80731": "AB887X", + "80732": "AB887X", + "80733": "AB887X", + "80734": "AB887X", + "80735": "AB887X", + "80736": "AB887X", + "80737": "AB887X", + "80740": "AB887X", + "80741": "AB887X", + "80742": "AB887X", + "80743": "AB887X", + "80744": "AB887X", + "80745": "AB887X", + "80746": "AB887X", + "80747": "AB887X", + "80749": "AB887X", + "80750": "AB887X", + "80751": "AB887X", + "80754": "AB887X", + "80755": "AB887X", + "80757": "AB887X", + "80758": "AB887X", + "80759": "AB887X", + "80801": "AB887X", + "80802": "AB887X", + "80804": "AB887X", + "80805": "AB887X", + "80807": "AB887X", + "80808": "AB887X", + "80809": "AB887X", + "80810": "AB887X", + "80812": "AB887X", + "80813": "AB887X", + "80814": "AB887X", + "80815": "AB887X", + "80816": "AB887X", + "80817": "AB887X", + "80818": "AB887X", + "80819": "AB887X", + "80820": "AB887X", + "80821": "AB887X", + "80822": "AB887X", + "80823": "AB887X", + "80824": "AB887X", + "80825": "AB887X", + "80826": "AB887X", + "80827": "AB887X", + "80828": "AB887X", + "80829": "AB887X", + "80830": "AB887X", + "80831": "AB887X", + "80832": "AB887X", + "80833": "AB887X", + "80834": "AB887X", + "80835": "AB887X", + "80836": "AB887X", + "80840": "AB887X", + "80841": "AB887X", + "80860": "AB887X", + "80861": "AB887X", + "80862": "AB887X", + "80863": "AB887X", + "80864": "AB887X", + "80866": "AB887X", + "80901": "AB887X", + "80903": "AB887X", + "80904": "AB887X", + "80905": "AB887X", + "80906": "AB887X", + "80907": "AB887X", + "80908": "AB887X", + "80909": "AB887X", + "80910": "AB887X", + "80911": "AB887X", + "80912": "AB887X", + "80913": "AB887X", + "80914": "AB887X", + "80915": "AB887X", + "80916": "AB887X", + "80917": "AB887X", + "80918": "AB887X", + "80919": "AB887X", + "80920": "AB887X", + "80921": "AB887X", + "80922": "AB887X", + "80923": "AB887X", + "80924": "AB887X", + "80925": "AB887X", + "80926": "AB887X", + "80927": "AB887X", + "80928": "AB887X", + "80929": "AB887X", + "80930": "AB887X", + "80931": "AB887X", + "80932": "AB887X", + "80933": "AB887X", + "80934": "AB887X", + "80935": "AB887X", + "80936": "AB887X", + "80937": "AB887X", + "80938": "AB887X", + "80939": "AB887X", + "80940": "AB887X", + "80941": "AB887X", + "80942": "AB887X", + "80943": "AB887X", + "80944": "AB887X", + "80945": "AB887X", + "80946": "AB887X", + "80947": "AB887X", + "80949": "AB887X", + "80950": "AB887X", + "80951": "AB887X", + "80960": "AB887X", + "80962": "AB887X", + "80970": "AB887X", + "80977": "AB887X", + "80995": "AB887X", + "80997": "AB887X", + "81001": "AB887X", + "81002": "AB887X", + "81003": "AB887X", + "81004": "AB887X", + "81005": "AB887X", + "81006": "AB887X", + "81007": "AB887X", + "81008": "AB887X", + "81009": "AB887X", + "81010": "AB887X", + "81011": "AB887X", + "81012": "AB887X", + "81019": "AB887X", + "81020": "AB887X", + "81021": "AB887X", + "81022": "AB887X", + "81023": "AB887X", + "81024": "AB887X", + "81025": "AB887X", + "81027": "AB887X", + "81029": "AB887X", + "81030": "AB887X", + "81031": "AB887X", + "81033": "AB887X", + "81034": "AB887X", + "81036": "AB887X", + "81038": "AB887X", + "81039": "AB887X", + "81040": "AB887X", + "81041": "AB887X", + "81043": "AB887X", + "81044": "AB887X", + "81045": "AB887X", + "81046": "AB887X", + "81047": "AB887X", + "81049": "AB887X", + "81050": "AB887X", + "81052": "AB887X", + "81054": "AB887X", + "81055": "AB887X", + "81057": "AB887X", + "81058": "AB887X", + "81059": "AB887X", + "81062": "AB887X", + "81063": "AB887X", + "81064": "AB887X", + "81067": "AB887X", + "81069": "AB887X", + "81071": "AB887X", + "81073": "AB887X", + "81076": "AB887X", + "81077": "AB887X", + "81081": "AB887X", + "81082": "AB887X", + "81084": "AB887X", + "81087": "AB887X", + "81089": "AB887X", + "81090": "AB887X", + "81091": "AB887X", + "81092": "AB887X", + "81101": "AB887X", + "81102": "AB887X", + "81120": "AB887X", + "81121": "AB887X", + "81122": "AB889X", + "81123": "AB887X", + "81124": "AB887X", + "81125": "AB887X", + "81126": "AB887X", + "81127": "AB887X", + "81128": "AB887X", + "81129": "AB887X", + "81130": "AB887X", + "81131": "AB887X", + "81132": "AB887X", + "81133": "AB887X", + "81134": "AB887X", + "81135": "AB887X", + "81136": "AB887X", + "81137": "AB889X", + "81138": "AB887X", + "81140": "AB887X", + "81141": "AB887X", + "81143": "AB887X", + "81144": "AB887X", + "81146": "AB887X", + "81147": "AB887X", + "81148": "AB887X", + "81149": "AB887X", + "81151": "AB887X", + "81152": "AB887X", + "81153": "AB887X", + "81154": "AB887X", + "81155": "AB887X", + "81157": "AB887X", + "81201": "AB887X", + "81210": "AB887X", + "81211": "AB887X", + "81212": "AB887X", + "81215": "AB887X", + "81220": "AB887X", + "81221": "AB887X", + "81222": "AB887X", + "81223": "AB887X", + "81224": "AB887X", + "81225": "AB887X", + "81226": "AB887X", + "81227": "AB887X", + "81228": "AB887X", + "81230": "AB887X", + "81231": "AB887X", + "81232": "AB887X", + "81233": "AB887X", + "81235": "AB887X", + "81236": "AB887X", + "81237": "AB887X", + "81239": "AB887X", + "81240": "AB887X", + "81241": "AB887X", + "81242": "AB887X", + "81243": "AB887X", + "81244": "AB887X", + "81247": "AB887X", + "81248": "AB887X", + "81251": "AB887X", + "81252": "AB887X", + "81253": "AB887X", + "81290": "AB887X", + "81301": "AB889X", + "81302": "AB889X", + "81303": "AB889X", + "81320": "AB889X", + "81321": "AB889X", + "81323": "AB889X", + "81324": "AB889X", + "81325": "AB887X", + "81326": "AB889X", + "81327": "AB889X", + "81328": "AB889X", + "81329": "AB889X", + "81330": "AB889X", + "81331": "AB889X", + "81332": "AB889X", + "81334": "AB889X", + "81335": "AB889X", + "81345": "AB887X", + "81401": "AB887X", + "81402": "AB887X", + "81410": "AB887X", + "81411": "AB887X", + "81413": "AB887X", + "81414": "AB887X", + "81415": "AB887X", + "81416": "AB887X", + "81418": "AB887X", + "81419": "AB887X", + "81420": "AB887X", + "81422": "AB887X", + "81423": "AB887X", + "81424": "AB887X", + "81425": "AB887X", + "81426": "AB887X", + "81427": "AB887X", + "81428": "AB887X", + "81429": "AB887X", + "81430": "AB887X", + "81431": "AB887X", + "81432": "AB887X", + "81433": "AB887X", + "81434": "AB887X", + "81435": "AB887X", + "81501": "AB887X", + "81502": "AB887X", + "81503": "AB887X", + "81504": "AB887X", + "81505": "AB887X", + "81506": "AB887X", + "81507": "AB887X", + "81520": "AB887X", + "81521": "AB887X", + "81522": "AB887X", + "81523": "AB887X", + "81524": "AB887X", + "81525": "AB887X", + "81526": "AB887X", + "81527": "AB887X", + "81601": "AB887X", + "81602": "AB887X", + "81610": "AB892X", + "81611": "AB887X", + "81612": "AB887X", + "81615": "AB887X", + "81620": "AB887X", + "81621": "AB887X", + "81623": "AB887X", + "81624": "AB887X", + "81625": "AB887X", + "81626": "AB887X", + "81630": "AB887X", + "81631": "AB887X", + "81632": "AB887X", + "81633": "AB887X", + "81635": "AB887X", + "81636": "AB887X", + "81637": "AB887X", + "81638": "AB887X", + "81639": "AB887X", + "81640": "AB887X", + "81641": "AB887X", + "81642": "AB887X", + "81643": "AB887X", + "81645": "AB887X", + "81646": "AB887X", + "81647": "AB887X", + "81648": "AB887X", + "81649": "AB887X", + "81650": "AB887X", + "81652": "AB887X", + "81653": "AB887X", + "81654": "AB887X", + "81655": "AB887X", + "81656": "AB887X", + "81657": "AB887X", + "81658": "AB887X", + "82001": "AB887X", + "82002": "AB887X", + "82003": "AB887X", + "82005": "AB887X", + "82006": "AB887X", + "82007": "AB887X", + "82008": "AB887X", + "82009": "AB887X", + "82010": "AB887X", + "82050": "AB887X", + "82051": "AB887X", + "82052": "AB887X", + "82053": "AB887X", + "82054": "AB887X", + "82055": "AB887X", + "82058": "AB887X", + "82059": "AB887X", + "82060": "AB887X", + "82061": "AB887X", + "82063": "AB887X", + "82070": "AB887X", + "82071": "AB887X", + "82072": "AB887X", + "82073": "AB887X", + "82081": "AB887X", + "82082": "AB887X", + "82083": "AB887X", + "82084": "AB887X", + "82190": "AB887X", + "82201": "AB887X", + "82210": "AB887X", + "82212": "AB887X", + "82213": "AB887X", + "82214": "AB887X", + "82215": "AB887X", + "82217": "AB887X", + "82218": "AB887X", + "82219": "AB887X", + "82221": "AB887X", + "82222": "AB887X", + "82223": "AB887X", + "82224": "AB887X", + "82225": "AB887X", + "82227": "AB887X", + "82229": "AB887X", + "82240": "AB887X", + "82242": "AB887X", + "82243": "AB887X", + "82244": "AB887X", + "82301": "AB887X", + "82310": "AB887X", + "82321": "AB887X", + "82322": "AB887X", + "82323": "AB887X", + "82324": "AB887X", + "82325": "AB887X", + "82327": "AB887X", + "82329": "AB887X", + "82331": "AB887X", + "82332": "AB887X", + "82334": "AB887X", + "82335": "AB887X", + "82336": "AB887X", + "82401": "AB887X", + "82410": "AB887X", + "82411": "AB887X", + "82412": "AB887X", + "82414": "AB887X", + "82420": "AB887X", + "82421": "AB887X", + "82422": "AB887X", + "82423": "AB887X", + "82426": "AB887X", + "82428": "AB887X", + "82430": "AB887X", + "82431": "AB887X", + "82432": "AB887X", + "82433": "AB887X", + "82434": "AB887X", + "82435": "AB887X", + "82440": "AB887X", + "82441": "AB887X", + "82442": "AB887X", + "82443": "AB887X", + "82450": "AB887X", + "82501": "AB887X", + "82510": "AB887X", + "82512": "AB887X", + "82513": "AB887X", + "82514": "AB887X", + "82515": "AB887X", + "82516": "AB887X", + "82520": "AB887X", + "82523": "AB887X", + "82524": "AB887X", + "82601": "AB887X", + "82602": "AB887X", + "82604": "AB887X", + "82605": "AB887X", + "82609": "AB887X", + "82615": "AB887X", + "82620": "AB887X", + "82630": "AB887X", + "82633": "AB887X", + "82635": "AB887X", + "82636": "AB887X", + "82637": "AB887X", + "82638": "AB887X", + "82639": "AB887X", + "82640": "AB887X", + "82642": "AB887X", + "82643": "AB887X", + "82644": "AB887X", + "82646": "AB887X", + "82648": "AB887X", + "82649": "AB887X", + "82701": "AB887X", + "82710": "AB887X", + "82711": "AB887X", + "82712": "AB887X", + "82714": "AB887X", + "82715": "AB887X", + "82716": "AB887X", + "82717": "AB887X", + "82718": "AB887X", + "82720": "AB887X", + "82721": "AB887X", + "82723": "AB887X", + "82725": "AB887X", + "82727": "AB887X", + "82729": "AB887X", + "82730": "AB887X", + "82731": "AB887X", + "82732": "AB887X", + "82801": "AB887X", + "82831": "AB887X", + "82832": "AB887X", + "82833": "AB887X", + "82834": "AB887X", + "82835": "AB887X", + "82836": "AB887X", + "82837": "AB887X", + "82838": "AB887X", + "82839": "AB887X", + "82840": "AB887X", + "82842": "AB887X", + "82844": "AB887X", + "82845": "AB887X", + "82901": "AB887X", + "82902": "AB887X", + "82922": "AB892X", + "82923": "AB892X", + "82925": "AB892X", + "82929": "AB887X", + "82930": "AB892X", + "82931": "AB892X", + "82932": "AB887X", + "82933": "AB892X", + "82934": "AB887X", + "82935": "AB887X", + "82936": "AB892X", + "82937": "AB892X", + "82938": "AB887X", + "82939": "AB892X", + "82941": "AB892X", + "82942": "AB887X", + "82943": "AB887X", + "82944": "AB892X", + "82945": "AB887X", + "83001": "AB892X", + "83002": "AB892X", + "83011": "AB892X", + "83012": "AB892X", + "83013": "AB892X", + "83014": "AB892X", + "83025": "AB892X", + "83101": "AB892X", + "83110": "AB892X", + "83111": "AB892X", + "83112": "AB892X", + "83113": "AB892X", + "83114": "AB892X", + "83115": "AB892X", + "83116": "AB892X", + "83118": "AB892X", + "83119": "AB892X", + "83120": "AB892X", + "83121": "AB892X", + "83122": "AB892X", + "83123": "AB892X", + "83124": "AB892X", + "83126": "AB892X", + "83127": "AB892X", + "83128": "AB892X", + "83201": "AB892X", + "83202": "AB892X", + "83203": "AB892X", + "83204": "AB892X", + "83205": "AB892X", + "83206": "AB892X", + "83209": "AB892X", + "83210": "AB892X", + "83211": "AB892X", + "83212": "AB892X", + "83213": "AB892X", + "83214": "AB892X", + "83215": "AB892X", + "83217": "AB892X", + "83218": "AB892X", + "83220": "AB892X", + "83221": "AB892X", + "83223": "AB892X", + "83226": "AB892X", + "83227": "AB892X", + "83228": "AB892X", + "83229": "AB892X", + "83230": "AB892X", + "83232": "AB892X", + "83233": "AB892X", + "83234": "AB892X", + "83235": "AB892X", + "83236": "AB892X", + "83237": "AB892X", + "83238": "AB892X", + "83239": "AB892X", + "83241": "AB892X", + "83243": "AB892X", + "83244": "AB892X", + "83245": "AB892X", + "83246": "AB892X", + "83250": "AB892X", + "83251": "AB892X", + "83252": "AB892X", + "83253": "AB892X", + "83254": "AB892X", + "83255": "AB892X", + "83256": "AB892X", + "83261": "AB892X", + "83262": "AB892X", + "83263": "AB892X", + "83271": "AB892X", + "83272": "AB892X", + "83274": "AB892X", + "83276": "AB892X", + "83277": "AB892X", + "83278": "AB892X", + "83281": "AB892X", + "83283": "AB892X", + "83285": "AB892X", + "83286": "AB892X", + "83287": "AB892X", + "83301": "AB892X", + "83302": "AB892X", + "83303": "AB892X", + "83311": "AB892X", + "83312": "AB892X", + "83313": "AB892X", + "83314": "AB892X", + "83316": "AB892X", + "83318": "AB892X", + "83320": "AB892X", + "83321": "AB892X", + "83322": "AB892X", + "83323": "AB892X", + "83324": "AB892X", + "83325": "AB892X", + "83327": "AB892X", + "83328": "AB892X", + "83330": "AB892X", + "83332": "AB892X", + "83333": "AB892X", + "83334": "AB892X", + "83335": "AB892X", + "83336": "AB892X", + "83337": "AB892X", + "83338": "AB892X", + "83340": "AB892X", + "83341": "AB892X", + "83342": "AB892X", + "83343": "AB892X", + "83344": "AB892X", + "83346": "AB892X", + "83347": "AB892X", + "83348": "AB892X", + "83349": "AB892X", + "83350": "AB892X", + "83352": "AB892X", + "83353": "AB892X", + "83354": "AB892X", + "83355": "AB892X", + "83401": "AB892X", + "83402": "AB892X", + "83403": "AB892X", + "83404": "AB892X", + "83405": "AB892X", + "83406": "AB892X", + "83414": "AB892X", + "83415": "AB892X", + "83420": "AB892X", + "83421": "AB892X", + "83422": "AB892X", + "83423": "AB892X", + "83424": "AB892X", + "83425": "AB892X", + "83427": "AB892X", + "83428": "AB892X", + "83429": "AB892X", + "83431": "AB892X", + "83433": "AB892X", + "83434": "AB892X", + "83435": "AB892X", + "83436": "AB892X", + "83438": "AB892X", + "83440": "AB892X", + "83441": "AB892X", + "83442": "AB892X", + "83443": "AB892X", + "83444": "AB892X", + "83445": "AB892X", + "83446": "AB892X", + "83448": "AB892X", + "83449": "AB892X", + "83450": "AB892X", + "83451": "AB892X", + "83452": "AB892X", + "83454": "AB892X", + "83455": "AB892X", + "83460": "AB892X", + "83462": "AB892X", + "83463": "AB892X", + "83464": "AB892X", + "83465": "AB892X", + "83466": "AB892X", + "83467": "AB892X", + "83468": "AB892X", + "83469": "AB892X", + "83501": "AB890X", + "83520": "AB890X", + "83522": "AB892X", + "83523": "AB892X", + "83524": "AB890X", + "83525": "AB892X", + "83526": "AB892X", + "83530": "AB892X", + "83531": "AB892X", + "83533": "AB892X", + "83535": "AB890X", + "83536": "AB892X", + "83537": "AB890X", + "83539": "AB892X", + "83540": "AB890X", + "83541": "AB890X", + "83542": "AB892X", + "83543": "AB892X", + "83544": "AB890X", + "83545": "AB890X", + "83546": "AB890X", + "83547": "AB892X", + "83548": "AB892X", + "83549": "AB892X", + "83552": "AB892X", + "83553": "AB890X", + "83554": "AB892X", + "83555": "AB892X", + "83601": "AB892X", + "83602": "AB892X", + "83604": "AB892X", + "83605": "AB892X", + "83606": "AB892X", + "83607": "AB892X", + "83610": "AB892X", + "83611": "AB892X", + "83612": "AB892X", + "83615": "AB892X", + "83616": "AB892X", + "83617": "AB892X", + "83619": "AB892X", + "83622": "AB892X", + "83623": "AB892X", + "83624": "AB892X", + "83626": "AB892X", + "83627": "AB892X", + "83628": "AB892X", + "83629": "AB892X", + "83630": "AB892X", + "83631": "AB892X", + "83632": "AB892X", + "83633": "AB892X", + "83634": "AB892X", + "83635": "AB892X", + "83636": "AB892X", + "83637": "AB892X", + "83638": "AB892X", + "83639": "AB892X", + "83641": "AB892X", + "83642": "AB892X", + "83643": "AB892X", + "83644": "AB892X", + "83645": "AB892X", + "83646": "AB892X", + "83647": "AB892X", + "83648": "AB892X", + "83650": "AB892X", + "83651": "AB892X", + "83652": "AB892X", + "83653": "AB892X", + "83654": "AB892X", + "83655": "AB892X", + "83656": "AB892X", + "83657": "AB892X", + "83660": "AB892X", + "83661": "AB892X", + "83666": "AB892X", + "83669": "AB892X", + "83670": "AB892X", + "83671": "AB892X", + "83672": "AB892X", + "83676": "AB892X", + "83677": "AB892X", + "83680": "AB892X", + "83686": "AB892X", + "83687": "AB892X", + "83701": "AB892X", + "83702": "AB892X", + "83703": "AB892X", + "83704": "AB892X", + "83705": "AB892X", + "83706": "AB892X", + "83707": "AB892X", + "83708": "AB892X", + "83709": "AB892X", + "83711": "AB892X", + "83712": "AB892X", + "83713": "AB892X", + "83714": "AB892X", + "83715": "AB892X", + "83716": "AB892X", + "83717": "AB892X", + "83719": "AB892X", + "83720": "AB892X", + "83721": "AB892X", + "83722": "AB892X", + "83724": "AB892X", + "83725": "AB892X", + "83726": "AB892X", + "83727": "AB892X", + "83728": "AB892X", + "83729": "AB892X", + "83730": "AB892X", + "83731": "AB892X", + "83732": "AB892X", + "83733": "AB892X", + "83735": "AB892X", + "83756": "AB892X", + "83757": "AB892X", + "83799": "AB892X", + "83801": "AB890X", + "83802": "AB890X", + "83803": "AB890X", + "83804": "AB890X", + "83805": "AB890X", + "83806": "AB890X", + "83808": "AB890X", + "83809": "AB890X", + "83810": "AB890X", + "83811": "AB890X", + "83812": "AB890X", + "83813": "AB890X", + "83814": "AB890X", + "83815": "AB890X", + "83816": "AB890X", + "83821": "AB890X", + "83822": "AB890X", + "83823": "AB890X", + "83824": "AB890X", + "83825": "AB890X", + "83826": "AB890X", + "83827": "AB890X", + "83830": "AB890X", + "83832": "AB890X", + "83833": "AB890X", + "83834": "AB890X", + "83835": "AB890X", + "83836": "AB890X", + "83837": "AB890X", + "83839": "AB890X", + "83840": "AB890X", + "83841": "AB890X", + "83842": "AB890X", + "83843": "AB890X", + "83844": "AB890X", + "83845": "AB890X", + "83846": "AB890X", + "83847": "AB890X", + "83848": "AB890X", + "83849": "AB890X", + "83850": "AB890X", + "83851": "AB890X", + "83852": "AB890X", + "83853": "AB890X", + "83854": "AB890X", + "83855": "AB890X", + "83856": "AB890X", + "83857": "AB890X", + "83858": "AB890X", + "83860": "AB890X", + "83861": "AB890X", + "83864": "AB890X", + "83865": "AB890X", + "83866": "AB890X", + "83867": "AB890X", + "83868": "AB890X", + "83869": "AB890X", + "83870": "AB890X", + "83871": "AB890X", + "83872": "AB890X", + "83873": "AB890X", + "83874": "AB890X", + "83876": "AB890X", + "83877": "AB890X", + "84001": "AB892X", + "84002": "AB892X", + "84003": "AB892X", + "84004": "AB892X", + "84005": "AB892X", + "84006": "AB892X", + "84007": "AB892X", + "84008": "AB892X", + "84010": "AB892X", + "84011": "AB892X", + "84013": "AB892X", + "84014": "AB892X", + "84015": "AB892X", + "84016": "AB892X", + "84017": "AB892X", + "84018": "AB892X", + "84020": "AB892X", + "84021": "AB892X", + "84022": "AB892X", + "84023": "AB892X", + "84024": "AB892X", + "84025": "AB892X", + "84026": "AB892X", + "84027": "AB892X", + "84028": "AB892X", + "84029": "AB892X", + "84031": "AB892X", + "84032": "AB892X", + "84033": "AB892X", + "84034": "AB892X", + "84035": "AB892X", + "84036": "AB892X", + "84037": "AB892X", + "84038": "AB892X", + "84039": "AB892X", + "84040": "AB892X", + "84041": "AB892X", + "84042": "AB892X", + "84043": "AB892X", + "84044": "AB892X", + "84045": "AB892X", + "84046": "AB892X", + "84047": "AB892X", + "84049": "AB892X", + "84050": "AB892X", + "84051": "AB892X", + "84052": "AB892X", + "84053": "AB892X", + "84054": "AB892X", + "84055": "AB892X", + "84056": "AB892X", + "84057": "AB892X", + "84058": "AB892X", + "84059": "AB892X", + "84060": "AB892X", + "84061": "AB892X", + "84062": "AB892X", + "84063": "AB892X", + "84064": "AB892X", + "84065": "AB892X", + "84066": "AB892X", + "84067": "AB892X", + "84068": "AB892X", + "84069": "AB892X", + "84070": "AB892X", + "84071": "AB892X", + "84072": "AB892X", + "84073": "AB892X", + "84074": "AB892X", + "84075": "AB892X", + "84076": "AB892X", + "84078": "AB892X", + "84079": "AB892X", + "84080": "AB892X", + "84081": "AB892X", + "84082": "AB892X", + "84083": "AB892X", + "84084": "AB892X", + "84085": "AB892X", + "84086": "AB892X", + "84087": "AB892X", + "84088": "AB892X", + "84089": "AB892X", + "84090": "AB892X", + "84091": "AB892X", + "84092": "AB892X", + "84093": "AB892X", + "84094": "AB892X", + "84095": "AB892X", + "84096": "AB892X", + "84097": "AB892X", + "84098": "AB892X", + "84101": "AB892X", + "84102": "AB892X", + "84103": "AB892X", + "84104": "AB892X", + "84105": "AB892X", + "84106": "AB892X", + "84107": "AB892X", + "84108": "AB892X", + "84109": "AB892X", + "84110": "AB892X", + "84111": "AB892X", + "84112": "AB892X", + "84113": "AB892X", + "84114": "AB892X", + "84115": "AB892X", + "84116": "AB892X", + "84117": "AB892X", + "84118": "AB892X", + "84119": "AB892X", + "84120": "AB892X", + "84121": "AB892X", + "84122": "AB892X", + "84123": "AB892X", + "84124": "AB892X", + "84125": "AB892X", + "84126": "AB892X", + "84127": "AB892X", + "84128": "AB892X", + "84130": "AB892X", + "84131": "AB892X", + "84132": "AB892X", + "84133": "AB892X", + "84134": "AB892X", + "84136": "AB892X", + "84138": "AB892X", + "84139": "AB892X", + "84141": "AB892X", + "84143": "AB892X", + "84144": "AB892X", + "84145": "AB892X", + "84147": "AB892X", + "84148": "AB892X", + "84150": "AB892X", + "84151": "AB892X", + "84152": "AB892X", + "84157": "AB892X", + "84158": "AB892X", + "84165": "AB892X", + "84170": "AB892X", + "84171": "AB892X", + "84180": "AB892X", + "84184": "AB892X", + "84189": "AB892X", + "84190": "AB892X", + "84199": "AB892X", + "84201": "AB892X", + "84244": "AB892X", + "84301": "AB892X", + "84302": "AB892X", + "84304": "AB892X", + "84305": "AB892X", + "84306": "AB892X", + "84307": "AB892X", + "84308": "AB892X", + "84309": "AB892X", + "84310": "AB892X", + "84311": "AB892X", + "84312": "AB892X", + "84313": "AB892X", + "84314": "AB892X", + "84315": "AB892X", + "84316": "AB892X", + "84317": "AB892X", + "84318": "AB892X", + "84319": "AB892X", + "84320": "AB892X", + "84321": "AB892X", + "84322": "AB892X", + "84323": "AB892X", + "84324": "AB892X", + "84325": "AB892X", + "84326": "AB892X", + "84327": "AB892X", + "84328": "AB892X", + "84329": "AB892X", + "84330": "AB892X", + "84331": "AB892X", + "84332": "AB892X", + "84333": "AB892X", + "84334": "AB892X", + "84335": "AB892X", + "84336": "AB892X", + "84337": "AB892X", + "84338": "AB892X", + "84339": "AB892X", + "84340": "AB892X", + "84341": "AB892X", + "84401": "AB892X", + "84402": "AB892X", + "84403": "AB892X", + "84404": "AB892X", + "84405": "AB892X", + "84407": "AB892X", + "84408": "AB892X", + "84409": "AB892X", + "84412": "AB892X", + "84414": "AB892X", + "84415": "AB892X", + "84501": "AB892X", + "84510": "AB892X", + "84511": "AB892X", + "84512": "AB892X", + "84513": "AB892X", + "84515": "AB892X", + "84516": "AB892X", + "84518": "AB892X", + "84520": "AB892X", + "84521": "AB892X", + "84522": "AB892X", + "84523": "AB892X", + "84525": "AB892X", + "84526": "AB892X", + "84528": "AB892X", + "84529": "AB892X", + "84530": "AB892X", + "84531": "AB892X", + "84532": "AB892X", + "84533": "AB892X", + "84534": "AB892X", + "84535": "AB892X", + "84536": "AB892X", + "84537": "AB892X", + "84539": "AB892X", + "84540": "AB892X", + "84542": "AB892X", + "84601": "AB892X", + "84602": "AB892X", + "84603": "AB892X", + "84604": "AB892X", + "84605": "AB892X", + "84606": "AB892X", + "84620": "AB892X", + "84621": "AB892X", + "84622": "AB892X", + "84623": "AB892X", + "84624": "AB892X", + "84626": "AB892X", + "84627": "AB892X", + "84628": "AB892X", + "84629": "AB892X", + "84630": "AB892X", + "84631": "AB892X", + "84632": "AB892X", + "84633": "AB892X", + "84634": "AB892X", + "84635": "AB892X", + "84636": "AB892X", + "84637": "AB892X", + "84638": "AB892X", + "84639": "AB892X", + "84640": "AB892X", + "84642": "AB892X", + "84643": "AB892X", + "84644": "AB892X", + "84645": "AB892X", + "84646": "AB892X", + "84647": "AB892X", + "84648": "AB892X", + "84649": "AB892X", + "84651": "AB892X", + "84652": "AB892X", + "84653": "AB892X", + "84654": "AB892X", + "84655": "AB892X", + "84656": "AB892X", + "84657": "AB892X", + "84660": "AB892X", + "84662": "AB892X", + "84663": "AB892X", + "84664": "AB892X", + "84665": "AB892X", + "84667": "AB892X", + "84701": "AB892X", + "84710": "AB892X", + "84711": "AB892X", + "84712": "AB892X", + "84713": "AB892X", + "84714": "AB892X", + "84715": "AB892X", + "84716": "AB892X", + "84718": "AB892X", + "84719": "AB892X", + "84720": "AB892X", + "84721": "AB892X", + "84722": "AB892X", + "84723": "AB892X", + "84724": "AB892X", + "84725": "AB892X", + "84726": "AB892X", + "84728": "AB892X", + "84729": "AB892X", + "84730": "AB892X", + "84731": "AB892X", + "84732": "AB892X", + "84733": "AB892X", + "84734": "AB892X", + "84735": "AB892X", + "84736": "AB892X", + "84737": "AB892X", + "84738": "AB892X", + "84739": "AB892X", + "84740": "AB892X", + "84741": "AB892X", + "84742": "AB892X", + "84743": "AB892X", + "84744": "AB892X", + "84745": "AB892X", + "84746": "AB892X", + "84747": "AB892X", + "84749": "AB892X", + "84750": "AB892X", + "84751": "AB892X", + "84752": "AB892X", + "84753": "AB892X", + "84754": "AB892X", + "84755": "AB892X", + "84756": "AB892X", + "84757": "AB892X", + "84758": "AB892X", + "84759": "AB892X", + "84760": "AB892X", + "84761": "AB892X", + "84762": "AB892X", + "84763": "AB892X", + "84764": "AB892X", + "84765": "AB892X", + "84766": "AB892X", + "84767": "AB892X", + "84770": "AB892X", + "84771": "AB892X", + "84772": "AB892X", + "84773": "AB892X", + "84774": "AB892X", + "84775": "AB892X", + "84776": "AB892X", + "84779": "AB892X", + "84780": "AB892X", + "84781": "AB892X", + "84782": "AB892X", + "84783": "AB892X", + "84784": "AB892X", + "84790": "AB892X", + "84791": "AB892X", + "85001": "AB887X", + "85002": "AB887X", + "85003": "AB887X", + "85004": "AB887X", + "85005": "AB887X", + "85006": "AB887X", + "85007": "AB887X", + "85008": "AB887X", + "85009": "AB887X", + "85010": "AB887X", + "85011": "AB887X", + "85012": "AB887X", + "85013": "AB887X", + "85014": "AB887X", + "85015": "AB887X", + "85016": "AB887X", + "85017": "AB887X", + "85018": "AB887X", + "85019": "AB887X", + "85020": "AB887X", + "85021": "AB887X", + "85022": "AB887X", + "85023": "AB887X", + "85024": "AB887X", + "85025": "AB887X", + "85026": "AB887X", + "85027": "AB887X", + "85028": "AB887X", + "85029": "AB887X", + "85030": "AB887X", + "85031": "AB887X", + "85032": "AB887X", + "85033": "AB887X", + "85034": "AB887X", + "85035": "AB887X", + "85036": "AB887X", + "85037": "AB887X", + "85038": "AB887X", + "85039": "AB887X", + "85040": "AB887X", + "85041": "AB887X", + "85042": "AB887X", + "85043": "AB887X", + "85044": "AB887X", + "85045": "AB887X", + "85046": "AB887X", + "85048": "AB887X", + "85050": "AB887X", + "85051": "AB887X", + "85053": "AB887X", + "85054": "AB887X", + "85055": "AB887X", + "85060": "AB887X", + "85061": "AB887X", + "85062": "AB887X", + "85063": "AB887X", + "85064": "AB887X", + "85065": "AB887X", + "85066": "AB887X", + "85067": "AB887X", + "85068": "AB887X", + "85069": "AB887X", + "85070": "AB887X", + "85071": "AB887X", + "85072": "AB887X", + "85073": "AB887X", + "85074": "AB887X", + "85075": "AB887X", + "85076": "AB887X", + "85077": "AB887X", + "85078": "AB887X", + "85079": "AB887X", + "85080": "AB887X", + "85082": "AB887X", + "85083": "AB887X", + "85085": "AB887X", + "85086": "AB887X", + "85087": "AB887X", + "85098": "AB887X", + "85099": "AB887X", + "85118": "AB887X", + "85119": "AB887X", + "85120": "AB887X", + "85121": "AB887X", + "85122": "AB887X", + "85123": "AB887X", + "85128": "AB887X", + "85130": "AB887X", + "85131": "AB887X", + "85132": "AB887X", + "85135": "AB887X", + "85137": "AB887X", + "85138": "AB887X", + "85139": "AB887X", + "85140": "AB887X", + "85141": "AB887X", + "85142": "AB887X", + "85143": "AB887X", + "85147": "AB887X", + "85172": "AB887X", + "85173": "AB887X", + "85191": "AB887X", + "85192": "AB887X", + "85193": "AB887X", + "85194": "AB887X", + "85201": "AB887X", + "85202": "AB887X", + "85203": "AB887X", + "85204": "AB887X", + "85205": "AB887X", + "85206": "AB887X", + "85207": "AB887X", + "85208": "AB887X", + "85209": "AB887X", + "85210": "AB887X", + "85211": "AB887X", + "85212": "AB887X", + "85213": "AB887X", + "85214": "AB887X", + "85215": "AB887X", + "85216": "AB887X", + "85217": "AB887X", + "85218": "AB887X", + "85219": "AB887X", + "85220": "AB887X", + "85221": "AB887X", + "85222": "AB887X", + "85223": "AB887X", + "85224": "AB887X", + "85225": "AB887X", + "85226": "AB887X", + "85227": "AB887X", + "85228": "AB887X", + "85230": "AB887X", + "85231": "AB887X", + "85232": "AB887X", + "85233": "AB887X", + "85234": "AB887X", + "85235": "AB887X", + "85236": "AB887X", + "85237": "AB887X", + "85239": "AB887X", + "85241": "AB887X", + "85242": "AB887X", + "85243": "AB887X", + "85244": "AB887X", + "85245": "AB887X", + "85246": "AB887X", + "85247": "AB887X", + "85248": "AB887X", + "85249": "AB887X", + "85250": "AB887X", + "85251": "AB887X", + "85252": "AB887X", + "85253": "AB887X", + "85254": "AB887X", + "85255": "AB887X", + "85256": "AB887X", + "85257": "AB887X", + "85258": "AB887X", + "85259": "AB887X", + "85260": "AB887X", + "85261": "AB887X", + "85262": "AB887X", + "85263": "AB887X", + "85264": "AB887X", + "85266": "AB887X", + "85267": "AB887X", + "85268": "AB887X", + "85269": "AB887X", + "85271": "AB887X", + "85272": "AB887X", + "85273": "AB887X", + "85274": "AB887X", + "85275": "AB887X", + "85277": "AB887X", + "85278": "AB887X", + "85279": "AB887X", + "85280": "AB887X", + "85281": "AB887X", + "85282": "AB887X", + "85283": "AB887X", + "85284": "AB887X", + "85285": "AB887X", + "85286": "AB887X", + "85287": "AB887X", + "85289": "AB887X", + "85290": "AB887X", + "85291": "AB887X", + "85292": "AB887X", + "85295": "AB887X", + "85296": "AB887X", + "85297": "AB887X", + "85298": "AB887X", + "85299": "AB887X", + "85301": "AB887X", + "85302": "AB887X", + "85303": "AB887X", + "85304": "AB887X", + "85305": "AB887X", + "85306": "AB887X", + "85307": "AB887X", + "85308": "AB887X", + "85309": "AB887X", + "85310": "AB887X", + "85311": "AB887X", + "85312": "AB887X", + "85313": "AB887X", + "85318": "AB887X", + "85320": "AB887X", + "85321": "AB887X", + "85322": "AB887X", + "85323": "AB887X", + "85324": "AB887X", + "85325": "AB887X", + "85326": "AB887X", + "85327": "AB887X", + "85328": "AB887X", + "85329": "AB887X", + "85331": "AB887X", + "85332": "AB887X", + "85333": "AB887X", + "85334": "AB887X", + "85335": "AB887X", + "85336": "AB887X", + "85337": "AB887X", + "85338": "AB887X", + "85339": "AB887X", + "85340": "AB887X", + "85341": "AB887X", + "85342": "AB887X", + "85343": "AB887X", + "85344": "AB887X", + "85345": "AB887X", + "85346": "AB887X", + "85347": "AB887X", + "85348": "AB887X", + "85349": "AB887X", + "85350": "AB887X", + "85351": "AB887X", + "85352": "AB887X", + "85353": "AB887X", + "85354": "AB887X", + "85355": "AB887X", + "85356": "AB887X", + "85357": "AB887X", + "85358": "AB887X", + "85359": "AB887X", + "85360": "AB887X", + "85361": "AB887X", + "85362": "AB887X", + "85363": "AB887X", + "85364": "AB887X", + "85365": "AB887X", + "85366": "AB887X", + "85367": "AB887X", + "85369": "AB887X", + "85371": "AB887X", + "85372": "AB887X", + "85373": "AB887X", + "85374": "AB887X", + "85375": "AB887X", + "85376": "AB887X", + "85377": "AB887X", + "85378": "AB887X", + "85379": "AB887X", + "85380": "AB887X", + "85381": "AB887X", + "85382": "AB887X", + "85383": "AB887X", + "85385": "AB887X", + "85387": "AB887X", + "85388": "AB887X", + "85390": "AB887X", + "85392": "AB887X", + "85395": "AB887X", + "85396": "AB887X", + "85437": "AB887X", + "85501": "AB887X", + "85502": "AB887X", + "85530": "AB887X", + "85531": "AB887X", + "85532": "AB887X", + "85533": "AB887X", + "85534": "AB887X", + "85535": "AB887X", + "85536": "AB887X", + "85539": "AB887X", + "85540": "AB887X", + "85541": "AB887X", + "85542": "AB887X", + "85543": "AB887X", + "85544": "AB887X", + "85545": "AB887X", + "85546": "AB887X", + "85547": "AB887X", + "85548": "AB887X", + "85550": "AB887X", + "85551": "AB887X", + "85552": "AB887X", + "85553": "AB887X", + "85554": "AB887X", + "85601": "AB887X", + "85602": "AB887X", + "85603": "AB887X", + "85604": "AB887X", + "85605": "AB887X", + "85606": "AB887X", + "85607": "AB887X", + "85608": "AB887X", + "85609": "AB887X", + "85610": "AB887X", + "85611": "AB887X", + "85613": "AB887X", + "85614": "AB887X", + "85615": "AB887X", + "85616": "AB887X", + "85617": "AB887X", + "85618": "AB887X", + "85619": "AB887X", + "85620": "AB887X", + "85621": "AB887X", + "85622": "AB887X", + "85623": "AB887X", + "85624": "AB887X", + "85625": "AB887X", + "85626": "AB887X", + "85627": "AB887X", + "85628": "AB887X", + "85629": "AB887X", + "85630": "AB887X", + "85631": "AB887X", + "85632": "AB887X", + "85633": "AB887X", + "85634": "AB887X", + "85635": "AB887X", + "85636": "AB887X", + "85637": "AB887X", + "85638": "AB887X", + "85639": "AB887X", + "85640": "AB887X", + "85641": "AB887X", + "85643": "AB887X", + "85644": "AB887X", + "85645": "AB887X", + "85646": "AB887X", + "85648": "AB887X", + "85650": "AB887X", + "85652": "AB887X", + "85653": "AB887X", + "85654": "AB887X", + "85655": "AB887X", + "85658": "AB887X", + "85662": "AB887X", + "85670": "AB887X", + "85671": "AB887X", + "85701": "AB887X", + "85702": "AB887X", + "85703": "AB887X", + "85704": "AB887X", + "85705": "AB887X", + "85706": "AB887X", + "85707": "AB887X", + "85708": "AB887X", + "85709": "AB887X", + "85710": "AB887X", + "85711": "AB887X", + "85712": "AB887X", + "85713": "AB887X", + "85714": "AB887X", + "85715": "AB887X", + "85716": "AB887X", + "85717": "AB887X", + "85718": "AB887X", + "85719": "AB887X", + "85720": "AB887X", + "85721": "AB887X", + "85722": "AB887X", + "85723": "AB887X", + "85724": "AB887X", + "85725": "AB887X", + "85726": "AB887X", + "85728": "AB887X", + "85730": "AB887X", + "85731": "AB887X", + "85732": "AB887X", + "85733": "AB887X", + "85734": "AB887X", + "85735": "AB887X", + "85736": "AB887X", + "85737": "AB887X", + "85738": "AB887X", + "85739": "AB887X", + "85740": "AB887X", + "85741": "AB887X", + "85742": "AB887X", + "85743": "AB887X", + "85744": "AB887X", + "85745": "AB887X", + "85746": "AB887X", + "85747": "AB887X", + "85748": "AB887X", + "85749": "AB887X", + "85750": "AB887X", + "85751": "AB887X", + "85752": "AB887X", + "85754": "AB887X", + "85755": "AB887X", + "85757": "AB887X", + "85775": "AB887X", + "85777": "AB887X", + "85901": "AB887X", + "85902": "AB887X", + "85911": "AB887X", + "85912": "AB887X", + "85920": "AB887X", + "85922": "AB887X", + "85923": "AB887X", + "85924": "AB887X", + "85925": "AB887X", + "85926": "AB887X", + "85927": "AB887X", + "85928": "AB887X", + "85929": "AB887X", + "85930": "AB887X", + "85931": "AB887X", + "85932": "AB887X", + "85933": "AB887X", + "85934": "AB887X", + "85935": "AB887X", + "85936": "AB887X", + "85937": "AB887X", + "85938": "AB887X", + "85939": "AB887X", + "85940": "AB887X", + "85941": "AB887X", + "85942": "AB887X", + "86001": "AB887X", + "86002": "AB887X", + "86003": "AB887X", + "86004": "AB887X", + "86005": "AB887X", + "86011": "AB887X", + "86014": "AB887X", + "86015": "AB887X", + "86016": "AB887X", + "86017": "AB887X", + "86018": "AB887X", + "86020": "AB887X", + "86021": "AB887X", + "86022": "AB887X", + "86023": "AB887X", + "86024": "AB887X", + "86025": "AB887X", + "86028": "AB887X", + "86029": "AB887X", + "86030": "AB887X", + "86031": "AB887X", + "86032": "AB887X", + "86033": "AB887X", + "86034": "AB887X", + "86035": "AB887X", + "86036": "AB887X", + "86038": "AB887X", + "86039": "AB887X", + "86040": "AB887X", + "86042": "AB887X", + "86043": "AB887X", + "86044": "AB887X", + "86045": "AB887X", + "86046": "AB887X", + "86047": "AB887X", + "86052": "AB887X", + "86053": "AB887X", + "86054": "AB887X", + "86301": "AB887X", + "86302": "AB887X", + "86303": "AB887X", + "86304": "AB887X", + "86305": "AB887X", + "86312": "AB887X", + "86313": "AB887X", + "86314": "AB887X", + "86315": "AB887X", + "86320": "AB887X", + "86321": "AB887X", + "86322": "AB887X", + "86323": "AB887X", + "86324": "AB887X", + "86325": "AB887X", + "86326": "AB887X", + "86327": "AB887X", + "86329": "AB887X", + "86330": "AB887X", + "86331": "AB887X", + "86332": "AB887X", + "86333": "AB887X", + "86334": "AB887X", + "86335": "AB887X", + "86336": "AB887X", + "86337": "AB887X", + "86338": "AB887X", + "86339": "AB887X", + "86340": "AB887X", + "86341": "AB887X", + "86342": "AB887X", + "86343": "AB887X", + "86351": "AB887X", + "86401": "AB887X", + "86402": "AB887X", + "86403": "AB887X", + "86404": "AB887X", + "86405": "AB887X", + "86406": "AB887X", + "86409": "AB887X", + "86411": "AB887X", + "86412": "AB887X", + "86413": "AB887X", + "86426": "AB887X", + "86427": "AB887X", + "86429": "AB887X", + "86430": "AB887X", + "86431": "AB887X", + "86432": "AB887X", + "86433": "AB887X", + "86434": "AB887X", + "86435": "AB887X", + "86436": "AB887X", + "86437": "AB887X", + "86438": "AB887X", + "86439": "AB887X", + "86440": "AB887X", + "86441": "AB887X", + "86442": "AB887X", + "86443": "AB887X", + "86444": "AB887X", + "86445": "AB887X", + "86446": "AB887X", + "86502": "AB889X", + "86503": "AB889X", + "86504": "AB889X", + "86505": "AB887X", + "86506": "AB889X", + "86507": "AB889X", + "86508": "AB889X", + "86510": "AB887X", + "86511": "AB889X", + "86512": "AB889X", + "86514": "AB889X", + "86515": "AB889X", + "86520": "AB887X", + "86535": "AB889X", + "86538": "AB889X", + "86540": "AB889X", + "86544": "AB889X", + "86545": "AB889X", + "86547": "AB889X", + "86556": "AB887X", + "87001": "AB889X", + "87002": "AB889X", + "87004": "AB889X", + "87005": "AB889X", + "87006": "AB889X", + "87007": "AB889X", + "87008": "AB889X", + "87009": "AB889X", + "87010": "AB889X", + "87011": "AB889X", + "87012": "AB889X", + "87013": "AB889X", + "87014": "AB889X", + "87015": "AB889X", + "87016": "AB889X", + "87017": "AB889X", + "87018": "AB889X", + "87020": "AB889X", + "87021": "AB889X", + "87022": "AB889X", + "87023": "AB889X", + "87024": "AB889X", + "87025": "AB889X", + "87026": "AB889X", + "87027": "AB889X", + "87028": "AB889X", + "87029": "AB889X", + "87031": "AB889X", + "87032": "AB889X", + "87034": "AB889X", + "87035": "AB889X", + "87036": "AB889X", + "87037": "AB889X", + "87038": "AB889X", + "87040": "AB889X", + "87041": "AB889X", + "87042": "AB889X", + "87043": "AB889X", + "87044": "AB889X", + "87045": "AB889X", + "87046": "AB889X", + "87047": "AB889X", + "87048": "AB889X", + "87049": "AB889X", + "87051": "AB889X", + "87052": "AB889X", + "87053": "AB889X", + "87056": "AB889X", + "87059": "AB889X", + "87060": "AB889X", + "87061": "AB889X", + "87062": "AB889X", + "87063": "AB889X", + "87064": "AB889X", + "87068": "AB889X", + "87070": "AB889X", + "87072": "AB889X", + "87083": "AB889X", + "87101": "AB889X", + "87102": "AB889X", + "87103": "AB889X", + "87104": "AB889X", + "87105": "AB889X", + "87106": "AB889X", + "87107": "AB889X", + "87108": "AB889X", + "87109": "AB889X", + "87110": "AB889X", + "87111": "AB889X", + "87112": "AB889X", + "87113": "AB889X", + "87114": "AB889X", + "87115": "AB889X", + "87116": "AB889X", + "87117": "AB889X", + "87119": "AB889X", + "87120": "AB889X", + "87121": "AB889X", + "87122": "AB889X", + "87123": "AB889X", + "87124": "AB889X", + "87125": "AB889X", + "87131": "AB889X", + "87144": "AB889X", + "87151": "AB889X", + "87153": "AB889X", + "87154": "AB889X", + "87158": "AB889X", + "87165": "AB889X", + "87174": "AB889X", + "87176": "AB889X", + "87181": "AB889X", + "87184": "AB889X", + "87185": "AB889X", + "87187": "AB889X", + "87190": "AB889X", + "87191": "AB889X", + "87192": "AB889X", + "87193": "AB889X", + "87194": "AB889X", + "87195": "AB889X", + "87196": "AB889X", + "87197": "AB889X", + "87198": "AB889X", + "87199": "AB889X", + "87301": "AB889X", + "87302": "AB889X", + "87305": "AB889X", + "87310": "AB889X", + "87311": "AB889X", + "87312": "AB889X", + "87313": "AB889X", + "87315": "AB889X", + "87316": "AB889X", + "87317": "AB889X", + "87319": "AB889X", + "87320": "AB889X", + "87321": "AB889X", + "87322": "AB889X", + "87323": "AB889X", + "87325": "AB889X", + "87326": "AB889X", + "87327": "AB889X", + "87328": "AB889X", + "87347": "AB889X", + "87357": "AB889X", + "87364": "AB889X", + "87365": "AB889X", + "87375": "AB889X", + "87401": "AB889X", + "87402": "AB889X", + "87410": "AB889X", + "87412": "AB889X", + "87413": "AB889X", + "87415": "AB889X", + "87416": "AB889X", + "87417": "AB889X", + "87418": "AB889X", + "87419": "AB889X", + "87420": "AB889X", + "87421": "AB889X", + "87455": "AB889X", + "87461": "AB889X", + "87499": "AB889X", + "87501": "AB889X", + "87502": "AB889X", + "87503": "AB889X", + "87504": "AB889X", + "87505": "AB889X", + "87506": "AB889X", + "87507": "AB889X", + "87508": "AB889X", + "87509": "AB889X", + "87510": "AB889X", + "87511": "AB889X", + "87512": "AB889X", + "87513": "AB889X", + "87514": "AB889X", + "87515": "AB889X", + "87516": "AB889X", + "87517": "AB889X", + "87518": "AB889X", + "87519": "AB889X", + "87520": "AB889X", + "87521": "AB889X", + "87522": "AB889X", + "87523": "AB889X", + "87524": "AB889X", + "87525": "AB889X", + "87527": "AB889X", + "87528": "AB889X", + "87529": "AB889X", + "87530": "AB889X", + "87531": "AB889X", + "87532": "AB889X", + "87533": "AB889X", + "87535": "AB889X", + "87537": "AB889X", + "87538": "AB889X", + "87539": "AB889X", + "87540": "AB889X", + "87543": "AB889X", + "87544": "AB890X", + "87545": "AB890X", + "87548": "AB889X", + "87549": "AB889X", + "87551": "AB889X", + "87552": "AB889X", + "87553": "AB889X", + "87554": "AB889X", + "87556": "AB889X", + "87557": "AB889X", + "87558": "AB889X", + "87560": "AB889X", + "87562": "AB889X", + "87564": "AB889X", + "87565": "AB889X", + "87566": "AB889X", + "87567": "AB889X", + "87569": "AB889X", + "87571": "AB889X", + "87573": "AB889X", + "87574": "AB889X", + "87575": "AB889X", + "87576": "AB889X", + "87577": "AB889X", + "87578": "AB889X", + "87579": "AB889X", + "87580": "AB889X", + "87581": "AB889X", + "87582": "AB889X", + "87583": "AB889X", + "87592": "AB889X", + "87594": "AB889X", + "87701": "AB889X", + "87710": "AB889X", + "87711": "AB889X", + "87712": "AB889X", + "87713": "AB889X", + "87714": "AB889X", + "87715": "AB889X", + "87718": "AB889X", + "87722": "AB889X", + "87723": "AB889X", + "87724": "AB889X", + "87728": "AB889X", + "87729": "AB889X", + "87730": "AB889X", + "87731": "AB889X", + "87732": "AB889X", + "87733": "AB889X", + "87734": "AB889X", + "87735": "AB889X", + "87736": "AB889X", + "87740": "AB889X", + "87742": "AB889X", + "87743": "AB889X", + "87745": "AB889X", + "87746": "AB889X", + "87747": "AB889X", + "87749": "AB889X", + "87750": "AB889X", + "87752": "AB889X", + "87753": "AB889X", + "87801": "AB889X", + "87820": "AB889X", + "87821": "AB889X", + "87823": "AB889X", + "87824": "AB889X", + "87825": "AB889X", + "87827": "AB889X", + "87828": "AB889X", + "87829": "AB889X", + "87830": "AB889X", + "87831": "AB889X", + "87832": "AB889X", + "87901": "AB889X", + "87930": "AB889X", + "87931": "AB889X", + "87933": "AB889X", + "87935": "AB889X", + "87936": "AB889X", + "87937": "AB889X", + "87939": "AB889X", + "87940": "AB889X", + "87941": "AB889X", + "87942": "AB889X", + "87943": "AB889X", + "88001": "AB889X", + "88002": "AB889X", + "88003": "AB889X", + "88004": "AB889X", + "88005": "AB889X", + "88006": "AB889X", + "88007": "AB889X", + "88008": "AB889X", + "88009": "AB889X", + "88011": "AB889X", + "88012": "AB889X", + "88013": "AB889X", + "88020": "AB889X", + "88021": "AB889X", + "88022": "AB889X", + "88023": "AB889X", + "88024": "AB889X", + "88025": "AB889X", + "88026": "AB889X", + "88027": "AB889X", + "88028": "AB889X", + "88029": "AB889X", + "88030": "AB889X", + "88031": "AB889X", + "88032": "AB889X", + "88033": "AB889X", + "88034": "AB889X", + "88036": "AB889X", + "88038": "AB889X", + "88039": "AB889X", + "88040": "AB889X", + "88041": "AB889X", + "88042": "AB889X", + "88043": "AB889X", + "88044": "AB889X", + "88045": "AB889X", + "88046": "AB889X", + "88047": "AB889X", + "88048": "AB889X", + "88049": "AB889X", + "88051": "AB889X", + "88052": "AB889X", + "88053": "AB889X", + "88054": "AB889X", + "88055": "AB889X", + "88056": "AB889X", + "88058": "AB889X", + "88061": "AB889X", + "88062": "AB889X", + "88063": "AB889X", + "88065": "AB889X", + "88072": "AB889X", + "88081": "AB889X", + "88101": "AB900X", + "88102": "AB900X", + "88103": "AB900X", + "88112": "AB900X", + "88113": "AB889X", + "88114": "AB889X", + "88115": "AB889X", + "88116": "AB889X", + "88118": "AB889X", + "88119": "AB900X", + "88120": "AB900X", + "88121": "AB889X", + "88122": "AB889X", + "88123": "AB889X", + "88124": "AB900X", + "88125": "AB889X", + "88126": "AB889X", + "88130": "AB889X", + "88132": "AB889X", + "88133": "AB900X", + "88134": "AB900X", + "88135": "AB900X", + "88136": "AB900X", + "88201": "AB889X", + "88202": "AB889X", + "88203": "AB889X", + "88210": "AB889X", + "88211": "AB889X", + "88213": "AB889X", + "88220": "AB889X", + "88221": "AB889X", + "88230": "AB889X", + "88231": "AB889X", + "88232": "AB889X", + "88240": "AB889X", + "88241": "AB889X", + "88242": "AB889X", + "88244": "AB889X", + "88250": "AB889X", + "88252": "AB889X", + "88253": "AB889X", + "88254": "AB889X", + "88255": "AB889X", + "88256": "AB889X", + "88260": "AB889X", + "88262": "AB889X", + "88263": "AB889X", + "88264": "AB889X", + "88265": "AB889X", + "88267": "AB889X", + "88268": "AB889X", + "88301": "AB889X", + "88310": "AB889X", + "88311": "AB889X", + "88312": "AB889X", + "88314": "AB889X", + "88316": "AB889X", + "88317": "AB889X", + "88318": "AB889X", + "88321": "AB889X", + "88323": "AB889X", + "88324": "AB889X", + "88325": "AB889X", + "88330": "AB889X", + "88336": "AB889X", + "88337": "AB889X", + "88338": "AB889X", + "88339": "AB889X", + "88340": "AB889X", + "88341": "AB889X", + "88342": "AB889X", + "88343": "AB889X", + "88344": "AB889X", + "88345": "AB889X", + "88346": "AB889X", + "88347": "AB889X", + "88348": "AB889X", + "88349": "AB889X", + "88350": "AB889X", + "88351": "AB889X", + "88352": "AB889X", + "88353": "AB889X", + "88354": "AB889X", + "88355": "AB889X", + "88401": "AB889X", + "88410": "AB889X", + "88411": "AB889X", + "88414": "AB889X", + "88415": "AB889X", + "88416": "AB889X", + "88417": "AB889X", + "88418": "AB889X", + "88419": "AB889X", + "88421": "AB889X", + "88422": "AB889X", + "88424": "AB889X", + "88426": "AB889X", + "88427": "AB889X", + "88430": "AB889X", + "88431": "AB889X", + "88433": "AB889X", + "88434": "AB889X", + "88435": "AB889X", + "88436": "AB889X", + "88439": "AB889X", + "88510": "AB889X", + "88511": "AB889X", + "88512": "AB889X", + "88513": "AB889X", + "88514": "AB889X", + "88515": "AB889X", + "88516": "AB889X", + "88517": "AB889X", + "88518": "AB889X", + "88519": "AB889X", + "88520": "AB889X", + "88521": "AB889X", + "88523": "AB889X", + "88524": "AB889X", + "88525": "AB889X", + "88526": "AB889X", + "88527": "AB889X", + "88528": "AB889X", + "88529": "AB889X", + "88530": "AB889X", + "88531": "AB889X", + "88532": "AB889X", + "88533": "AB889X", + "88534": "AB889X", + "88535": "AB889X", + "88536": "AB889X", + "88538": "AB889X", + "88539": "AB889X", + "88540": "AB889X", + "88541": "AB889X", + "88542": "AB889X", + "88543": "AB889X", + "88544": "AB889X", + "88545": "AB889X", + "88546": "AB889X", + "88547": "AB889X", + "88548": "AB889X", + "88549": "AB889X", + "88550": "AB889X", + "88553": "AB889X", + "88554": "AB889X", + "88555": "AB889X", + "88556": "AB889X", + "88557": "AB889X", + "88558": "AB889X", + "88559": "AB889X", + "88560": "AB889X", + "88561": "AB889X", + "88562": "AB889X", + "88563": "AB889X", + "88565": "AB889X", + "88566": "AB889X", + "88567": "AB889X", + "88568": "AB889X", + "88569": "AB889X", + "88570": "AB889X", + "88571": "AB889X", + "88572": "AB889X", + "88573": "AB889X", + "88574": "AB889X", + "88575": "AB889X", + "88576": "AB889X", + "88577": "AB889X", + "88578": "AB889X", + "88579": "AB889X", + "88580": "AB889X", + "88581": "AB889X", + "88582": "AB889X", + "88583": "AB889X", + "88584": "AB889X", + "88585": "AB889X", + "88586": "AB889X", + "88587": "AB889X", + "88588": "AB889X", + "88589": "AB889X", + "88590": "AB889X", + "88595": "AB889X", + "90001": "AB890X", + "90002": "AB890X", + "90003": "AB890X", + "90004": "AB890X", + "90005": "AB890X", + "90006": "AB890X", + "90007": "AB890X", + "90008": "AB890X", + "90009": "AB890X", + "90010": "AB890X", + "90011": "AB890X", + "90012": "AB890X", + "90013": "AB890X", + "90014": "AB890X", + "90015": "AB890X", + "90016": "AB890X", + "90017": "AB890X", + "90018": "AB890X", + "90019": "AB890X", + "90020": "AB890X", + "90021": "AB890X", + "90022": "AB890X", + "90023": "AB890X", + "90024": "AB890X", + "90025": "AB890X", + "90026": "AB890X", + "90027": "AB890X", + "90028": "AB890X", + "90029": "AB890X", + "90030": "AB890X", + "90031": "AB890X", + "90032": "AB890X", + "90033": "AB890X", + "90034": "AB890X", + "90035": "AB890X", + "90036": "AB890X", + "90037": "AB890X", + "90038": "AB890X", + "90039": "AB890X", + "90040": "AB890X", + "90041": "AB890X", + "90042": "AB890X", + "90043": "AB890X", + "90044": "AB890X", + "90045": "AB890X", + "90046": "AB890X", + "90047": "AB890X", + "90048": "AB890X", + "90049": "AB890X", + "90050": "AB890X", + "90051": "AB890X", + "90052": "AB890X", + "90053": "AB890X", + "90054": "AB890X", + "90055": "AB890X", + "90056": "AB890X", + "90057": "AB890X", + "90058": "AB890X", + "90059": "AB890X", + "90060": "AB890X", + "90061": "AB890X", + "90062": "AB890X", + "90063": "AB890X", + "90064": "AB890X", + "90065": "AB890X", + "90066": "AB890X", + "90067": "AB890X", + "90068": "AB890X", + "90069": "AB890X", + "90070": "AB890X", + "90071": "AB890X", + "90072": "AB890X", + "90073": "AB890X", + "90074": "AB890X", + "90075": "AB890X", + "90076": "AB890X", + "90077": "AB890X", + "90078": "AB890X", + "90079": "AB890X", + "90080": "AB890X", + "90081": "AB890X", + "90082": "AB890X", + "90083": "AB890X", + "90084": "AB890X", + "90086": "AB890X", + "90087": "AB890X", + "90088": "AB890X", + "90089": "AB890X", + "90091": "AB890X", + "90093": "AB890X", + "90094": "AB890X", + "90095": "AB890X", + "90096": "AB890X", + "90099": "AB890X", + "90101": "AB890X", + "90102": "AB890X", + "90103": "AB890X", + "90189": "AB890X", + "90201": "AB890X", + "90202": "AB890X", + "90209": "AB890X", + "90210": "AB890X", + "90211": "AB890X", + "90212": "AB890X", + "90213": "AB890X", + "90220": "AB890X", + "90221": "AB890X", + "90222": "AB890X", + "90223": "AB890X", + "90224": "AB890X", + "90230": "AB890X", + "90231": "AB890X", + "90232": "AB890X", + "90233": "AB890X", + "90239": "AB890X", + "90240": "AB890X", + "90241": "AB890X", + "90242": "AB890X", + "90245": "AB890X", + "90247": "AB890X", + "90248": "AB890X", + "90249": "AB890X", + "90250": "AB890X", + "90251": "AB890X", + "90254": "AB890X", + "90255": "AB890X", + "90260": "AB890X", + "90261": "AB890X", + "90262": "AB890X", + "90263": "AB890X", + "90264": "AB890X", + "90265": "AB890X", + "90266": "AB890X", + "90267": "AB890X", + "90270": "AB890X", + "90272": "AB890X", + "90274": "AB890X", + "90275": "AB890X", + "90277": "AB890X", + "90278": "AB890X", + "90280": "AB890X", + "90290": "AB890X", + "90291": "AB890X", + "90292": "AB890X", + "90293": "AB890X", + "90294": "AB890X", + "90295": "AB890X", + "90296": "AB890X", + "90301": "AB890X", + "90302": "AB890X", + "90303": "AB890X", + "90304": "AB890X", + "90305": "AB890X", + "90306": "AB890X", + "90307": "AB890X", + "90308": "AB890X", + "90309": "AB890X", + "90310": "AB890X", + "90311": "AB890X", + "90312": "AB890X", + "90313": "AB890X", + "90397": "AB890X", + "90398": "AB890X", + "90401": "AB890X", + "90402": "AB890X", + "90403": "AB890X", + "90404": "AB890X", + "90405": "AB890X", + "90406": "AB890X", + "90407": "AB890X", + "90408": "AB890X", + "90409": "AB890X", + "90410": "AB890X", + "90411": "AB890X", + "90501": "AB890X", + "90502": "AB890X", + "90503": "AB890X", + "90504": "AB890X", + "90505": "AB890X", + "90506": "AB890X", + "90507": "AB890X", + "90508": "AB890X", + "90509": "AB890X", + "90510": "AB890X", + "90601": "AB890X", + "90602": "AB890X", + "90603": "AB890X", + "90604": "AB890X", + "90605": "AB890X", + "90606": "AB890X", + "90607": "AB890X", + "90608": "AB890X", + "90609": "AB890X", + "90610": "AB890X", + "90612": "AB890X", + "90620": "AB890X", + "90621": "AB890X", + "90622": "AB890X", + "90623": "AB890X", + "90624": "AB890X", + "90630": "AB890X", + "90631": "AB890X", + "90632": "AB890X", + "90633": "AB890X", + "90637": "AB890X", + "90638": "AB890X", + "90639": "AB890X", + "90640": "AB890X", + "90650": "AB890X", + "90651": "AB890X", + "90652": "AB890X", + "90659": "AB890X", + "90660": "AB890X", + "90661": "AB890X", + "90662": "AB890X", + "90670": "AB890X", + "90671": "AB890X", + "90680": "AB890X", + "90701": "AB890X", + "90702": "AB890X", + "90703": "AB890X", + "90704": "AB890X", + "90706": "AB890X", + "90707": "AB890X", + "90710": "AB890X", + "90711": "AB890X", + "90712": "AB890X", + "90713": "AB890X", + "90714": "AB890X", + "90715": "AB890X", + "90716": "AB890X", + "90717": "AB890X", + "90720": "AB890X", + "90721": "AB890X", + "90723": "AB890X", + "90731": "AB890X", + "90732": "AB890X", + "90733": "AB890X", + "90734": "AB890X", + "90740": "AB890X", + "90742": "AB890X", + "90743": "AB890X", + "90744": "AB890X", + "90745": "AB890X", + "90746": "AB890X", + "90747": "AB890X", + "90748": "AB890X", + "90749": "AB890X", + "90755": "AB890X", + "90801": "AB890X", + "90802": "AB890X", + "90803": "AB890X", + "90804": "AB890X", + "90805": "AB890X", + "90806": "AB890X", + "90807": "AB890X", + "90808": "AB890X", + "90809": "AB890X", + "90810": "AB890X", + "90813": "AB890X", + "90814": "AB890X", + "90815": "AB890X", + "90822": "AB890X", + "90831": "AB890X", + "90832": "AB890X", + "90833": "AB890X", + "90834": "AB890X", + "90835": "AB890X", + "90840": "AB890X", + "90842": "AB890X", + "90844": "AB890X", + "90845": "AB890X", + "90846": "AB890X", + "90847": "AB890X", + "90848": "AB890X", + "90853": "AB890X", + "90888": "AB890X", + "90895": "AB890X", + "90899": "AB890X", + "91001": "AB890X", + "91003": "AB890X", + "91006": "AB890X", + "91007": "AB890X", + "91009": "AB890X", + "91010": "AB890X", + "91011": "AB890X", + "91012": "AB890X", + "91016": "AB890X", + "91017": "AB890X", + "91020": "AB890X", + "91021": "AB890X", + "91023": "AB890X", + "91024": "AB890X", + "91025": "AB890X", + "91030": "AB890X", + "91031": "AB890X", + "91040": "AB890X", + "91041": "AB890X", + "91042": "AB890X", + "91043": "AB890X", + "91046": "AB890X", + "91066": "AB890X", + "91077": "AB890X", + "91101": "AB890X", + "91102": "AB890X", + "91103": "AB890X", + "91104": "AB890X", + "91105": "AB890X", + "91106": "AB890X", + "91107": "AB890X", + "91108": "AB890X", + "91109": "AB890X", + "91110": "AB890X", + "91114": "AB890X", + "91115": "AB890X", + "91116": "AB890X", + "91117": "AB890X", + "91118": "AB890X", + "91121": "AB890X", + "91123": "AB890X", + "91124": "AB890X", + "91125": "AB890X", + "91126": "AB890X", + "91129": "AB890X", + "91131": "AB890X", + "91182": "AB890X", + "91184": "AB890X", + "91185": "AB890X", + "91188": "AB890X", + "91189": "AB890X", + "91191": "AB890X", + "91199": "AB890X", + "91201": "AB890X", + "91202": "AB890X", + "91203": "AB890X", + "91204": "AB890X", + "91205": "AB890X", + "91206": "AB890X", + "91207": "AB890X", + "91208": "AB890X", + "91209": "AB890X", + "91210": "AB890X", + "91214": "AB890X", + "91221": "AB890X", + "91222": "AB890X", + "91224": "AB890X", + "91225": "AB890X", + "91226": "AB890X", + "91301": "AB890X", + "91302": "AB890X", + "91303": "AB890X", + "91304": "AB890X", + "91305": "AB890X", + "91306": "AB890X", + "91307": "AB890X", + "91308": "AB890X", + "91309": "AB890X", + "91310": "AB890X", + "91311": "AB890X", + "91313": "AB890X", + "91316": "AB890X", + "91319": "AB890X", + "91320": "AB890X", + "91321": "AB890X", + "91322": "AB890X", + "91324": "AB890X", + "91325": "AB890X", + "91326": "AB890X", + "91327": "AB890X", + "91328": "AB890X", + "91329": "AB890X", + "91330": "AB890X", + "91331": "AB890X", + "91333": "AB890X", + "91334": "AB890X", + "91335": "AB890X", + "91337": "AB890X", + "91340": "AB890X", + "91341": "AB890X", + "91342": "AB890X", + "91343": "AB890X", + "91344": "AB890X", + "91345": "AB890X", + "91346": "AB890X", + "91350": "AB890X", + "91351": "AB890X", + "91352": "AB890X", + "91353": "AB890X", + "91354": "AB890X", + "91355": "AB890X", + "91356": "AB890X", + "91357": "AB890X", + "91358": "AB890X", + "91359": "AB890X", + "91360": "AB890X", + "91361": "AB890X", + "91362": "AB890X", + "91363": "AB890X", + "91364": "AB890X", + "91365": "AB890X", + "91367": "AB890X", + "91371": "AB890X", + "91372": "AB890X", + "91376": "AB890X", + "91377": "AB890X", + "91380": "AB890X", + "91381": "AB890X", + "91382": "AB890X", + "91383": "AB890X", + "91384": "AB890X", + "91385": "AB890X", + "91386": "AB890X", + "91387": "AB890X", + "91388": "AB890X", + "91390": "AB890X", + "91392": "AB890X", + "91393": "AB890X", + "91394": "AB890X", + "91395": "AB890X", + "91396": "AB890X", + "91399": "AB890X", + "91401": "AB890X", + "91402": "AB890X", + "91403": "AB890X", + "91404": "AB890X", + "91405": "AB890X", + "91406": "AB890X", + "91407": "AB890X", + "91408": "AB890X", + "91409": "AB890X", + "91410": "AB890X", + "91411": "AB890X", + "91412": "AB890X", + "91413": "AB890X", + "91416": "AB890X", + "91423": "AB890X", + "91426": "AB890X", + "91436": "AB890X", + "91470": "AB890X", + "91482": "AB890X", + "91495": "AB890X", + "91496": "AB890X", + "91497": "AB890X", + "91499": "AB890X", + "91501": "AB890X", + "91502": "AB890X", + "91503": "AB890X", + "91504": "AB890X", + "91505": "AB890X", + "91506": "AB890X", + "91507": "AB890X", + "91508": "AB890X", + "91510": "AB890X", + "91521": "AB890X", + "91522": "AB890X", + "91523": "AB890X", + "91526": "AB890X", + "91601": "AB890X", + "91602": "AB890X", + "91603": "AB890X", + "91604": "AB890X", + "91605": "AB890X", + "91606": "AB890X", + "91607": "AB890X", + "91608": "AB890X", + "91609": "AB890X", + "91610": "AB890X", + "91611": "AB890X", + "91612": "AB890X", + "91614": "AB890X", + "91615": "AB890X", + "91616": "AB890X", + "91617": "AB890X", + "91618": "AB890X", + "91701": "AB890X", + "91702": "AB890X", + "91706": "AB890X", + "91708": "AB890X", + "91709": "AB890X", + "91710": "AB890X", + "91711": "AB890X", + "91714": "AB890X", + "91715": "AB890X", + "91716": "AB890X", + "91722": "AB890X", + "91723": "AB890X", + "91724": "AB890X", + "91729": "AB890X", + "91730": "AB890X", + "91731": "AB890X", + "91732": "AB890X", + "91733": "AB890X", + "91734": "AB890X", + "91735": "AB890X", + "91737": "AB890X", + "91739": "AB890X", + "91740": "AB890X", + "91741": "AB890X", + "91743": "AB890X", + "91744": "AB890X", + "91745": "AB890X", + "91746": "AB890X", + "91747": "AB890X", + "91748": "AB890X", + "91749": "AB890X", + "91750": "AB890X", + "91752": "AB890X", + "91754": "AB890X", + "91755": "AB890X", + "91756": "AB890X", + "91758": "AB890X", + "91759": "AB890X", + "91761": "AB890X", + "91762": "AB890X", + "91763": "AB890X", + "91764": "AB890X", + "91765": "AB890X", + "91766": "AB890X", + "91767": "AB890X", + "91768": "AB890X", + "91769": "AB890X", + "91770": "AB890X", + "91771": "AB890X", + "91772": "AB890X", + "91773": "AB890X", + "91775": "AB890X", + "91776": "AB890X", + "91778": "AB890X", + "91780": "AB890X", + "91784": "AB890X", + "91785": "AB890X", + "91786": "AB890X", + "91788": "AB890X", + "91789": "AB890X", + "91790": "AB890X", + "91791": "AB890X", + "91792": "AB890X", + "91793": "AB890X", + "91795": "AB890X", + "91797": "AB890X", + "91798": "AB890X", + "91799": "AB890X", + "91801": "AB890X", + "91802": "AB890X", + "91803": "AB890X", + "91804": "AB890X", + "91841": "AB890X", + "91896": "AB890X", + "91899": "AB890X", + "91901": "AB890X", + "91902": "AB890X", + "91903": "AB890X", + "91905": "AB890X", + "91906": "AB890X", + "91908": "AB890X", + "91909": "AB890X", + "91910": "AB890X", + "91911": "AB890X", + "91912": "AB890X", + "91913": "AB890X", + "91914": "AB890X", + "91915": "AB890X", + "91916": "AB890X", + "91917": "AB890X", + "91921": "AB890X", + "91931": "AB890X", + "91932": "AB890X", + "91933": "AB890X", + "91934": "AB890X", + "91935": "AB890X", + "91941": "AB890X", + "91942": "AB890X", + "91943": "AB890X", + "91944": "AB890X", + "91945": "AB890X", + "91946": "AB890X", + "91947": "AB890X", + "91948": "AB890X", + "91950": "AB890X", + "91951": "AB890X", + "91962": "AB890X", + "91963": "AB890X", + "91976": "AB890X", + "91977": "AB890X", + "91978": "AB890X", + "91979": "AB890X", + "91980": "AB890X", + "91987": "AB890X", + "91990": "AB890X", + "92003": "AB890X", + "92004": "AB890X", + "92007": "AB890X", + "92008": "AB890X", + "92009": "AB890X", + "92010": "AB890X", + "92011": "AB890X", + "92013": "AB890X", + "92014": "AB890X", + "92018": "AB890X", + "92019": "AB890X", + "92020": "AB890X", + "92021": "AB890X", + "92022": "AB890X", + "92023": "AB890X", + "92024": "AB890X", + "92025": "AB890X", + "92026": "AB890X", + "92027": "AB890X", + "92028": "AB890X", + "92029": "AB890X", + "92030": "AB890X", + "92033": "AB890X", + "92036": "AB890X", + "92037": "AB890X", + "92038": "AB890X", + "92039": "AB890X", + "92040": "AB890X", + "92046": "AB890X", + "92049": "AB890X", + "92051": "AB890X", + "92052": "AB890X", + "92054": "AB890X", + "92055": "AB890X", + "92056": "AB890X", + "92057": "AB890X", + "92058": "AB890X", + "92059": "AB890X", + "92060": "AB890X", + "92061": "AB890X", + "92064": "AB890X", + "92065": "AB890X", + "92066": "AB890X", + "92067": "AB890X", + "92068": "AB890X", + "92069": "AB890X", + "92070": "AB890X", + "92071": "AB890X", + "92072": "AB890X", + "92074": "AB890X", + "92075": "AB890X", + "92078": "AB890X", + "92079": "AB890X", + "92081": "AB890X", + "92082": "AB890X", + "92083": "AB890X", + "92084": "AB890X", + "92085": "AB890X", + "92086": "AB890X", + "92088": "AB890X", + "92090": "AB890X", + "92091": "AB890X", + "92092": "AB890X", + "92093": "AB890X", + "92096": "AB890X", + "92101": "AB890X", + "92102": "AB890X", + "92103": "AB890X", + "92104": "AB890X", + "92105": "AB890X", + "92106": "AB890X", + "92107": "AB890X", + "92108": "AB890X", + "92109": "AB890X", + "92110": "AB890X", + "92111": "AB890X", + "92112": "AB890X", + "92113": "AB890X", + "92114": "AB890X", + "92115": "AB890X", + "92116": "AB890X", + "92117": "AB890X", + "92118": "AB890X", + "92119": "AB890X", + "92120": "AB890X", + "92121": "AB890X", + "92122": "AB890X", + "92123": "AB890X", + "92124": "AB890X", + "92126": "AB890X", + "92127": "AB890X", + "92128": "AB890X", + "92129": "AB890X", + "92130": "AB890X", + "92131": "AB890X", + "92132": "AB890X", + "92133": "AB890X", + "92134": "AB890X", + "92135": "AB890X", + "92136": "AB890X", + "92137": "AB890X", + "92138": "AB890X", + "92139": "AB890X", + "92140": "AB890X", + "92142": "AB890X", + "92143": "AB890X", + "92145": "AB890X", + "92147": "AB890X", + "92149": "AB890X", + "92150": "AB890X", + "92152": "AB890X", + "92153": "AB890X", + "92154": "AB890X", + "92155": "AB890X", + "92158": "AB890X", + "92159": "AB890X", + "92160": "AB890X", + "92161": "AB890X", + "92162": "AB890X", + "92163": "AB890X", + "92164": "AB890X", + "92165": "AB890X", + "92166": "AB890X", + "92167": "AB890X", + "92168": "AB890X", + "92169": "AB890X", + "92170": "AB890X", + "92171": "AB890X", + "92172": "AB890X", + "92173": "AB890X", + "92174": "AB890X", + "92175": "AB890X", + "92176": "AB890X", + "92177": "AB890X", + "92178": "AB890X", + "92179": "AB890X", + "92182": "AB890X", + "92184": "AB890X", + "92186": "AB890X", + "92187": "AB890X", + "92190": "AB890X", + "92191": "AB890X", + "92192": "AB890X", + "92193": "AB890X", + "92194": "AB890X", + "92195": "AB890X", + "92196": "AB890X", + "92197": "AB890X", + "92198": "AB890X", + "92199": "AB890X", + "92201": "AB890X", + "92202": "AB890X", + "92203": "AB890X", + "92210": "AB890X", + "92211": "AB890X", + "92220": "AB890X", + "92222": "AB887X", + "92223": "AB890X", + "92225": "AB887X", + "92226": "AB890X", + "92227": "AB887X", + "92230": "AB890X", + "92231": "AB887X", + "92232": "AB887X", + "92233": "AB887X", + "92234": "AB890X", + "92235": "AB890X", + "92236": "AB890X", + "92239": "AB890X", + "92240": "AB890X", + "92241": "AB890X", + "92242": "AB890X", + "92243": "AB887X", + "92244": "AB887X", + "92247": "AB890X", + "92248": "AB890X", + "92249": "AB887X", + "92250": "AB887X", + "92251": "AB887X", + "92252": "AB890X", + "92253": "AB890X", + "92254": "AB890X", + "92255": "AB890X", + "92256": "AB890X", + "92257": "AB887X", + "92258": "AB890X", + "92259": "AB887X", + "92260": "AB890X", + "92261": "AB890X", + "92262": "AB890X", + "92263": "AB890X", + "92264": "AB890X", + "92266": "AB887X", + "92267": "AB890X", + "92268": "AB890X", + "92270": "AB890X", + "92273": "AB887X", + "92274": "AB890X", + "92275": "AB887X", + "92276": "AB890X", + "92277": "AB890X", + "92278": "AB890X", + "92280": "AB890X", + "92281": "AB887X", + "92282": "AB890X", + "92283": "AB887X", + "92284": "AB890X", + "92285": "AB890X", + "92286": "AB890X", + "92292": "AB890X", + "92301": "AB890X", + "92304": "AB890X", + "92305": "AB890X", + "92307": "AB890X", + "92308": "AB890X", + "92309": "AB890X", + "92310": "AB890X", + "92311": "AB890X", + "92312": "AB890X", + "92313": "AB890X", + "92314": "AB890X", + "92315": "AB890X", + "92316": "AB890X", + "92317": "AB890X", + "92318": "AB890X", + "92320": "AB890X", + "92321": "AB890X", + "92322": "AB890X", + "92323": "AB890X", + "92324": "AB890X", + "92325": "AB890X", + "92326": "AB890X", + "92327": "AB890X", + "92328": "AB890X", + "92329": "AB890X", + "92331": "AB890X", + "92332": "AB890X", + "92333": "AB890X", + "92334": "AB890X", + "92335": "AB890X", + "92336": "AB890X", + "92337": "AB890X", + "92338": "AB890X", + "92339": "AB890X", + "92340": "AB890X", + "92341": "AB890X", + "92342": "AB890X", + "92344": "AB890X", + "92345": "AB890X", + "92346": "AB890X", + "92347": "AB890X", + "92350": "AB890X", + "92352": "AB890X", + "92354": "AB890X", + "92356": "AB890X", + "92357": "AB890X", + "92358": "AB890X", + "92359": "AB890X", + "92363": "AB890X", + "92364": "AB890X", + "92365": "AB890X", + "92366": "AB890X", + "92368": "AB890X", + "92369": "AB890X", + "92371": "AB890X", + "92372": "AB890X", + "92373": "AB890X", + "92374": "AB890X", + "92375": "AB890X", + "92376": "AB890X", + "92377": "AB890X", + "92378": "AB890X", + "92382": "AB890X", + "92384": "AB890X", + "92385": "AB890X", + "92386": "AB890X", + "92389": "AB890X", + "92391": "AB890X", + "92392": "AB890X", + "92393": "AB890X", + "92394": "AB890X", + "92395": "AB890X", + "92397": "AB890X", + "92398": "AB890X", + "92399": "AB890X", + "92401": "AB890X", + "92402": "AB890X", + "92403": "AB890X", + "92404": "AB890X", + "92405": "AB890X", + "92406": "AB890X", + "92407": "AB890X", + "92408": "AB890X", + "92410": "AB890X", + "92411": "AB890X", + "92412": "AB890X", + "92413": "AB890X", + "92414": "AB890X", + "92415": "AB890X", + "92418": "AB890X", + "92423": "AB890X", + "92424": "AB890X", + "92427": "AB890X", + "92501": "AB890X", + "92502": "AB890X", + "92503": "AB890X", + "92504": "AB890X", + "92505": "AB890X", + "92506": "AB890X", + "92507": "AB889X", + "92508": "AB890X", + "92509": "AB890X", + "92513": "AB890X", + "92514": "AB890X", + "92515": "AB890X", + "92516": "AB890X", + "92517": "AB890X", + "92518": "AB890X", + "92519": "AB890X", + "92521": "AB890X", + "92522": "AB890X", + "92530": "AB890X", + "92531": "AB890X", + "92532": "AB890X", + "92536": "AB890X", + "92539": "AB890X", + "92543": "AB890X", + "92544": "AB890X", + "92545": "AB890X", + "92546": "AB890X", + "92548": "AB890X", + "92549": "AB890X", + "92551": "AB890X", + "92552": "AB890X", + "92553": "AB890X", + "92554": "AB890X", + "92555": "AB890X", + "92556": "AB890X", + "92557": "AB890X", + "92561": "AB890X", + "92562": "AB890X", + "92563": "AB890X", + "92564": "AB890X", + "92567": "AB890X", + "92570": "AB890X", + "92571": "AB890X", + "92572": "AB890X", + "92581": "AB890X", + "92582": "AB890X", + "92583": "AB890X", + "92584": "AB890X", + "92585": "AB890X", + "92586": "AB890X", + "92587": "AB890X", + "92589": "AB890X", + "92590": "AB890X", + "92591": "AB890X", + "92592": "AB890X", + "92593": "AB890X", + "92595": "AB890X", + "92596": "AB890X", + "92599": "AB890X", + "92602": "AB890X", + "92603": "AB890X", + "92604": "AB890X", + "92605": "AB890X", + "92606": "AB890X", + "92607": "AB890X", + "92609": "AB890X", + "92610": "AB890X", + "92612": "AB890X", + "92614": "AB890X", + "92615": "AB890X", + "92616": "AB890X", + "92617": "AB890X", + "92618": "AB890X", + "92619": "AB890X", + "92620": "AB890X", + "92623": "AB890X", + "92624": "AB890X", + "92625": "AB890X", + "92626": "AB890X", + "92627": "AB890X", + "92628": "AB890X", + "92629": "AB890X", + "92630": "AB890X", + "92637": "AB890X", + "92646": "AB890X", + "92647": "AB890X", + "92648": "AB890X", + "92649": "AB890X", + "92650": "AB890X", + "92651": "AB890X", + "92652": "AB890X", + "92653": "AB890X", + "92654": "AB890X", + "92655": "AB890X", + "92656": "AB890X", + "92657": "AB890X", + "92658": "AB890X", + "92659": "AB890X", + "92660": "AB890X", + "92661": "AB890X", + "92662": "AB890X", + "92663": "AB890X", + "92672": "AB890X", + "92673": "AB890X", + "92674": "AB890X", + "92675": "AB890X", + "92676": "AB890X", + "92677": "AB890X", + "92678": "AB890X", + "92679": "AB890X", + "92683": "AB890X", + "92684": "AB890X", + "92685": "AB890X", + "92688": "AB890X", + "92690": "AB890X", + "92691": "AB890X", + "92692": "AB890X", + "92693": "AB890X", + "92694": "AB890X", + "92697": "AB890X", + "92698": "AB890X", + "92701": "AB890X", + "92702": "AB890X", + "92703": "AB890X", + "92704": "AB890X", + "92705": "AB890X", + "92706": "AB890X", + "92707": "AB890X", + "92708": "AB890X", + "92709": "AB890X", + "92710": "AB890X", + "92711": "AB890X", + "92712": "AB890X", + "92725": "AB890X", + "92728": "AB890X", + "92735": "AB890X", + "92780": "AB890X", + "92781": "AB890X", + "92782": "AB890X", + "92799": "AB890X", + "92801": "AB890X", + "92802": "AB890X", + "92803": "AB890X", + "92804": "AB890X", + "92805": "AB890X", + "92806": "AB890X", + "92807": "AB890X", + "92808": "AB890X", + "92809": "AB890X", + "92811": "AB890X", + "92812": "AB890X", + "92814": "AB890X", + "92815": "AB890X", + "92816": "AB890X", + "92817": "AB890X", + "92821": "AB890X", + "92822": "AB890X", + "92823": "AB890X", + "92825": "AB890X", + "92831": "AB890X", + "92832": "AB890X", + "92833": "AB890X", + "92834": "AB890X", + "92835": "AB890X", + "92836": "AB890X", + "92837": "AB890X", + "92838": "AB890X", + "92840": "AB890X", + "92841": "AB890X", + "92842": "AB890X", + "92843": "AB890X", + "92844": "AB890X", + "92845": "AB890X", + "92846": "AB890X", + "92850": "AB890X", + "92856": "AB890X", + "92857": "AB890X", + "92859": "AB890X", + "92860": "AB890X", + "92861": "AB890X", + "92862": "AB890X", + "92863": "AB890X", + "92864": "AB890X", + "92865": "AB890X", + "92866": "AB890X", + "92867": "AB890X", + "92868": "AB890X", + "92869": "AB890X", + "92870": "AB890X", + "92871": "AB890X", + "92877": "AB890X", + "92878": "AB890X", + "92879": "AB890X", + "92880": "AB890X", + "92881": "AB890X", + "92882": "AB890X", + "92883": "AB890X", + "92885": "AB890X", + "92886": "AB890X", + "92887": "AB890X", + "92899": "AB890X", + "93001": "AB890X", + "93002": "AB890X", + "93003": "AB890X", + "93004": "AB890X", + "93005": "AB890X", + "93006": "AB890X", + "93007": "AB890X", + "93009": "AB890X", + "93010": "AB890X", + "93011": "AB890X", + "93012": "AB890X", + "93013": "AB890X", + "93014": "AB890X", + "93015": "AB890X", + "93016": "AB890X", + "93020": "AB890X", + "93021": "AB890X", + "93022": "AB890X", + "93023": "AB890X", + "93024": "AB890X", + "93030": "AB890X", + "93031": "AB890X", + "93032": "AB890X", + "93033": "AB890X", + "93034": "AB890X", + "93035": "AB890X", + "93036": "AB890X", + "93040": "AB890X", + "93041": "AB890X", + "93042": "AB890X", + "93043": "AB890X", + "93044": "AB890X", + "93060": "AB890X", + "93061": "AB890X", + "93062": "AB890X", + "93063": "AB890X", + "93064": "AB890X", + "93065": "AB890X", + "93066": "AB890X", + "93067": "AB890X", + "93093": "AB890X", + "93094": "AB890X", + "93099": "AB890X", + "93101": "AB890X", + "93102": "AB890X", + "93103": "AB890X", + "93105": "AB890X", + "93106": "AB890X", + "93107": "AB890X", + "93108": "AB890X", + "93109": "AB890X", + "93110": "AB890X", + "93111": "AB890X", + "93116": "AB890X", + "93117": "AB890X", + "93118": "AB890X", + "93120": "AB890X", + "93121": "AB890X", + "93130": "AB890X", + "93140": "AB890X", + "93150": "AB890X", + "93160": "AB890X", + "93190": "AB890X", + "93199": "AB890X", + "93201": "AB887X", + "93202": "AB887X", + "93203": "AB890X", + "93204": "AB887X", + "93205": "AB890X", + "93206": "AB890X", + "93207": "AB887X", + "93208": "AB887X", + "93210": "AB887X", + "93212": "AB887X", + "93215": "AB890X", + "93216": "AB890X", + "93218": "AB887X", + "93219": "AB887X", + "93220": "AB890X", + "93221": "AB887X", + "93222": "AB890X", + "93223": "AB887X", + "93224": "AB890X", + "93225": "AB890X", + "93226": "AB890X", + "93227": "AB887X", + "93230": "AB887X", + "93232": "AB887X", + "93234": "AB887X", + "93235": "AB887X", + "93237": "AB887X", + "93238": "AB890X", + "93239": "AB887X", + "93240": "AB890X", + "93241": "AB890X", + "93242": "AB887X", + "93243": "AB890X", + "93244": "AB887X", + "93245": "AB887X", + "93246": "AB887X", + "93247": "AB887X", + "93249": "AB890X", + "93250": "AB890X", + "93251": "AB890X", + "93252": "AB890X", + "93254": "AB890X", + "93255": "AB890X", + "93256": "AB887X", + "93257": "AB887X", + "93258": "AB887X", + "93260": "AB887X", + "93261": "AB887X", + "93262": "AB887X", + "93263": "AB890X", + "93265": "AB887X", + "93266": "AB887X", + "93267": "AB887X", + "93268": "AB890X", + "93270": "AB887X", + "93271": "AB887X", + "93272": "AB887X", + "93274": "AB887X", + "93275": "AB887X", + "93276": "AB890X", + "93277": "AB887X", + "93278": "AB887X", + "93279": "AB887X", + "93280": "AB890X", + "93282": "AB887X", + "93283": "AB890X", + "93285": "AB890X", + "93286": "AB887X", + "93287": "AB890X", + "93290": "AB887X", + "93291": "AB887X", + "93292": "AB887X", + "93301": "AB890X", + "93302": "AB890X", + "93303": "AB890X", + "93304": "AB890X", + "93305": "AB890X", + "93306": "AB890X", + "93307": "AB890X", + "93308": "AB890X", + "93309": "AB890X", + "93311": "AB890X", + "93312": "AB890X", + "93313": "AB890X", + "93314": "AB890X", + "93380": "AB890X", + "93381": "AB890X", + "93382": "AB890X", + "93383": "AB890X", + "93384": "AB890X", + "93385": "AB890X", + "93386": "AB890X", + "93387": "AB890X", + "93388": "AB890X", + "93389": "AB890X", + "93390": "AB890X", + "93401": "AB890X", + "93402": "AB890X", + "93403": "AB890X", + "93405": "AB890X", + "93406": "AB890X", + "93407": "AB890X", + "93408": "AB890X", + "93409": "AB890X", + "93410": "AB890X", + "93412": "AB890X", + "93420": "AB890X", + "93421": "AB890X", + "93422": "AB890X", + "93423": "AB890X", + "93424": "AB890X", + "93426": "AB887X", + "93427": "AB890X", + "93428": "AB890X", + "93429": "AB890X", + "93430": "AB890X", + "93432": "AB890X", + "93433": "AB890X", + "93434": "AB890X", + "93435": "AB890X", + "93436": "AB890X", + "93437": "AB890X", + "93438": "AB890X", + "93440": "AB890X", + "93441": "AB890X", + "93442": "AB890X", + "93443": "AB890X", + "93444": "AB890X", + "93445": "AB890X", + "93446": "AB890X", + "93447": "AB890X", + "93448": "AB890X", + "93449": "AB890X", + "93450": "AB887X", + "93451": "AB890X", + "93452": "AB890X", + "93453": "AB890X", + "93454": "AB890X", + "93455": "AB890X", + "93456": "AB890X", + "93457": "AB890X", + "93458": "AB890X", + "93460": "AB890X", + "93461": "AB890X", + "93463": "AB890X", + "93464": "AB890X", + "93465": "AB890X", + "93475": "AB890X", + "93483": "AB890X", + "93501": "AB890X", + "93502": "AB890X", + "93504": "AB890X", + "93505": "AB890X", + "93510": "AB890X", + "93512": "AB890X", + "93513": "AB890X", + "93514": "AB890X", + "93515": "AB890X", + "93516": "AB890X", + "93517": "AB890X", + "93518": "AB890X", + "93519": "AB890X", + "93522": "AB890X", + "93523": "AB890X", + "93524": "AB890X", + "93526": "AB890X", + "93527": "AB890X", + "93528": "AB890X", + "93529": "AB890X", + "93530": "AB890X", + "93531": "AB890X", + "93532": "AB890X", + "93534": "AB890X", + "93535": "AB890X", + "93536": "AB890X", + "93539": "AB890X", + "93541": "AB890X", + "93542": "AB890X", + "93543": "AB890X", + "93544": "AB890X", + "93545": "AB890X", + "93546": "AB890X", + "93549": "AB890X", + "93550": "AB890X", + "93551": "AB890X", + "93552": "AB890X", + "93553": "AB890X", + "93554": "AB890X", + "93555": "AB890X", + "93556": "AB890X", + "93558": "AB890X", + "93560": "AB890X", + "93561": "AB890X", + "93562": "AB890X", + "93563": "AB890X", + "93581": "AB890X", + "93584": "AB890X", + "93586": "AB890X", + "93590": "AB890X", + "93591": "AB890X", + "93592": "AB890X", + "93596": "AB890X", + "93599": "AB890X", + "93601": "AB887X", + "93602": "AB887X", + "93603": "AB887X", + "93604": "AB887X", + "93605": "AB887X", + "93606": "AB887X", + "93607": "AB887X", + "93608": "AB887X", + "93609": "AB887X", + "93610": "AB887X", + "93611": "AB887X", + "93612": "AB887X", + "93613": "AB887X", + "93614": "AB887X", + "93615": "AB887X", + "93616": "AB887X", + "93618": "AB887X", + "93619": "AB887X", + "93620": "AB887X", + "93621": "AB887X", + "93622": "AB887X", + "93623": "AB887X", + "93624": "AB887X", + "93625": "AB887X", + "93626": "AB887X", + "93627": "AB887X", + "93628": "AB887X", + "93630": "AB887X", + "93631": "AB887X", + "93633": "AB887X", + "93634": "AB887X", + "93635": "AB887X", + "93636": "AB887X", + "93637": "AB887X", + "93638": "AB887X", + "93639": "AB887X", + "93640": "AB887X", + "93641": "AB887X", + "93642": "AB887X", + "93643": "AB887X", + "93644": "AB887X", + "93645": "AB887X", + "93646": "AB887X", + "93647": "AB887X", + "93648": "AB887X", + "93649": "AB887X", + "93650": "AB887X", + "93651": "AB887X", + "93652": "AB887X", + "93653": "AB887X", + "93654": "AB887X", + "93656": "AB887X", + "93657": "AB887X", + "93660": "AB887X", + "93661": "AB887X", + "93662": "AB887X", + "93664": "AB887X", + "93665": "AB887X", + "93666": "AB887X", + "93667": "AB887X", + "93668": "AB887X", + "93669": "AB887X", + "93670": "AB887X", + "93673": "AB887X", + "93675": "AB887X", + "93701": "AB887X", + "93702": "AB887X", + "93703": "AB887X", + "93704": "AB887X", + "93705": "AB887X", + "93706": "AB887X", + "93707": "AB887X", + "93708": "AB887X", + "93709": "AB887X", + "93710": "AB887X", + "93711": "AB887X", + "93712": "AB887X", + "93714": "AB887X", + "93715": "AB887X", + "93716": "AB887X", + "93717": "AB887X", + "93718": "AB887X", + "93720": "AB887X", + "93721": "AB887X", + "93722": "AB887X", + "93723": "AB887X", + "93724": "AB887X", + "93725": "AB887X", + "93726": "AB887X", + "93727": "AB887X", + "93728": "AB887X", + "93729": "AB887X", + "93730": "AB887X", + "93740": "AB887X", + "93741": "AB887X", + "93744": "AB887X", + "93745": "AB887X", + "93747": "AB887X", + "93750": "AB887X", + "93755": "AB887X", + "93760": "AB887X", + "93761": "AB887X", + "93764": "AB887X", + "93765": "AB887X", + "93771": "AB887X", + "93772": "AB887X", + "93773": "AB887X", + "93774": "AB887X", + "93775": "AB887X", + "93776": "AB887X", + "93777": "AB887X", + "93778": "AB887X", + "93779": "AB887X", + "93780": "AB887X", + "93784": "AB887X", + "93786": "AB887X", + "93790": "AB887X", + "93791": "AB887X", + "93792": "AB887X", + "93793": "AB887X", + "93794": "AB887X", + "93844": "AB887X", + "93888": "AB887X", + "93901": "AB887X", + "93902": "AB887X", + "93905": "AB887X", + "93906": "AB887X", + "93907": "AB887X", + "93908": "AB887X", + "93912": "AB887X", + "93915": "AB887X", + "93920": "AB887X", + "93921": "AB887X", + "93922": "AB887X", + "93923": "AB887X", + "93924": "AB887X", + "93925": "AB887X", + "93926": "AB887X", + "93927": "AB887X", + "93928": "AB887X", + "93930": "AB887X", + "93932": "AB887X", + "93933": "AB887X", + "93940": "AB887X", + "93942": "AB887X", + "93943": "AB887X", + "93944": "AB887X", + "93950": "AB887X", + "93953": "AB887X", + "93954": "AB887X", + "93955": "AB887X", + "93960": "AB887X", + "93962": "AB887X", + "94002": "AB887X", + "94005": "AB887X", + "94010": "AB887X", + "94011": "AB887X", + "94013": "AB887X", + "94014": "AB887X", + "94015": "AB887X", + "94016": "AB887X", + "94017": "AB887X", + "94018": "AB887X", + "94019": "AB887X", + "94020": "AB887X", + "94021": "AB887X", + "94022": "AB887X", + "94023": "AB887X", + "94024": "AB887X", + "94025": "AB887X", + "94026": "AB887X", + "94027": "AB887X", + "94028": "AB887X", + "94030": "AB887X", + "94035": "AB887X", + "94037": "AB887X", + "94038": "AB887X", + "94039": "AB887X", + "94040": "AB887X", + "94041": "AB887X", + "94042": "AB887X", + "94043": "AB887X", + "94044": "AB887X", + "94060": "AB887X", + "94061": "AB887X", + "94062": "AB887X", + "94063": "AB887X", + "94064": "AB887X", + "94065": "AB887X", + "94066": "AB887X", + "94070": "AB887X", + "94074": "AB887X", + "94080": "AB887X", + "94083": "AB887X", + "94085": "AB887X", + "94086": "AB887X", + "94087": "AB887X", + "94088": "AB887X", + "94089": "AB887X", + "94096": "AB887X", + "94098": "AB887X", + "94101": "AB887X", + "94102": "AB887X", + "94103": "AB887X", + "94104": "AB887X", + "94105": "AB887X", + "94106": "AB887X", + "94107": "AB887X", + "94108": "AB887X", + "94109": "AB887X", + "94110": "AB887X", + "94111": "AB887X", + "94112": "AB887X", + "94114": "AB887X", + "94115": "AB887X", + "94116": "AB887X", + "94117": "AB887X", + "94118": "AB887X", + "94119": "AB887X", + "94120": "AB887X", + "94121": "AB887X", + "94122": "AB887X", + "94123": "AB887X", + "94124": "AB887X", + "94125": "AB887X", + "94126": "AB887X", + "94127": "AB887X", + "94128": "AB887X", + "94129": "AB887X", + "94130": "AB887X", + "94131": "AB887X", + "94132": "AB887X", + "94133": "AB887X", + "94134": "AB887X", + "94135": "AB887X", + "94136": "AB887X", + "94137": "AB887X", + "94138": "AB887X", + "94139": "AB887X", + "94140": "AB887X", + "94141": "AB887X", + "94142": "AB887X", + "94143": "AB887X", + "94144": "AB887X", + "94145": "AB887X", + "94146": "AB887X", + "94147": "AB887X", + "94150": "AB887X", + "94151": "AB887X", + "94152": "AB887X", + "94153": "AB887X", + "94154": "AB887X", + "94155": "AB887X", + "94156": "AB887X", + "94157": "AB887X", + "94158": "AB887X", + "94159": "AB887X", + "94160": "AB887X", + "94161": "AB887X", + "94162": "AB887X", + "94163": "AB887X", + "94164": "AB887X", + "94165": "AB887X", + "94166": "AB887X", + "94167": "AB887X", + "94168": "AB887X", + "94169": "AB887X", + "94170": "AB887X", + "94171": "AB887X", + "94172": "AB887X", + "94175": "AB887X", + "94177": "AB887X", + "94188": "AB887X", + "94199": "AB887X", + "94203": "AB887X", + "94204": "AB887X", + "94205": "AB887X", + "94206": "AB887X", + "94207": "AB887X", + "94208": "AB887X", + "94209": "AB887X", + "94211": "AB887X", + "94229": "AB887X", + "94230": "AB887X", + "94232": "AB887X", + "94234": "AB887X", + "94235": "AB887X", + "94236": "AB887X", + "94237": "AB887X", + "94239": "AB887X", + "94240": "AB887X", + "94244": "AB887X", + "94245": "AB887X", + "94246": "AB887X", + "94247": "AB887X", + "94248": "AB887X", + "94249": "AB887X", + "94250": "AB887X", + "94252": "AB887X", + "94254": "AB887X", + "94256": "AB887X", + "94257": "AB887X", + "94258": "AB887X", + "94259": "AB887X", + "94261": "AB887X", + "94262": "AB887X", + "94263": "AB887X", + "94267": "AB887X", + "94268": "AB887X", + "94269": "AB887X", + "94271": "AB887X", + "94273": "AB887X", + "94274": "AB887X", + "94277": "AB887X", + "94278": "AB887X", + "94279": "AB887X", + "94280": "AB887X", + "94282": "AB887X", + "94283": "AB887X", + "94284": "AB887X", + "94285": "AB887X", + "94286": "AB887X", + "94287": "AB887X", + "94288": "AB887X", + "94289": "AB887X", + "94290": "AB887X", + "94291": "AB887X", + "94293": "AB887X", + "94294": "AB887X", + "94295": "AB887X", + "94296": "AB887X", + "94297": "AB887X", + "94298": "AB887X", + "94299": "AB887X", + "94301": "AB887X", + "94302": "AB887X", + "94303": "AB887X", + "94304": "AB887X", + "94305": "AB887X", + "94306": "AB887X", + "94309": "AB887X", + "94401": "AB887X", + "94402": "AB887X", + "94403": "AB887X", + "94404": "AB887X", + "94497": "AB887X", + "94501": "AB887X", + "94502": "AB887X", + "94503": "AB887X", + "94506": "AB887X", + "94507": "AB887X", + "94508": "AB887X", + "94509": "AB887X", + "94510": "AB887X", + "94511": "AB887X", + "94512": "AB887X", + "94513": "AB887X", + "94514": "AB887X", + "94515": "AB887X", + "94516": "AB887X", + "94517": "AB887X", + "94518": "AB887X", + "94519": "AB887X", + "94520": "AB887X", + "94521": "AB887X", + "94522": "AB887X", + "94523": "AB887X", + "94524": "AB887X", + "94525": "AB887X", + "94526": "AB887X", + "94527": "AB887X", + "94528": "AB887X", + "94529": "AB887X", + "94530": "AB887X", + "94531": "AB887X", + "94533": "AB887X", + "94534": "AB887X", + "94535": "AB887X", + "94536": "AB887X", + "94537": "AB887X", + "94538": "AB887X", + "94539": "AB887X", + "94540": "AB887X", + "94541": "AB887X", + "94542": "AB887X", + "94543": "AB887X", + "94544": "AB887X", + "94545": "AB887X", + "94546": "AB887X", + "94547": "AB887X", + "94548": "AB887X", + "94549": "AB887X", + "94550": "AB887X", + "94551": "AB887X", + "94552": "AB887X", + "94553": "AB887X", + "94555": "AB887X", + "94556": "AB887X", + "94557": "AB887X", + "94558": "AB887X", + "94559": "AB887X", + "94560": "AB887X", + "94561": "AB887X", + "94562": "AB887X", + "94563": "AB887X", + "94564": "AB887X", + "94565": "AB887X", + "94566": "AB887X", + "94567": "AB887X", + "94568": "AB887X", + "94569": "AB887X", + "94570": "AB887X", + "94571": "AB887X", + "94572": "AB887X", + "94573": "AB887X", + "94574": "AB887X", + "94575": "AB887X", + "94576": "AB887X", + "94577": "AB887X", + "94578": "AB887X", + "94579": "AB887X", + "94580": "AB887X", + "94581": "AB887X", + "94582": "AB887X", + "94583": "AB887X", + "94585": "AB887X", + "94586": "AB887X", + "94587": "AB887X", + "94588": "AB887X", + "94589": "AB887X", + "94590": "AB887X", + "94591": "AB887X", + "94592": "AB887X", + "94595": "AB887X", + "94596": "AB887X", + "94597": "AB887X", + "94598": "AB887X", + "94599": "AB887X", + "94601": "AB887X", + "94602": "AB887X", + "94603": "AB887X", + "94604": "AB887X", + "94605": "AB887X", + "94606": "AB887X", + "94607": "AB887X", + "94608": "AB887X", + "94609": "AB887X", + "94610": "AB887X", + "94611": "AB887X", + "94612": "AB887X", + "94613": "AB887X", + "94614": "AB887X", + "94615": "AB887X", + "94617": "AB887X", + "94618": "AB887X", + "94619": "AB887X", + "94620": "AB887X", + "94621": "AB887X", + "94622": "AB887X", + "94623": "AB887X", + "94624": "AB887X", + "94625": "AB887X", + "94649": "AB887X", + "94659": "AB887X", + "94660": "AB887X", + "94661": "AB887X", + "94662": "AB887X", + "94666": "AB887X", + "94701": "AB887X", + "94702": "AB887X", + "94703": "AB887X", + "94704": "AB887X", + "94705": "AB887X", + "94706": "AB887X", + "94707": "AB887X", + "94708": "AB887X", + "94709": "AB887X", + "94710": "AB887X", + "94712": "AB887X", + "94720": "AB887X", + "94801": "AB887X", + "94802": "AB887X", + "94803": "AB887X", + "94804": "AB887X", + "94805": "AB887X", + "94806": "AB887X", + "94807": "AB887X", + "94808": "AB887X", + "94820": "AB887X", + "94850": "AB887X", + "94901": "AB887X", + "94903": "AB887X", + "94904": "AB887X", + "94912": "AB887X", + "94913": "AB887X", + "94914": "AB887X", + "94915": "AB887X", + "94920": "AB887X", + "94922": "AB887X", + "94923": "AB887X", + "94924": "AB887X", + "94925": "AB887X", + "94926": "AB887X", + "94927": "AB887X", + "94928": "AB887X", + "94929": "AB887X", + "94930": "AB887X", + "94931": "AB887X", + "94933": "AB887X", + "94937": "AB887X", + "94938": "AB887X", + "94939": "AB887X", + "94940": "AB887X", + "94941": "AB887X", + "94942": "AB887X", + "94945": "AB887X", + "94946": "AB887X", + "94947": "AB887X", + "94948": "AB887X", + "94949": "AB887X", + "94950": "AB887X", + "94951": "AB887X", + "94952": "AB887X", + "94953": "AB887X", + "94954": "AB887X", + "94955": "AB887X", + "94956": "AB887X", + "94957": "AB887X", + "94960": "AB887X", + "94963": "AB887X", + "94964": "AB887X", + "94965": "AB887X", + "94966": "AB887X", + "94970": "AB887X", + "94971": "AB887X", + "94972": "AB887X", + "94973": "AB887X", + "94974": "AB887X", + "94975": "AB887X", + "94976": "AB887X", + "94977": "AB887X", + "94978": "AB887X", + "94979": "AB887X", + "94998": "AB887X", + "94999": "AB887X", + "95001": "AB887X", + "95002": "AB887X", + "95003": "AB887X", + "95004": "AB887X", + "95005": "AB887X", + "95006": "AB887X", + "95007": "AB887X", + "95008": "AB887X", + "95009": "AB887X", + "95010": "AB887X", + "95011": "AB887X", + "95012": "AB887X", + "95013": "AB887X", + "95014": "AB887X", + "95015": "AB887X", + "95017": "AB887X", + "95018": "AB887X", + "95019": "AB887X", + "95020": "AB887X", + "95021": "AB887X", + "95023": "AB887X", + "95024": "AB887X", + "95026": "AB887X", + "95030": "AB887X", + "95031": "AB887X", + "95032": "AB887X", + "95033": "AB887X", + "95035": "AB887X", + "95036": "AB887X", + "95037": "AB887X", + "95038": "AB887X", + "95039": "AB887X", + "95041": "AB887X", + "95042": "AB887X", + "95043": "AB887X", + "95044": "AB887X", + "95045": "AB887X", + "95046": "AB887X", + "95050": "AB887X", + "95051": "AB887X", + "95052": "AB887X", + "95053": "AB887X", + "95054": "AB887X", + "95055": "AB887X", + "95056": "AB887X", + "95060": "AB887X", + "95061": "AB887X", + "95062": "AB887X", + "95063": "AB887X", + "95064": "AB887X", + "95065": "AB887X", + "95066": "AB887X", + "95067": "AB887X", + "95070": "AB887X", + "95071": "AB887X", + "95073": "AB887X", + "95075": "AB887X", + "95076": "AB887X", + "95077": "AB887X", + "95101": "AB887X", + "95103": "AB887X", + "95106": "AB887X", + "95108": "AB887X", + "95109": "AB887X", + "95110": "AB887X", + "95111": "AB887X", + "95112": "AB887X", + "95113": "AB887X", + "95115": "AB887X", + "95116": "AB887X", + "95117": "AB887X", + "95118": "AB887X", + "95119": "AB887X", + "95120": "AB887X", + "95121": "AB887X", + "95122": "AB887X", + "95123": "AB887X", + "95124": "AB887X", + "95125": "AB887X", + "95126": "AB887X", + "95127": "AB887X", + "95128": "AB887X", + "95129": "AB887X", + "95130": "AB887X", + "95131": "AB887X", + "95132": "AB887X", + "95133": "AB887X", + "95134": "AB887X", + "95135": "AB887X", + "95136": "AB887X", + "95138": "AB887X", + "95139": "AB887X", + "95140": "AB887X", + "95141": "AB887X", + "95148": "AB887X", + "95150": "AB887X", + "95151": "AB887X", + "95152": "AB887X", + "95153": "AB887X", + "95154": "AB887X", + "95155": "AB887X", + "95156": "AB887X", + "95157": "AB887X", + "95158": "AB887X", + "95159": "AB887X", + "95160": "AB887X", + "95161": "AB887X", + "95164": "AB887X", + "95170": "AB887X", + "95172": "AB887X", + "95173": "AB887X", + "95190": "AB887X", + "95191": "AB887X", + "95192": "AB887X", + "95193": "AB887X", + "95194": "AB887X", + "95196": "AB887X", + "95201": "AB887X", + "95202": "AB887X", + "95203": "AB887X", + "95204": "AB887X", + "95205": "AB887X", + "95206": "AB887X", + "95207": "AB887X", + "95208": "AB887X", + "95209": "AB887X", + "95210": "AB887X", + "95211": "AB887X", + "95212": "AB887X", + "95213": "AB887X", + "95215": "AB887X", + "95219": "AB887X", + "95220": "AB887X", + "95221": "AB887X", + "95222": "AB887X", + "95223": "AB887X", + "95224": "AB887X", + "95225": "AB887X", + "95226": "AB887X", + "95227": "AB887X", + "95228": "AB887X", + "95229": "AB887X", + "95230": "AB887X", + "95231": "AB887X", + "95232": "AB887X", + "95233": "AB887X", + "95234": "AB887X", + "95236": "AB887X", + "95237": "AB887X", + "95240": "AB887X", + "95241": "AB887X", + "95242": "AB887X", + "95245": "AB887X", + "95246": "AB887X", + "95247": "AB887X", + "95248": "AB887X", + "95249": "AB887X", + "95250": "AB887X", + "95251": "AB887X", + "95252": "AB887X", + "95253": "AB887X", + "95254": "AB887X", + "95255": "AB887X", + "95257": "AB887X", + "95258": "AB887X", + "95267": "AB887X", + "95269": "AB887X", + "95296": "AB887X", + "95297": "AB887X", + "95301": "AB887X", + "95303": "AB887X", + "95304": "AB887X", + "95305": "AB887X", + "95306": "AB887X", + "95307": "AB887X", + "95309": "AB887X", + "95310": "AB887X", + "95311": "AB887X", + "95312": "AB887X", + "95313": "AB887X", + "95314": "AB887X", + "95315": "AB887X", + "95316": "AB887X", + "95317": "AB887X", + "95318": "AB887X", + "95319": "AB887X", + "95320": "AB887X", + "95321": "AB887X", + "95322": "AB887X", + "95323": "AB887X", + "95324": "AB887X", + "95325": "AB887X", + "95326": "AB887X", + "95327": "AB887X", + "95328": "AB887X", + "95329": "AB887X", + "95330": "AB887X", + "95333": "AB887X", + "95334": "AB887X", + "95335": "AB887X", + "95336": "AB887X", + "95337": "AB887X", + "95338": "AB887X", + "95340": "AB887X", + "95341": "AB887X", + "95343": "AB887X", + "95344": "AB887X", + "95345": "AB887X", + "95346": "AB887X", + "95347": "AB887X", + "95348": "AB887X", + "95350": "AB887X", + "95351": "AB887X", + "95352": "AB887X", + "95353": "AB887X", + "95354": "AB887X", + "95355": "AB887X", + "95356": "AB887X", + "95357": "AB887X", + "95358": "AB887X", + "95360": "AB887X", + "95361": "AB887X", + "95363": "AB887X", + "95364": "AB887X", + "95365": "AB887X", + "95366": "AB887X", + "95367": "AB887X", + "95368": "AB887X", + "95369": "AB887X", + "95370": "AB887X", + "95372": "AB887X", + "95373": "AB887X", + "95374": "AB887X", + "95375": "AB887X", + "95376": "AB887X", + "95377": "AB887X", + "95378": "AB887X", + "95379": "AB887X", + "95380": "AB887X", + "95381": "AB887X", + "95382": "AB887X", + "95383": "AB887X", + "95385": "AB887X", + "95386": "AB887X", + "95387": "AB887X", + "95388": "AB887X", + "95389": "AB887X", + "95391": "AB887X", + "95397": "AB887X", + "95401": "AB887X", + "95402": "AB887X", + "95403": "AB887X", + "95404": "AB887X", + "95405": "AB887X", + "95406": "AB887X", + "95407": "AB887X", + "95408": "AB887X", + "95409": "AB887X", + "95410": "AB887X", + "95412": "AB887X", + "95415": "AB887X", + "95416": "AB887X", + "95417": "AB887X", + "95418": "AB887X", + "95419": "AB887X", + "95420": "AB887X", + "95421": "AB887X", + "95422": "AB887X", + "95423": "AB887X", + "95424": "AB887X", + "95425": "AB887X", + "95426": "AB887X", + "95427": "AB887X", + "95428": "AB887X", + "95429": "AB887X", + "95430": "AB887X", + "95431": "AB887X", + "95432": "AB887X", + "95433": "AB887X", + "95435": "AB887X", + "95436": "AB887X", + "95437": "AB887X", + "95439": "AB887X", + "95441": "AB887X", + "95442": "AB887X", + "95443": "AB887X", + "95444": "AB887X", + "95445": "AB887X", + "95446": "AB887X", + "95448": "AB887X", + "95449": "AB887X", + "95450": "AB887X", + "95451": "AB887X", + "95452": "AB887X", + "95453": "AB887X", + "95454": "AB887X", + "95456": "AB887X", + "95457": "AB887X", + "95458": "AB887X", + "95459": "AB887X", + "95460": "AB887X", + "95461": "AB887X", + "95462": "AB887X", + "95463": "AB887X", + "95464": "AB887X", + "95465": "AB887X", + "95466": "AB887X", + "95467": "AB887X", + "95468": "AB887X", + "95469": "AB887X", + "95470": "AB887X", + "95471": "AB887X", + "95472": "AB887X", + "95473": "AB887X", + "95476": "AB887X", + "95480": "AB887X", + "95481": "AB887X", + "95482": "AB887X", + "95485": "AB887X", + "95486": "AB887X", + "95487": "AB887X", + "95488": "AB887X", + "95490": "AB887X", + "95492": "AB887X", + "95493": "AB887X", + "95494": "AB887X", + "95497": "AB887X", + "95501": "AB890X", + "95502": "AB890X", + "95503": "AB890X", + "95511": "AB890X", + "95514": "AB890X", + "95518": "AB890X", + "95519": "AB890X", + "95521": "AB890X", + "95524": "AB890X", + "95525": "AB890X", + "95526": "AB890X", + "95527": "AB890X", + "95528": "AB890X", + "95531": "AB890X", + "95532": "AB890X", + "95534": "AB890X", + "95536": "AB890X", + "95537": "AB890X", + "95538": "AB890X", + "95540": "AB890X", + "95542": "AB890X", + "95543": "AB890X", + "95545": "AB890X", + "95546": "AB890X", + "95547": "AB890X", + "95548": "AB890X", + "95549": "AB890X", + "95550": "AB890X", + "95551": "AB890X", + "95552": "AB890X", + "95553": "AB890X", + "95554": "AB890X", + "95555": "AB890X", + "95556": "AB890X", + "95558": "AB890X", + "95559": "AB890X", + "95560": "AB890X", + "95562": "AB890X", + "95563": "AB890X", + "95564": "AB890X", + "95565": "AB890X", + "95567": "AB890X", + "95568": "AB890X", + "95569": "AB890X", + "95570": "AB890X", + "95571": "AB890X", + "95573": "AB890X", + "95585": "AB887X", + "95587": "AB887X", + "95589": "AB890X", + "95595": "AB890X", + "95601": "AB887X", + "95602": "AB887X", + "95603": "AB887X", + "95604": "AB887X", + "95605": "AB887X", + "95606": "AB887X", + "95607": "AB887X", + "95608": "AB887X", + "95609": "AB887X", + "95610": "AB887X", + "95611": "AB887X", + "95612": "AB887X", + "95613": "AB887X", + "95614": "AB887X", + "95615": "AB887X", + "95616": "AB887X", + "95617": "AB887X", + "95618": "AB887X", + "95619": "AB887X", + "95620": "AB887X", + "95621": "AB887X", + "95623": "AB887X", + "95624": "AB887X", + "95625": "AB887X", + "95626": "AB887X", + "95627": "AB887X", + "95628": "AB887X", + "95629": "AB887X", + "95630": "AB887X", + "95631": "AB887X", + "95632": "AB887X", + "95633": "AB887X", + "95634": "AB887X", + "95635": "AB887X", + "95636": "AB887X", + "95637": "AB887X", + "95638": "AB887X", + "95639": "AB887X", + "95640": "AB887X", + "95641": "AB887X", + "95642": "AB887X", + "95644": "AB887X", + "95645": "AB887X", + "95646": "AB887X", + "95648": "AB887X", + "95650": "AB887X", + "95651": "AB887X", + "95652": "AB887X", + "95653": "AB887X", + "95654": "AB887X", + "95655": "AB887X", + "95656": "AB887X", + "95658": "AB887X", + "95659": "AB887X", + "95660": "AB887X", + "95661": "AB887X", + "95662": "AB887X", + "95663": "AB887X", + "95664": "AB887X", + "95665": "AB887X", + "95666": "AB887X", + "95667": "AB887X", + "95668": "AB887X", + "95669": "AB887X", + "95670": "AB887X", + "95671": "AB887X", + "95672": "AB887X", + "95673": "AB887X", + "95674": "AB887X", + "95675": "AB887X", + "95676": "AB887X", + "95677": "AB887X", + "95678": "AB887X", + "95679": "AB887X", + "95680": "AB887X", + "95681": "AB887X", + "95682": "AB887X", + "95683": "AB887X", + "95684": "AB887X", + "95685": "AB887X", + "95686": "AB887X", + "95687": "AB887X", + "95688": "AB887X", + "95689": "AB887X", + "95690": "AB887X", + "95691": "AB887X", + "95692": "AB887X", + "95693": "AB887X", + "95694": "AB887X", + "95695": "AB887X", + "95696": "AB887X", + "95697": "AB887X", + "95698": "AB887X", + "95699": "AB887X", + "95701": "AB887X", + "95703": "AB887X", + "95709": "AB887X", + "95712": "AB887X", + "95713": "AB887X", + "95714": "AB887X", + "95715": "AB887X", + "95717": "AB887X", + "95720": "AB887X", + "95721": "AB887X", + "95722": "AB887X", + "95724": "AB887X", + "95726": "AB887X", + "95728": "AB887X", + "95735": "AB887X", + "95736": "AB887X", + "95741": "AB887X", + "95742": "AB887X", + "95746": "AB887X", + "95747": "AB887X", + "95757": "AB887X", + "95758": "AB887X", + "95759": "AB887X", + "95762": "AB887X", + "95763": "AB887X", + "95765": "AB887X", + "95776": "AB887X", + "95798": "AB887X", + "95799": "AB887X", + "95812": "AB887X", + "95813": "AB887X", + "95814": "AB887X", + "95815": "AB887X", + "95816": "AB887X", + "95817": "AB887X", + "95818": "AB887X", + "95819": "AB887X", + "95820": "AB887X", + "95821": "AB887X", + "95822": "AB887X", + "95823": "AB887X", + "95824": "AB887X", + "95825": "AB887X", + "95826": "AB887X", + "95827": "AB887X", + "95828": "AB887X", + "95829": "AB887X", + "95830": "AB887X", + "95831": "AB887X", + "95832": "AB887X", + "95833": "AB887X", + "95834": "AB887X", + "95835": "AB887X", + "95836": "AB887X", + "95837": "AB887X", + "95838": "AB887X", + "95840": "AB887X", + "95841": "AB887X", + "95842": "AB887X", + "95843": "AB887X", + "95851": "AB887X", + "95852": "AB887X", + "95853": "AB887X", + "95860": "AB887X", + "95864": "AB887X", + "95865": "AB887X", + "95866": "AB887X", + "95867": "AB887X", + "95887": "AB887X", + "95894": "AB887X", + "95899": "AB887X", + "95901": "AB887X", + "95903": "AB887X", + "95910": "AB887X", + "95912": "AB887X", + "95913": "AB887X", + "95914": "AB887X", + "95915": "AB887X", + "95916": "AB887X", + "95917": "AB887X", + "95918": "AB887X", + "95919": "AB887X", + "95920": "AB887X", + "95922": "AB887X", + "95923": "AB887X", + "95924": "AB887X", + "95925": "AB887X", + "95926": "AB887X", + "95927": "AB887X", + "95928": "AB887X", + "95929": "AB887X", + "95930": "AB887X", + "95932": "AB887X", + "95934": "AB887X", + "95935": "AB887X", + "95936": "AB887X", + "95937": "AB887X", + "95938": "AB887X", + "95939": "AB887X", + "95940": "AB887X", + "95941": "AB887X", + "95942": "AB887X", + "95943": "AB887X", + "95944": "AB887X", + "95945": "AB887X", + "95946": "AB887X", + "95947": "AB887X", + "95948": "AB887X", + "95949": "AB887X", + "95950": "AB887X", + "95951": "AB887X", + "95953": "AB887X", + "95954": "AB887X", + "95955": "AB887X", + "95956": "AB887X", + "95957": "AB887X", + "95958": "AB887X", + "95959": "AB887X", + "95960": "AB887X", + "95961": "AB887X", + "95962": "AB887X", + "95963": "AB887X", + "95965": "AB887X", + "95966": "AB887X", + "95967": "AB887X", + "95968": "AB887X", + "95969": "AB887X", + "95970": "AB887X", + "95971": "AB887X", + "95972": "AB887X", + "95973": "AB887X", + "95974": "AB887X", + "95975": "AB887X", + "95976": "AB887X", + "95977": "AB887X", + "95978": "AB887X", + "95979": "AB887X", + "95980": "AB887X", + "95981": "AB887X", + "95982": "AB887X", + "95983": "AB887X", + "95984": "AB887X", + "95986": "AB887X", + "95987": "AB887X", + "95988": "AB887X", + "95991": "AB887X", + "95992": "AB887X", + "95993": "AB887X", + "96001": "AB887X", + "96002": "AB887X", + "96003": "AB887X", + "96006": "AB890X", + "96007": "AB887X", + "96008": "AB887X", + "96009": "AB887X", + "96010": "AB890X", + "96011": "AB887X", + "96013": "AB887X", + "96014": "AB890X", + "96015": "AB890X", + "96016": "AB887X", + "96017": "AB887X", + "96019": "AB887X", + "96020": "AB887X", + "96021": "AB887X", + "96022": "AB887X", + "96023": "AB890X", + "96024": "AB890X", + "96025": "AB890X", + "96027": "AB890X", + "96028": "AB887X", + "96029": "AB887X", + "96031": "AB890X", + "96032": "AB890X", + "96033": "AB887X", + "96034": "AB890X", + "96035": "AB887X", + "96037": "AB890X", + "96038": "AB890X", + "96039": "AB890X", + "96040": "AB887X", + "96041": "AB890X", + "96044": "AB890X", + "96046": "AB890X", + "96047": "AB887X", + "96048": "AB890X", + "96049": "AB887X", + "96050": "AB890X", + "96051": "AB887X", + "96052": "AB890X", + "96054": "AB890X", + "96055": "AB887X", + "96056": "AB887X", + "96057": "AB890X", + "96058": "AB890X", + "96059": "AB887X", + "96061": "AB887X", + "96062": "AB887X", + "96063": "AB887X", + "96064": "AB890X", + "96065": "AB887X", + "96067": "AB890X", + "96068": "AB887X", + "96069": "AB887X", + "96070": "AB887X", + "96071": "AB887X", + "96073": "AB887X", + "96074": "AB887X", + "96075": "AB887X", + "96076": "AB887X", + "96078": "AB887X", + "96079": "AB887X", + "96080": "AB887X", + "96084": "AB887X", + "96085": "AB890X", + "96086": "AB890X", + "96087": "AB887X", + "96088": "AB887X", + "96089": "AB887X", + "96090": "AB887X", + "96091": "AB890X", + "96092": "AB887X", + "96093": "AB890X", + "96094": "AB890X", + "96095": "AB887X", + "96096": "AB887X", + "96097": "AB890X", + "96099": "AB887X", + "96101": "AB890X", + "96103": "AB887X", + "96104": "AB890X", + "96105": "AB887X", + "96106": "AB887X", + "96107": "AB890X", + "96108": "AB890X", + "96109": "AB887X", + "96110": "AB890X", + "96111": "AB887X", + "96112": "AB890X", + "96113": "AB887X", + "96114": "AB887X", + "96115": "AB890X", + "96116": "AB890X", + "96117": "AB887X", + "96118": "AB887X", + "96119": "AB887X", + "96120": "AB887X", + "96121": "AB887X", + "96122": "AB887X", + "96123": "AB887X", + "96124": "AB887X", + "96125": "AB887X", + "96126": "AB887X", + "96127": "AB887X", + "96128": "AB887X", + "96129": "AB887X", + "96130": "AB887X", + "96132": "AB887X", + "96133": "AB890X", + "96134": "AB890X", + "96135": "AB887X", + "96136": "AB887X", + "96137": "AB887X", + "96140": "AB887X", + "96141": "AB887X", + "96142": "AB887X", + "96143": "AB887X", + "96145": "AB887X", + "96146": "AB887X", + "96148": "AB887X", + "96150": "AB887X", + "96151": "AB887X", + "96152": "AB887X", + "96154": "AB887X", + "96155": "AB887X", + "96156": "AB887X", + "96157": "AB887X", + "96158": "AB887X", + "96160": "AB887X", + "96161": "AB887X", + "96162": "AB887X", + "97001": "AB890X", + "97002": "AB890X", + "97004": "AB890X", + "97005": "AB890X", + "97006": "AB890X", + "97007": "AB890X", + "97008": "AB890X", + "97009": "AB890X", + "97010": "AB890X", + "97011": "AB890X", + "97013": "AB890X", + "97014": "AB890X", + "97015": "AB890X", + "97016": "AB890X", + "97017": "AB890X", + "97018": "AB890X", + "97019": "AB890X", + "97020": "AB890X", + "97021": "AB890X", + "97022": "AB890X", + "97023": "AB890X", + "97024": "AB890X", + "97026": "AB890X", + "97027": "AB890X", + "97028": "AB890X", + "97029": "AB890X", + "97030": "AB890X", + "97031": "AB890X", + "97032": "AB890X", + "97033": "AB890X", + "97034": "AB890X", + "97035": "AB890X", + "97036": "AB890X", + "97037": "AB890X", + "97038": "AB890X", + "97039": "AB890X", + "97040": "AB890X", + "97041": "AB890X", + "97042": "AB890X", + "97044": "AB890X", + "97045": "AB890X", + "97048": "AB890X", + "97049": "AB890X", + "97050": "AB890X", + "97051": "AB890X", + "97053": "AB890X", + "97054": "AB890X", + "97055": "AB890X", + "97056": "AB890X", + "97057": "AB890X", + "97058": "AB890X", + "97060": "AB890X", + "97062": "AB890X", + "97063": "AB890X", + "97064": "AB890X", + "97065": "AB890X", + "97067": "AB890X", + "97068": "AB890X", + "97070": "AB890X", + "97071": "AB890X", + "97075": "AB890X", + "97076": "AB890X", + "97077": "AB890X", + "97078": "AB890X", + "97080": "AB890X", + "97086": "AB890X", + "97089": "AB890X", + "97101": "AB890X", + "97102": "AB890X", + "97103": "AB890X", + "97106": "AB890X", + "97107": "AB890X", + "97108": "AB890X", + "97109": "AB890X", + "97110": "AB890X", + "97111": "AB890X", + "97112": "AB890X", + "97113": "AB890X", + "97114": "AB890X", + "97115": "AB890X", + "97116": "AB890X", + "97117": "AB890X", + "97118": "AB890X", + "97119": "AB890X", + "97121": "AB890X", + "97122": "AB890X", + "97123": "AB890X", + "97124": "AB890X", + "97125": "AB890X", + "97127": "AB890X", + "97128": "AB890X", + "97130": "AB890X", + "97131": "AB890X", + "97132": "AB890X", + "97133": "AB890X", + "97134": "AB890X", + "97135": "AB890X", + "97136": "AB890X", + "97137": "AB890X", + "97138": "AB890X", + "97140": "AB890X", + "97141": "AB890X", + "97143": "AB890X", + "97144": "AB890X", + "97145": "AB890X", + "97146": "AB890X", + "97147": "AB890X", + "97148": "AB890X", + "97149": "AB890X", + "97201": "AB890X", + "97202": "AB890X", + "97203": "AB890X", + "97204": "AB890X", + "97205": "AB890X", + "97206": "AB890X", + "97207": "AB890X", + "97208": "AB890X", + "97209": "AB890X", + "97210": "AB890X", + "97211": "AB890X", + "97212": "AB890X", + "97213": "AB890X", + "97214": "AB890X", + "97215": "AB890X", + "97216": "AB890X", + "97217": "AB890X", + "97218": "AB890X", + "97219": "AB890X", + "97220": "AB890X", + "97221": "AB890X", + "97222": "AB890X", + "97223": "AB890X", + "97224": "AB890X", + "97225": "AB890X", + "97227": "AB890X", + "97228": "AB890X", + "97229": "AB890X", + "97230": "AB890X", + "97231": "AB890X", + "97232": "AB890X", + "97233": "AB890X", + "97236": "AB890X", + "97238": "AB890X", + "97239": "AB890X", + "97240": "AB890X", + "97242": "AB890X", + "97251": "AB890X", + "97253": "AB890X", + "97254": "AB890X", + "97255": "AB890X", + "97256": "AB890X", + "97258": "AB890X", + "97259": "AB890X", + "97266": "AB890X", + "97267": "AB890X", + "97268": "AB890X", + "97269": "AB890X", + "97271": "AB890X", + "97272": "AB890X", + "97280": "AB890X", + "97281": "AB890X", + "97282": "AB890X", + "97283": "AB890X", + "97286": "AB890X", + "97290": "AB890X", + "97291": "AB890X", + "97292": "AB890X", + "97293": "AB890X", + "97294": "AB890X", + "97296": "AB890X", + "97298": "AB890X", + "97299": "AB890X", + "97301": "AB890X", + "97302": "AB890X", + "97303": "AB890X", + "97304": "AB890X", + "97305": "AB890X", + "97306": "AB890X", + "97307": "AB890X", + "97308": "AB890X", + "97309": "AB890X", + "97310": "AB890X", + "97311": "AB890X", + "97312": "AB890X", + "97313": "AB890X", + "97314": "AB890X", + "97317": "AB890X", + "97321": "AB890X", + "97322": "AB890X", + "97324": "AB890X", + "97325": "AB890X", + "97326": "AB890X", + "97327": "AB890X", + "97329": "AB890X", + "97330": "AB890X", + "97331": "AB890X", + "97333": "AB890X", + "97335": "AB890X", + "97336": "AB890X", + "97338": "AB890X", + "97339": "AB890X", + "97341": "AB890X", + "97342": "AB890X", + "97343": "AB890X", + "97344": "AB890X", + "97345": "AB890X", + "97346": "AB890X", + "97347": "AB890X", + "97348": "AB890X", + "97350": "AB890X", + "97351": "AB890X", + "97352": "AB890X", + "97355": "AB890X", + "97357": "AB890X", + "97358": "AB890X", + "97360": "AB890X", + "97361": "AB890X", + "97362": "AB890X", + "97364": "AB890X", + "97365": "AB890X", + "97366": "AB890X", + "97367": "AB890X", + "97368": "AB890X", + "97369": "AB890X", + "97370": "AB890X", + "97371": "AB890X", + "97372": "AB890X", + "97373": "AB890X", + "97374": "AB890X", + "97375": "AB890X", + "97376": "AB890X", + "97377": "AB890X", + "97378": "AB890X", + "97380": "AB890X", + "97381": "AB890X", + "97383": "AB890X", + "97384": "AB890X", + "97385": "AB890X", + "97386": "AB890X", + "97388": "AB890X", + "97389": "AB890X", + "97390": "AB890X", + "97391": "AB890X", + "97392": "AB890X", + "97394": "AB890X", + "97396": "AB890X", + "97401": "AB890X", + "97402": "AB890X", + "97403": "AB890X", + "97404": "AB890X", + "97405": "AB890X", + "97406": "AB890X", + "97407": "AB890X", + "97408": "AB890X", + "97409": "AB890X", + "97410": "AB890X", + "97411": "AB890X", + "97412": "AB890X", + "97413": "AB890X", + "97414": "AB890X", + "97415": "AB890X", + "97416": "AB890X", + "97417": "AB890X", + "97419": "AB890X", + "97420": "AB890X", + "97423": "AB890X", + "97424": "AB890X", + "97425": "AB890X", + "97426": "AB890X", + "97427": "AB890X", + "97428": "AB890X", + "97429": "AB890X", + "97430": "AB890X", + "97431": "AB890X", + "97432": "AB890X", + "97434": "AB890X", + "97435": "AB890X", + "97436": "AB890X", + "97437": "AB890X", + "97438": "AB890X", + "97439": "AB890X", + "97440": "AB890X", + "97441": "AB890X", + "97442": "AB890X", + "97443": "AB890X", + "97444": "AB890X", + "97446": "AB890X", + "97447": "AB890X", + "97448": "AB890X", + "97449": "AB890X", + "97450": "AB890X", + "97451": "AB890X", + "97452": "AB890X", + "97453": "AB890X", + "97454": "AB890X", + "97455": "AB890X", + "97456": "AB890X", + "97457": "AB890X", + "97458": "AB890X", + "97459": "AB890X", + "97461": "AB890X", + "97462": "AB890X", + "97463": "AB890X", + "97464": "AB890X", + "97465": "AB890X", + "97466": "AB890X", + "97467": "AB890X", + "97469": "AB890X", + "97470": "AB890X", + "97471": "AB890X", + "97472": "AB890X", + "97473": "AB890X", + "97476": "AB890X", + "97477": "AB890X", + "97478": "AB890X", + "97479": "AB890X", + "97480": "AB890X", + "97481": "AB890X", + "97482": "AB890X", + "97484": "AB890X", + "97486": "AB890X", + "97487": "AB890X", + "97488": "AB890X", + "97489": "AB890X", + "97490": "AB890X", + "97491": "AB890X", + "97492": "AB890X", + "97493": "AB890X", + "97494": "AB890X", + "97495": "AB890X", + "97496": "AB890X", + "97497": "AB890X", + "97498": "AB890X", + "97499": "AB890X", + "97501": "AB890X", + "97502": "AB890X", + "97503": "AB890X", + "97504": "AB890X", + "97520": "AB890X", + "97522": "AB890X", + "97523": "AB890X", + "97524": "AB890X", + "97525": "AB890X", + "97526": "AB890X", + "97527": "AB890X", + "97528": "AB890X", + "97530": "AB890X", + "97531": "AB890X", + "97532": "AB890X", + "97533": "AB890X", + "97534": "AB890X", + "97535": "AB890X", + "97536": "AB890X", + "97537": "AB890X", + "97538": "AB890X", + "97539": "AB890X", + "97540": "AB890X", + "97541": "AB890X", + "97543": "AB890X", + "97544": "AB890X", + "97601": "AB890X", + "97602": "AB890X", + "97603": "AB890X", + "97604": "AB890X", + "97620": "AB890X", + "97621": "AB890X", + "97622": "AB890X", + "97623": "AB890X", + "97624": "AB890X", + "97625": "AB890X", + "97626": "AB890X", + "97627": "AB890X", + "97630": "AB890X", + "97632": "AB890X", + "97633": "AB890X", + "97634": "AB890X", + "97635": "AB890X", + "97636": "AB890X", + "97637": "AB890X", + "97638": "AB890X", + "97639": "AB890X", + "97640": "AB890X", + "97641": "AB890X", + "97701": "AB890X", + "97702": "AB890X", + "97707": "AB890X", + "97708": "AB890X", + "97709": "AB890X", + "97710": "AB890X", + "97711": "AB890X", + "97712": "AB890X", + "97720": "AB890X", + "97721": "AB890X", + "97722": "AB890X", + "97730": "AB890X", + "97731": "AB890X", + "97732": "AB890X", + "97733": "AB890X", + "97734": "AB890X", + "97735": "AB890X", + "97736": "AB890X", + "97737": "AB890X", + "97738": "AB890X", + "97739": "AB890X", + "97741": "AB890X", + "97750": "AB890X", + "97751": "AB890X", + "97752": "AB890X", + "97753": "AB890X", + "97754": "AB890X", + "97756": "AB890X", + "97758": "AB890X", + "97759": "AB890X", + "97760": "AB890X", + "97761": "AB890X", + "97801": "AB890X", + "97810": "AB890X", + "97812": "AB890X", + "97813": "AB890X", + "97814": "AB890X", + "97817": "AB890X", + "97818": "AB890X", + "97819": "AB890X", + "97820": "AB890X", + "97823": "AB890X", + "97824": "AB890X", + "97825": "AB890X", + "97826": "AB890X", + "97827": "AB890X", + "97828": "AB890X", + "97830": "AB890X", + "97833": "AB890X", + "97834": "AB890X", + "97835": "AB890X", + "97836": "AB890X", + "97837": "AB890X", + "97838": "AB890X", + "97839": "AB890X", + "97840": "AB890X", + "97841": "AB890X", + "97842": "AB890X", + "97843": "AB890X", + "97844": "AB890X", + "97845": "AB890X", + "97846": "AB890X", + "97848": "AB890X", + "97850": "AB890X", + "97856": "AB890X", + "97857": "AB890X", + "97859": "AB890X", + "97861": "AB890X", + "97862": "AB890X", + "97864": "AB890X", + "97865": "AB890X", + "97867": "AB890X", + "97868": "AB890X", + "97869": "AB890X", + "97870": "AB890X", + "97873": "AB890X", + "97874": "AB890X", + "97875": "AB890X", + "97876": "AB890X", + "97877": "AB890X", + "97880": "AB890X", + "97882": "AB890X", + "97883": "AB890X", + "97884": "AB890X", + "97885": "AB890X", + "97886": "AB890X", + "97901": "AB890X", + "97902": "AB890X", + "97903": "AB890X", + "97904": "AB890X", + "97905": "AB890X", + "97906": "AB890X", + "97907": "AB890X", + "97908": "AB890X", + "97909": "AB890X", + "97910": "AB890X", + "97911": "AB890X", + "97913": "AB890X", + "97914": "AB890X", + "97917": "AB890X", + "97918": "AB890X", + "97920": "AB890X", + "98001": "AB890X", + "98002": "AB890X", + "98003": "AB890X", + "98004": "AB890X", + "98005": "AB890X", + "98006": "AB890X", + "98007": "AB890X", + "98008": "AB890X", + "98009": "AB890X", + "98010": "AB890X", + "98011": "AB890X", + "98012": "AB890X", + "98013": "AB890X", + "98014": "AB890X", + "98015": "AB890X", + "98019": "AB890X", + "98020": "AB890X", + "98021": "AB890X", + "98022": "AB890X", + "98023": "AB890X", + "98024": "AB890X", + "98025": "AB890X", + "98026": "AB890X", + "98027": "AB890X", + "98028": "AB890X", + "98029": "AB890X", + "98030": "AB890X", + "98031": "AB890X", + "98032": "AB890X", + "98033": "AB890X", + "98034": "AB890X", + "98035": "AB890X", + "98036": "AB890X", + "98037": "AB890X", + "98038": "AB890X", + "98039": "AB890X", + "98040": "AB890X", + "98041": "AB890X", + "98042": "AB890X", + "98043": "AB890X", + "98045": "AB890X", + "98046": "AB890X", + "98047": "AB890X", + "98050": "AB890X", + "98051": "AB890X", + "98052": "AB890X", + "98053": "AB890X", + "98054": "AB890X", + "98055": "AB890X", + "98056": "AB890X", + "98057": "AB890X", + "98058": "AB890X", + "98059": "AB890X", + "98061": "AB890X", + "98062": "AB890X", + "98063": "AB890X", + "98064": "AB890X", + "98065": "AB890X", + "98068": "AB890X", + "98070": "AB890X", + "98071": "AB890X", + "98072": "AB890X", + "98073": "AB890X", + "98074": "AB890X", + "98075": "AB890X", + "98077": "AB890X", + "98082": "AB890X", + "98083": "AB890X", + "98087": "AB890X", + "98089": "AB890X", + "98092": "AB890X", + "98093": "AB890X", + "98101": "AB890X", + "98102": "AB890X", + "98103": "AB890X", + "98104": "AB890X", + "98105": "AB890X", + "98106": "AB890X", + "98107": "AB890X", + "98108": "AB890X", + "98109": "AB890X", + "98110": "AB890X", + "98111": "AB890X", + "98112": "AB890X", + "98113": "AB890X", + "98114": "AB890X", + "98115": "AB890X", + "98116": "AB890X", + "98117": "AB890X", + "98118": "AB890X", + "98119": "AB890X", + "98121": "AB890X", + "98122": "AB890X", + "98124": "AB890X", + "98125": "AB890X", + "98126": "AB890X", + "98127": "AB890X", + "98129": "AB890X", + "98131": "AB890X", + "98132": "AB890X", + "98133": "AB890X", + "98134": "AB890X", + "98136": "AB890X", + "98138": "AB890X", + "98139": "AB890X", + "98141": "AB890X", + "98144": "AB890X", + "98145": "AB890X", + "98146": "AB890X", + "98148": "AB890X", + "98151": "AB890X", + "98154": "AB890X", + "98155": "AB890X", + "98158": "AB890X", + "98160": "AB890X", + "98161": "AB890X", + "98164": "AB890X", + "98165": "AB890X", + "98166": "AB890X", + "98168": "AB890X", + "98170": "AB890X", + "98171": "AB890X", + "98174": "AB890X", + "98175": "AB890X", + "98177": "AB890X", + "98178": "AB890X", + "98181": "AB890X", + "98184": "AB890X", + "98185": "AB890X", + "98188": "AB890X", + "98190": "AB890X", + "98191": "AB890X", + "98194": "AB890X", + "98195": "AB890X", + "98198": "AB890X", + "98199": "AB890X", + "98201": "AB890X", + "98203": "AB890X", + "98204": "AB890X", + "98205": "AB890X", + "98206": "AB890X", + "98207": "AB890X", + "98208": "AB890X", + "98213": "AB890X", + "98220": "AB890X", + "98221": "AB890X", + "98222": "AB890X", + "98223": "AB890X", + "98224": "AB890X", + "98225": "AB890X", + "98226": "AB890X", + "98227": "AB890X", + "98228": "AB890X", + "98229": "AB890X", + "98230": "AB890X", + "98231": "AB890X", + "98232": "AB890X", + "98233": "AB890X", + "98235": "AB890X", + "98236": "AB890X", + "98237": "AB890X", + "98238": "AB890X", + "98239": "AB890X", + "98240": "AB890X", + "98241": "AB890X", + "98243": "AB890X", + "98244": "AB890X", + "98245": "AB890X", + "98247": "AB890X", + "98248": "AB890X", + "98249": "AB890X", + "98250": "AB890X", + "98251": "AB890X", + "98252": "AB890X", + "98253": "AB890X", + "98255": "AB890X", + "98256": "AB890X", + "98257": "AB890X", + "98258": "AB890X", + "98259": "AB890X", + "98260": "AB890X", + "98261": "AB890X", + "98262": "AB890X", + "98263": "AB890X", + "98264": "AB890X", + "98266": "AB890X", + "98267": "AB890X", + "98270": "AB890X", + "98271": "AB890X", + "98272": "AB890X", + "98273": "AB890X", + "98274": "AB890X", + "98275": "AB890X", + "98276": "AB890X", + "98277": "AB890X", + "98278": "AB890X", + "98279": "AB890X", + "98280": "AB890X", + "98281": "AB890X", + "98282": "AB890X", + "98283": "AB890X", + "98284": "AB890X", + "98286": "AB890X", + "98287": "AB890X", + "98288": "AB890X", + "98290": "AB890X", + "98291": "AB890X", + "98292": "AB890X", + "98293": "AB890X", + "98294": "AB890X", + "98295": "AB890X", + "98296": "AB890X", + "98297": "AB890X", + "98303": "AB890X", + "98304": "AB890X", + "98305": "AB890X", + "98310": "AB890X", + "98311": "AB890X", + "98312": "AB890X", + "98314": "AB890X", + "98315": "AB890X", + "98320": "AB890X", + "98321": "AB890X", + "98322": "AB890X", + "98323": "AB890X", + "98324": "AB890X", + "98325": "AB890X", + "98326": "AB890X", + "98327": "AB890X", + "98328": "AB890X", + "98329": "AB890X", + "98330": "AB890X", + "98331": "AB890X", + "98332": "AB890X", + "98333": "AB890X", + "98335": "AB890X", + "98336": "AB890X", + "98337": "AB890X", + "98338": "AB890X", + "98339": "AB890X", + "98340": "AB890X", + "98342": "AB890X", + "98343": "AB890X", + "98344": "AB890X", + "98345": "AB890X", + "98346": "AB890X", + "98348": "AB890X", + "98349": "AB890X", + "98350": "AB890X", + "98351": "AB890X", + "98352": "AB890X", + "98353": "AB890X", + "98354": "AB890X", + "98355": "AB890X", + "98356": "AB890X", + "98357": "AB890X", + "98358": "AB890X", + "98359": "AB890X", + "98360": "AB890X", + "98361": "AB890X", + "98362": "AB890X", + "98363": "AB890X", + "98364": "AB890X", + "98365": "AB890X", + "98366": "AB890X", + "98367": "AB890X", + "98368": "AB890X", + "98370": "AB890X", + "98371": "AB890X", + "98372": "AB890X", + "98373": "AB890X", + "98374": "AB890X", + "98375": "AB890X", + "98376": "AB890X", + "98377": "AB890X", + "98378": "AB890X", + "98380": "AB890X", + "98381": "AB890X", + "98382": "AB890X", + "98383": "AB890X", + "98384": "AB890X", + "98385": "AB890X", + "98386": "AB890X", + "98387": "AB890X", + "98388": "AB890X", + "98390": "AB890X", + "98391": "AB890X", + "98392": "AB890X", + "98393": "AB890X", + "98394": "AB890X", + "98395": "AB890X", + "98396": "AB890X", + "98397": "AB890X", + "98398": "AB890X", + "98401": "AB890X", + "98402": "AB890X", + "98403": "AB890X", + "98404": "AB890X", + "98405": "AB890X", + "98406": "AB890X", + "98407": "AB890X", + "98408": "AB890X", + "98409": "AB890X", + "98411": "AB890X", + "98412": "AB890X", + "98413": "AB890X", + "98415": "AB890X", + "98416": "AB890X", + "98417": "AB890X", + "98418": "AB890X", + "98419": "AB890X", + "98421": "AB890X", + "98422": "AB890X", + "98424": "AB890X", + "98430": "AB890X", + "98431": "AB890X", + "98433": "AB890X", + "98438": "AB890X", + "98439": "AB890X", + "98442": "AB890X", + "98443": "AB890X", + "98444": "AB890X", + "98445": "AB890X", + "98446": "AB890X", + "98447": "AB890X", + "98448": "AB890X", + "98450": "AB890X", + "98455": "AB890X", + "98460": "AB890X", + "98464": "AB890X", + "98465": "AB890X", + "98466": "AB890X", + "98467": "AB890X", + "98471": "AB890X", + "98477": "AB890X", + "98481": "AB890X", + "98490": "AB890X", + "98492": "AB890X", + "98493": "AB890X", + "98496": "AB890X", + "98497": "AB890X", + "98498": "AB890X", + "98499": "AB890X", + "98501": "AB890X", + "98502": "AB890X", + "98503": "AB890X", + "98504": "AB890X", + "98505": "AB890X", + "98506": "AB890X", + "98507": "AB890X", + "98508": "AB890X", + "98509": "AB890X", + "98511": "AB890X", + "98512": "AB890X", + "98513": "AB890X", + "98516": "AB890X", + "98520": "AB890X", + "98522": "AB890X", + "98524": "AB890X", + "98526": "AB890X", + "98527": "AB890X", + "98528": "AB890X", + "98530": "AB890X", + "98531": "AB890X", + "98532": "AB890X", + "98533": "AB890X", + "98535": "AB890X", + "98536": "AB890X", + "98537": "AB890X", + "98538": "AB890X", + "98539": "AB890X", + "98540": "AB890X", + "98541": "AB890X", + "98542": "AB890X", + "98544": "AB890X", + "98546": "AB890X", + "98547": "AB890X", + "98548": "AB890X", + "98550": "AB890X", + "98552": "AB890X", + "98554": "AB890X", + "98555": "AB890X", + "98556": "AB890X", + "98557": "AB890X", + "98558": "AB890X", + "98559": "AB890X", + "98560": "AB890X", + "98561": "AB890X", + "98562": "AB890X", + "98563": "AB890X", + "98564": "AB890X", + "98565": "AB890X", + "98566": "AB890X", + "98568": "AB890X", + "98569": "AB890X", + "98570": "AB890X", + "98571": "AB890X", + "98572": "AB890X", + "98575": "AB890X", + "98576": "AB890X", + "98577": "AB890X", + "98579": "AB890X", + "98580": "AB890X", + "98581": "AB890X", + "98582": "AB890X", + "98583": "AB890X", + "98584": "AB890X", + "98585": "AB890X", + "98586": "AB890X", + "98587": "AB890X", + "98588": "AB890X", + "98589": "AB890X", + "98590": "AB890X", + "98591": "AB890X", + "98592": "AB890X", + "98593": "AB890X", + "98595": "AB890X", + "98596": "AB890X", + "98597": "AB890X", + "98599": "AB890X", + "98601": "AB890X", + "98602": "AB890X", + "98603": "AB890X", + "98604": "AB890X", + "98605": "AB890X", + "98606": "AB890X", + "98607": "AB890X", + "98609": "AB890X", + "98610": "AB890X", + "98611": "AB890X", + "98612": "AB890X", + "98613": "AB890X", + "98614": "AB890X", + "98616": "AB890X", + "98617": "AB890X", + "98619": "AB890X", + "98620": "AB890X", + "98621": "AB890X", + "98622": "AB890X", + "98623": "AB890X", + "98624": "AB890X", + "98625": "AB890X", + "98626": "AB890X", + "98628": "AB890X", + "98629": "AB890X", + "98631": "AB890X", + "98632": "AB890X", + "98635": "AB890X", + "98637": "AB890X", + "98638": "AB890X", + "98639": "AB890X", + "98640": "AB890X", + "98641": "AB890X", + "98642": "AB890X", + "98643": "AB890X", + "98644": "AB890X", + "98645": "AB890X", + "98647": "AB890X", + "98648": "AB890X", + "98649": "AB890X", + "98650": "AB890X", + "98651": "AB890X", + "98660": "AB890X", + "98661": "AB890X", + "98662": "AB890X", + "98663": "AB890X", + "98664": "AB890X", + "98665": "AB890X", + "98666": "AB890X", + "98667": "AB890X", + "98668": "AB890X", + "98670": "AB890X", + "98671": "AB890X", + "98672": "AB890X", + "98673": "AB890X", + "98674": "AB890X", + "98675": "AB890X", + "98682": "AB890X", + "98683": "AB890X", + "98684": "AB890X", + "98685": "AB890X", + "98686": "AB890X", + "98687": "AB890X", + "98801": "AB890X", + "98802": "AB890X", + "98807": "AB890X", + "98811": "AB890X", + "98812": "AB890X", + "98813": "AB890X", + "98814": "AB890X", + "98815": "AB890X", + "98816": "AB890X", + "98817": "AB890X", + "98819": "AB890X", + "98821": "AB890X", + "98822": "AB890X", + "98823": "AB890X", + "98824": "AB890X", + "98826": "AB890X", + "98827": "AB890X", + "98828": "AB890X", + "98829": "AB890X", + "98830": "AB890X", + "98831": "AB890X", + "98832": "AB890X", + "98833": "AB890X", + "98834": "AB890X", + "98836": "AB890X", + "98837": "AB890X", + "98840": "AB890X", + "98841": "AB890X", + "98843": "AB890X", + "98844": "AB890X", + "98845": "AB890X", + "98846": "AB890X", + "98847": "AB890X", + "98848": "AB890X", + "98849": "AB890X", + "98850": "AB890X", + "98851": "AB890X", + "98852": "AB890X", + "98853": "AB890X", + "98855": "AB890X", + "98856": "AB890X", + "98857": "AB890X", + "98858": "AB890X", + "98859": "AB890X", + "98860": "AB890X", + "98862": "AB890X", + "98901": "AB890X", + "98902": "AB890X", + "98903": "AB890X", + "98904": "AB890X", + "98907": "AB890X", + "98908": "AB890X", + "98909": "AB890X", + "98920": "AB890X", + "98921": "AB890X", + "98922": "AB890X", + "98923": "AB890X", + "98925": "AB890X", + "98926": "AB890X", + "98929": "AB890X", + "98930": "AB890X", + "98932": "AB890X", + "98933": "AB890X", + "98934": "AB890X", + "98935": "AB890X", + "98936": "AB890X", + "98937": "AB890X", + "98938": "AB890X", + "98939": "AB890X", + "98940": "AB890X", + "98941": "AB890X", + "98942": "AB890X", + "98943": "AB890X", + "98944": "AB890X", + "98946": "AB890X", + "98947": "AB890X", + "98948": "AB890X", + "98950": "AB890X", + "98951": "AB890X", + "98952": "AB890X", + "98953": "AB890X", + "99001": "AB890X", + "99003": "AB890X", + "99004": "AB890X", + "99005": "AB890X", + "99006": "AB890X", + "99008": "AB890X", + "99009": "AB890X", + "99011": "AB890X", + "99012": "AB890X", + "99013": "AB890X", + "99014": "AB890X", + "99016": "AB890X", + "99017": "AB890X", + "99018": "AB890X", + "99019": "AB890X", + "99020": "AB890X", + "99021": "AB890X", + "99022": "AB890X", + "99023": "AB890X", + "99025": "AB890X", + "99026": "AB890X", + "99027": "AB890X", + "99029": "AB890X", + "99030": "AB890X", + "99031": "AB890X", + "99032": "AB890X", + "99033": "AB890X", + "99034": "AB890X", + "99036": "AB890X", + "99037": "AB890X", + "99039": "AB890X", + "99040": "AB890X", + "99101": "AB890X", + "99102": "AB890X", + "99103": "AB890X", + "99104": "AB890X", + "99105": "AB890X", + "99107": "AB890X", + "99109": "AB890X", + "99110": "AB890X", + "99111": "AB890X", + "99113": "AB890X", + "99114": "AB890X", + "99115": "AB890X", + "99116": "AB890X", + "99117": "AB890X", + "99118": "AB890X", + "99119": "AB890X", + "99121": "AB890X", + "99122": "AB890X", + "99123": "AB890X", + "99124": "AB890X", + "99125": "AB890X", + "99126": "AB890X", + "99128": "AB890X", + "99129": "AB890X", + "99130": "AB890X", + "99131": "AB890X", + "99133": "AB890X", + "99134": "AB890X", + "99135": "AB890X", + "99136": "AB890X", + "99137": "AB890X", + "99138": "AB890X", + "99139": "AB890X", + "99140": "AB890X", + "99141": "AB890X", + "99143": "AB890X", + "99144": "AB890X", + "99146": "AB890X", + "99147": "AB890X", + "99148": "AB890X", + "99149": "AB890X", + "99150": "AB890X", + "99151": "AB890X", + "99152": "AB890X", + "99153": "AB890X", + "99154": "AB890X", + "99155": "AB890X", + "99156": "AB890X", + "99157": "AB890X", + "99158": "AB890X", + "99159": "AB890X", + "99160": "AB890X", + "99161": "AB890X", + "99163": "AB890X", + "99164": "AB890X", + "99165": "AB890X", + "99166": "AB890X", + "99167": "AB890X", + "99169": "AB890X", + "99170": "AB890X", + "99171": "AB890X", + "99173": "AB890X", + "99174": "AB890X", + "99176": "AB890X", + "99179": "AB890X", + "99180": "AB890X", + "99181": "AB890X", + "99185": "AB890X", + "99201": "AB890X", + "99202": "AB890X", + "99203": "AB890X", + "99204": "AB890X", + "99205": "AB890X", + "99206": "AB890X", + "99207": "AB890X", + "99208": "AB890X", + "99209": "AB890X", + "99210": "AB890X", + "99211": "AB890X", + "99212": "AB890X", + "99213": "AB890X", + "99214": "AB890X", + "99215": "AB890X", + "99216": "AB890X", + "99217": "AB890X", + "99218": "AB890X", + "99219": "AB890X", + "99220": "AB890X", + "99223": "AB890X", + "99224": "AB890X", + "99228": "AB890X", + "99251": "AB890X", + "99252": "AB890X", + "99256": "AB890X", + "99258": "AB890X", + "99260": "AB890X", + "99299": "AB890X", + "99301": "AB890X", + "99302": "AB890X", + "99320": "AB890X", + "99321": "AB890X", + "99322": "AB890X", + "99323": "AB890X", + "99324": "AB890X", + "99326": "AB890X", + "99328": "AB890X", + "99329": "AB890X", + "99330": "AB890X", + "99333": "AB890X", + "99335": "AB890X", + "99336": "AB890X", + "99337": "AB890X", + "99338": "AB890X", + "99341": "AB890X", + "99343": "AB890X", + "99344": "AB890X", + "99345": "AB890X", + "99346": "AB890X", + "99347": "AB890X", + "99348": "AB890X", + "99349": "AB890X", + "99350": "AB890X", + "99352": "AB890X", + "99353": "AB890X", + "99354": "AB890X", + "99356": "AB890X", + "99357": "AB890X", + "99359": "AB890X", + "99360": "AB890X", + "99361": "AB890X", + "99362": "AB890X", + "99363": "AB890X", + "99371": "AB890X", + "99401": "AB890X", + "99402": "AB890X", + "99403": "AB890X", + "99501": "AB886X", + "99502": "AB886X", + "99503": "AB886X", + "99504": "AB886X", + "99505": "AB886X", + "99506": "AB886X", + "99507": "AB886X", + "99508": "AB886X", + "99509": "AB886X", + "99510": "AB886X", + "99511": "AB886X", + "99513": "AB886X", + "99514": "AB886X", + "99515": "AB886X", + "99516": "AB886X", + "99517": "AB886X", + "99518": "AB886X", + "99519": "AB886X", + "99520": "AB886X", + "99521": "AB886X", + "99522": "AB886X", + "99523": "AB886X", + "99524": "AB886X", + "99529": "AB886X", + "99530": "AB886X", + "99540": "AB886X", + "99545": "AB886X", + "99546": "AB886X", + "99547": "AB886X", + "99548": "AB886X", + "99549": "AB886X", + "99550": "AB886X", + "99551": "AB886X", + "99552": "AB886X", + "99553": "AB886X", + "99554": "AB886X", + "99555": "AB886X", + "99556": "AB886X", + "99557": "AB886X", + "99558": "AB886X", + "99559": "AB886X", + "99561": "AB886X", + "99563": "AB886X", + "99564": "AB886X", + "99565": "AB886X", + "99566": "AB886X", + "99567": "AB886X", + "99568": "AB886X", + "99569": "AB886X", + "99571": "AB886X", + "99572": "AB886X", + "99573": "AB886X", + "99574": "AB886X", + "99575": "AB886X", + "99576": "AB886X", + "99577": "AB886X", + "99578": "AB886X", + "99579": "AB886X", + "99580": "AB886X", + "99581": "AB886X", + "99583": "AB886X", + "99585": "AB886X", + "99586": "AB886X", + "99587": "AB886X", + "99588": "AB886X", + "99589": "AB886X", + "99590": "AB886X", + "99591": "AB886X", + "99599": "AB886X", + "99602": "AB886X", + "99603": "AB886X", + "99604": "AB886X", + "99605": "AB886X", + "99606": "AB886X", + "99607": "AB886X", + "99608": "AB886X", + "99609": "AB886X", + "99610": "AB886X", + "99611": "AB886X", + "99612": "AB886X", + "99613": "AB886X", + "99614": "AB886X", + "99615": "AB886X", + "99619": "AB886X", + "99620": "AB886X", + "99621": "AB886X", + "99622": "AB886X", + "99624": "AB886X", + "99625": "AB886X", + "99626": "AB886X", + "99627": "AB886X", + "99628": "AB886X", + "99629": "AB886X", + "99630": "AB886X", + "99631": "AB886X", + "99632": "AB886X", + "99633": "AB886X", + "99634": "AB886X", + "99635": "AB886X", + "99636": "AB886X", + "99637": "AB886X", + "99638": "AB886X", + "99639": "AB886X", + "99640": "AB886X", + "99641": "AB886X", + "99643": "AB886X", + "99644": "AB886X", + "99645": "AB886X", + "99647": "AB886X", + "99648": "AB886X", + "99649": "AB886X", + "99650": "AB886X", + "99651": "AB886X", + "99652": "AB886X", + "99653": "AB886X", + "99654": "AB886X", + "99655": "AB886X", + "99656": "AB886X", + "99657": "AB886X", + "99658": "AB886X", + "99659": "AB886X", + "99660": "AB886X", + "99661": "AB886X", + "99662": "AB886X", + "99663": "AB886X", + "99664": "AB886X", + "99665": "AB886X", + "99666": "AB886X", + "99667": "AB886X", + "99668": "AB886X", + "99669": "AB886X", + "99670": "AB886X", + "99671": "AB886X", + "99672": "AB886X", + "99674": "AB886X", + "99675": "AB886X", + "99676": "AB886X", + "99677": "AB886X", + "99678": "AB886X", + "99679": "AB886X", + "99680": "AB886X", + "99681": "AB886X", + "99682": "AB886X", + "99683": "AB886X", + "99684": "AB886X", + "99685": "AB886X", + "99686": "AB886X", + "99687": "AB886X", + "99688": "AB886X", + "99689": "AB886X", + "99690": "AB886X", + "99691": "AB886X", + "99692": "AB886X", + "99693": "AB886X", + "99694": "AB886X", + "99695": "AB886X", + "99697": "AB886X", + "99701": "AB886X", + "99702": "AB886X", + "99703": "AB886X", + "99704": "AB886X", + "99705": "AB886X", + "99706": "AB886X", + "99707": "AB886X", + "99708": "AB886X", + "99709": "AB886X", + "99710": "AB886X", + "99711": "AB886X", + "99712": "AB886X", + "99714": "AB886X", + "99716": "AB886X", + "99720": "AB886X", + "99721": "AB886X", + "99722": "AB886X", + "99723": "AB886X", + "99724": "AB886X", + "99725": "AB886X", + "99726": "AB886X", + "99727": "AB886X", + "99729": "AB886X", + "99730": "AB886X", + "99731": "AB886X", + "99732": "AB886X", + "99733": "AB886X", + "99734": "AB886X", + "99736": "AB886X", + "99737": "AB886X", + "99738": "AB886X", + "99739": "AB886X", + "99740": "AB886X", + "99741": "AB886X", + "99742": "AB886X", + "99743": "AB886X", + "99744": "AB886X", + "99745": "AB886X", + "99746": "AB886X", + "99747": "AB886X", + "99748": "AB886X", + "99749": "AB886X", + "99750": "AB886X", + "99751": "AB886X", + "99752": "AB886X", + "99753": "AB886X", + "99754": "AB886X", + "99755": "AB886X", + "99756": "AB886X", + "99757": "AB886X", + "99758": "AB886X", + "99759": "AB886X", + "99760": "AB886X", + "99761": "AB886X", + "99762": "AB886X", + "99763": "AB886X", + "99764": "AB886X", + "99765": "AB886X", + "99766": "AB886X", + "99767": "AB886X", + "99768": "AB886X", + "99769": "AB886X", + "99770": "AB886X", + "99771": "AB886X", + "99772": "AB886X", + "99773": "AB886X", + "99774": "AB886X", + "99775": "AB886X", + "99776": "AB886X", + "99777": "AB886X", + "99778": "AB886X", + "99779": "AB886X", + "99780": "AB886X", + "99781": "AB886X", + "99782": "AB886X", + "99783": "AB886X", + "99784": "AB886X", + "99785": "AB886X", + "99786": "AB886X", + "99788": "AB886X", + "99789": "AB886X", + "99790": "AB886X", + "99791": "AB886X", + "99801": "AB886X", + "99802": "AB886X", + "99803": "AB886X", + "99811": "AB886X", + "99812": "AB886X", + "99820": "AB886X", + "99821": "AB886X", + "99824": "AB886X", + "99825": "AB886X", + "99826": "AB886X", + "99827": "AB886X", + "99829": "AB886X", + "99830": "AB886X", + "99832": "AB886X", + "99833": "AB886X", + "99835": "AB886X", + "99836": "AB886X", + "99840": "AB886X", + "99841": "AB886X", + "99850": "AB886X", + "99901": "AB886X", + "99903": "AB886X", + "99918": "AB886X", + "99919": "AB886X", + "99921": "AB886X", + "99922": "AB886X", + "99923": "AB886X", + "99925": "AB886X", + "99926": "AB886X", + "99927": "AB886X", + "99928": "AB886X", + "99929": "AB886X", + "99950": "AB886X", + "96700": "AB888X", + "96701": "AB888X", + "96703": "AB888X", + "96704": "AB888X", + "96705": "AB888X", + "96706": "AB888X", + "96707": "AB888X", + "96708": "AB888X", + "96709": "AB888X", + "96710": "AB888X", + "96712": "AB888X", + "96713": "AB888X", + "96714": "AB888X", + "96715": "AB888X", + "96716": "AB888X", + "96717": "AB888X", + "96718": "AB888X", + "96719": "AB888X", + "96720": "AB888X", + "96721": "AB888X", + "96722": "AB888X", + "96725": "AB888X", + "96726": "AB888X", + "96727": "AB888X", + "96728": "AB888X", + "96729": "AB888X", + "96730": "AB888X", + "96731": "AB888X", + "96732": "AB888X", + "96733": "AB888X", + "96734": "AB888X", + "96737": "AB888X", + "96738": "AB888X", + "96739": "AB888X", + "96740": "AB888X", + "96741": "AB888X", + "96742": "AB888X", + "96743": "AB888X", + "96744": "AB888X", + "96745": "AB888X", + "96746": "AB888X", + "96747": "AB888X", + "96748": "AB888X", + "96749": "AB888X", + "96750": "AB888X", + "96751": "AB888X", + "96752": "AB888X", + "96753": "AB888X", + "96754": "AB888X", + "96755": "AB888X", + "96756": "AB888X", + "96757": "AB888X", + "96759": "AB888X", + "96760": "AB888X", + "96761": "AB888X", + "96762": "AB888X", + "96763": "AB888X", + "96764": "AB888X", + "96765": "AB888X", + "96766": "AB888X", + "96767": "AB888X", + "96768": "AB888X", + "96769": "AB888X", + "96770": "AB888X", + "96771": "AB888X", + "96772": "AB888X", + "96773": "AB888X", + "96774": "AB888X", + "96776": "AB888X", + "96777": "AB888X", + "96778": "AB888X", + "96779": "AB888X", + "96780": "AB888X", + "96781": "AB888X", + "96782": "AB888X", + "96783": "AB888X", + "96784": "AB888X", + "96785": "AB888X", + "96786": "AB888X", + "96788": "AB888X", + "96789": "AB888X", + "96790": "AB888X", + "96791": "AB888X", + "96792": "AB888X", + "96793": "AB888X", + "96795": "AB888X", + "96796": "AB888X", + "96797": "AB888X", + "96801": "AB888X", + "96802": "AB888X", + "96803": "AB888X", + "96804": "AB888X", + "96805": "AB888X", + "96806": "AB888X", + "96807": "AB888X", + "96808": "AB888X", + "96809": "AB888X", + "96810": "AB888X", + "96811": "AB888X", + "96812": "AB888X", + "96813": "AB888X", + "96814": "AB888X", + "96815": "AB888X", + "96816": "AB888X", + "96817": "AB888X", + "96818": "AB888X", + "96819": "AB888X", + "96820": "AB888X", + "96821": "AB888X", + "96822": "AB888X", + "96823": "AB888X", + "96824": "AB888X", + "96825": "AB888X", + "96826": "AB888X", + "96827": "AB888X", + "96828": "AB888X", + "96830": "AB888X", + "96835": "AB888X", + "96836": "AB888X", + "96837": "AB888X", + "96838": "AB888X", + "96839": "AB888X", + "96840": "AB888X", + "96841": "AB888X", + "96843": "AB888X", + "96844": "AB888X", + "96846": "AB888X", + "96847": "AB888X", + "96848": "AB888X", + "96849": "AB888X", + "96850": "AB888X", + "96853": "AB888X", + "96854": "AB888X", + "96857": "AB888X", + "96858": "AB888X", + "96859": "AB888X", + "96860": "AB888X", + "96861": "AB888X", + "96863": "AB888X", + "96898": "AB888X", + "27006": "AB887X", + "27007": "AB887X", + "27009": "AB887X", + "27010": "AB887X", + "27011": "AB887X", + "27012": "AB887X", + "27013": "AB887X", + "27014": "AB887X", + "27016": "AB887X", + "27017": "AB887X", + "27018": "AB887X", + "27019": "AB887X", + "27020": "AB887X", + "27021": "AB887X", + "27022": "AB887X", + "27023": "AB887X", + "27024": "AB887X", + "27025": "AB887X", + "27027": "AB887X", + "27028": "AB887X", + "27030": "AB887X", + "27031": "AB887X", + "27040": "AB887X", + "27041": "AB887X", + "27042": "AB887X", + "27043": "AB887X", + "27045": "AB887X", + "27046": "AB887X", + "27047": "AB887X", + "27048": "AB887X", + "27049": "AB887X", + "27050": "AB887X", + "27051": "AB887X", + "27052": "AB887X", + "27053": "AB887X", + "27054": "AB887X", + "27055": "AB887X", + "27094": "AB887X", + "27098": "AB887X", + "27099": "AB887X", + "27101": "AB887X", + "27102": "AB887X", + "27103": "AB887X", + "27104": "AB887X", + "27105": "AB887X", + "27106": "AB887X", + "27107": "AB887X", + "27108": "AB887X", + "27109": "AB887X", + "27110": "AB887X", + "27111": "AB887X", + "27113": "AB887X", + "27114": "AB887X", + "27115": "AB887X", + "27116": "AB887X", + "27117": "AB887X", + "27120": "AB887X", + "27127": "AB887X", + "27130": "AB887X", + "27150": "AB887X", + "27151": "AB887X", + "27152": "AB887X", + "27155": "AB887X", + "27156": "AB887X", + "27157": "AB887X", + "27198": "AB887X", + "27199": "AB887X", + "27201": "AB888X", + "27202": "AB888X", + "27203": "AB887X", + "27204": "AB887X", + "27205": "AB887X", + "27207": "AB888X", + "27208": "AB888X", + "27209": "AB887X", + "27212": "AB888X", + "27213": "AB888X", + "27214": "AB887X", + "27215": "AB888X", + "27216": "AB888X", + "27217": "AB888X", + "27220": "AB888X", + "27228": "AB888X", + "27229": "AB887X", + "27230": "AB887X", + "27231": "AB888X", + "27233": "AB887X", + "27235": "AB887X", + "27237": "AB888X", + "27239": "AB887X", + "27242": "AB888X", + "27243": "AB888X", + "27244": "AB888X", + "27247": "AB887X", + "27248": "AB887X", + "27249": "AB887X", + "27252": "AB888X", + "27253": "AB888X", + "27256": "AB888X", + "27258": "AB888X", + "27259": "AB888X", + "27260": "AB887X", + "27261": "AB887X", + "27262": "AB887X", + "27263": "AB887X", + "27264": "AB887X", + "27265": "AB887X", + "27278": "AB888X", + "27281": "AB888X", + "27282": "AB887X", + "27283": "AB887X", + "27284": "AB887X", + "27285": "AB887X", + "27288": "AB887X", + "27289": "AB887X", + "27291": "AB888X", + "27292": "AB887X", + "27293": "AB887X", + "27294": "AB887X", + "27295": "AB887X", + "27298": "AB887X", + "27299": "AB887X", + "27301": "AB887X", + "27302": "AB888X", + "27305": "AB888X", + "27306": "AB887X", + "27310": "AB887X", + "27311": "AB888X", + "27312": "AB888X", + "27313": "AB887X", + "27314": "AB888X", + "27315": "AB888X", + "27316": "AB887X", + "27317": "AB887X", + "27320": "AB887X", + "27321": "AB887X", + "27322": "AB887X", + "27323": "AB887X", + "27325": "AB888X", + "27326": "AB887X", + "27330": "AB888X", + "27331": "AB888X", + "27332": "AB888X", + "27340": "AB888X", + "27341": "AB887X", + "27342": "AB887X", + "27343": "AB888X", + "27344": "AB888X", + "27349": "AB888X", + "27350": "AB887X", + "27351": "AB887X", + "27355": "AB887X", + "27356": "AB887X", + "27357": "AB887X", + "27358": "AB887X", + "27359": "AB888X", + "27360": "AB887X", + "27361": "AB887X", + "27370": "AB887X", + "27371": "AB887X", + "27373": "AB887X", + "27374": "AB887X", + "27375": "AB887X", + "27376": "AB888X", + "27377": "AB887X", + "27379": "AB888X", + "27395": "AB887X", + "27401": "AB887X", + "27402": "AB887X", + "27403": "AB887X", + "27404": "AB887X", + "27405": "AB887X", + "27406": "AB887X", + "27407": "AB887X", + "27408": "AB887X", + "27409": "AB887X", + "27410": "AB887X", + "27411": "AB887X", + "27412": "AB887X", + "27413": "AB887X", + "27415": "AB887X", + "27416": "AB887X", + "27417": "AB887X", + "27419": "AB887X", + "27420": "AB887X", + "27425": "AB887X", + "27427": "AB887X", + "27429": "AB887X", + "27435": "AB887X", + "27438": "AB887X", + "27455": "AB887X", + "27480": "AB887X", + "27495": "AB887X", + "27497": "AB887X", + "27498": "AB887X", + "27499": "AB887X", + "27501": "AB888X", + "27502": "AB888X", + "27503": "AB888X", + "27504": "AB888X", + "27505": "AB888X", + "27506": "AB888X", + "27507": "AB888X", + "27508": "AB888X", + "27509": "AB888X", + "27510": "AB888X", + "27511": "AB888X", + "27512": "AB888X", + "27513": "AB888X", + "27514": "AB888X", + "27515": "AB888X", + "27516": "AB888X", + "27517": "AB888X", + "27518": "AB888X", + "27519": "AB888X", + "27520": "AB888X", + "27521": "AB888X", + "27522": "AB888X", + "27523": "AB888X", + "27524": "AB888X", + "27525": "AB888X", + "27526": "AB888X", + "27527": "AB888X", + "27528": "AB888X", + "27529": "AB888X", + "27530": "AB888X", + "27531": "AB888X", + "27532": "AB888X", + "27533": "AB888X", + "27534": "AB888X", + "27536": "AB888X", + "27537": "AB888X", + "27539": "AB888X", + "27540": "AB888X", + "27541": "AB888X", + "27542": "AB888X", + "27543": "AB888X", + "27544": "AB888X", + "27545": "AB888X", + "27546": "AB888X", + "27549": "AB888X", + "27551": "AB888X", + "27552": "AB888X", + "27553": "AB888X", + "27555": "AB888X", + "27556": "AB888X", + "27557": "AB888X", + "27559": "AB888X", + "27560": "AB888X", + "27562": "AB888X", + "27563": "AB888X", + "27564": "AB888X", + "27565": "AB888X", + "27568": "AB888X", + "27569": "AB888X", + "27570": "AB888X", + "27571": "AB888X", + "27572": "AB888X", + "27573": "AB888X", + "27574": "AB888X", + "27576": "AB888X", + "27577": "AB888X", + "27581": "AB888X", + "27582": "AB888X", + "27583": "AB888X", + "27584": "AB888X", + "27586": "AB888X", + "27587": "AB888X", + "27588": "AB888X", + "27589": "AB888X", + "27591": "AB888X", + "27592": "AB888X", + "27593": "AB888X", + "27594": "AB888X", + "27596": "AB888X", + "27597": "AB888X", + "27599": "AB888X", + "27601": "AB888X", + "27602": "AB888X", + "27603": "AB888X", + "27604": "AB888X", + "27605": "AB888X", + "27606": "AB888X", + "27607": "AB888X", + "27608": "AB888X", + "27609": "AB888X", + "27610": "AB888X", + "27611": "AB888X", + "27612": "AB888X", + "27613": "AB888X", + "27614": "AB888X", + "27615": "AB888X", + "27616": "AB888X", + "27617": "AB888X", + "27619": "AB888X", + "27620": "AB888X", + "27621": "AB888X", + "27622": "AB888X", + "27623": "AB888X", + "27624": "AB888X", + "27625": "AB888X", + "27626": "AB888X", + "27627": "AB888X", + "27628": "AB888X", + "27629": "AB888X", + "27634": "AB888X", + "27635": "AB888X", + "27636": "AB888X", + "27640": "AB888X", + "27650": "AB888X", + "27656": "AB888X", + "27658": "AB888X", + "27661": "AB888X", + "27668": "AB888X", + "27675": "AB888X", + "27676": "AB888X", + "27690": "AB888X", + "27695": "AB888X", + "27697": "AB888X", + "27698": "AB888X", + "27699": "AB888X", + "27701": "AB888X", + "27702": "AB888X", + "27703": "AB888X", + "27704": "AB888X", + "27705": "AB888X", + "27706": "AB888X", + "27707": "AB888X", + "27708": "AB888X", + "27709": "AB888X", + "27710": "AB888X", + "27711": "AB888X", + "27712": "AB888X", + "27713": "AB888X", + "27715": "AB888X", + "27717": "AB888X", + "27722": "AB888X", + "27801": "AB888X", + "27802": "AB888X", + "27803": "AB888X", + "27804": "AB888X", + "27805": "AB888X", + "27806": "AB888X", + "27807": "AB888X", + "27808": "AB888X", + "27809": "AB888X", + "27810": "AB888X", + "27811": "AB888X", + "27812": "AB888X", + "27813": "AB888X", + "27814": "AB888X", + "27815": "AB888X", + "27816": "AB888X", + "27817": "AB888X", + "27818": "AB892X", + "27819": "AB888X", + "27820": "AB888X", + "27821": "AB888X", + "27822": "AB888X", + "27823": "AB888X", + "27824": "AB888X", + "27825": "AB888X", + "27826": "AB888X", + "27827": "AB888X", + "27828": "AB888X", + "27829": "AB888X", + "27830": "AB888X", + "27831": "AB888X", + "27832": "AB888X", + "27833": "AB888X", + "27834": "AB888X", + "27835": "AB888X", + "27836": "AB888X", + "27837": "AB888X", + "27839": "AB888X", + "27840": "AB888X", + "27841": "AB888X", + "27842": "AB888X", + "27843": "AB888X", + "27844": "AB888X", + "27845": "AB888X", + "27846": "AB888X", + "27847": "AB888X", + "27849": "AB888X", + "27850": "AB888X", + "27851": "AB888X", + "27852": "AB888X", + "27853": "AB888X", + "27854": "AB888X", + "27855": "AB892X", + "27856": "AB888X", + "27857": "AB888X", + "27858": "AB888X", + "27860": "AB888X", + "27861": "AB888X", + "27862": "AB888X", + "27863": "AB888X", + "27864": "AB888X", + "27865": "AB888X", + "27866": "AB888X", + "27867": "AB888X", + "27868": "AB888X", + "27869": "AB888X", + "27870": "AB888X", + "27871": "AB888X", + "27872": "AB888X", + "27873": "AB888X", + "27874": "AB888X", + "27875": "AB888X", + "27876": "AB888X", + "27877": "AB888X", + "27878": "AB888X", + "27879": "AB888X", + "27880": "AB888X", + "27881": "AB888X", + "27882": "AB888X", + "27883": "AB888X", + "27884": "AB888X", + "27885": "AB888X", + "27886": "AB888X", + "27887": "AB888X", + "27888": "AB888X", + "27889": "AB888X", + "27890": "AB888X", + "27891": "AB888X", + "27892": "AB888X", + "27893": "AB888X", + "27894": "AB888X", + "27895": "AB888X", + "27896": "AB888X", + "27897": "AB888X", + "27906": "AB892X", + "27907": "AB892X", + "27909": "AB892X", + "27910": "AB892X", + "27915": "AB892X", + "27916": "AB892X", + "27917": "AB892X", + "27919": "AB892X", + "27920": "AB892X", + "27921": "AB892X", + "27922": "AB892X", + "27923": "AB892X", + "27924": "AB888X", + "27925": "AB892X", + "27926": "AB892X", + "27927": "AB892X", + "27928": "AB892X", + "27929": "AB892X", + "27930": "AB892X", + "27932": "AB892X", + "27935": "AB892X", + "27936": "AB892X", + "27937": "AB892X", + "27938": "AB892X", + "27939": "AB892X", + "27941": "AB892X", + "27942": "AB892X", + "27943": "AB892X", + "27944": "AB892X", + "27946": "AB892X", + "27947": "AB892X", + "27948": "AB892X", + "27949": "AB892X", + "27950": "AB892X", + "27953": "AB892X", + "27954": "AB892X", + "27956": "AB892X", + "27957": "AB888X", + "27958": "AB892X", + "27959": "AB892X", + "27960": "AB888X", + "27962": "AB892X", + "27964": "AB892X", + "27965": "AB892X", + "27966": "AB892X", + "27967": "AB888X", + "27968": "AB892X", + "27969": "AB892X", + "27970": "AB892X", + "27972": "AB892X", + "27973": "AB892X", + "27974": "AB892X", + "27976": "AB892X", + "27978": "AB892X", + "27979": "AB892X", + "27980": "AB892X", + "27981": "AB892X", + "27982": "AB892X", + "27983": "AB888X", + "27985": "AB892X", + "27986": "AB892X", + "28001": "AB887X", + "28002": "AB887X", + "28006": "AB887X", + "28007": "AB887X", + "28009": "AB887X", + "28010": "AB887X", + "28012": "AB887X", + "28016": "AB887X", + "28017": "AB887X", + "28018": "AB895X", + "28019": "AB895X", + "28020": "AB887X", + "28021": "AB887X", + "28023": "AB887X", + "28024": "AB895X", + "28025": "AB887X", + "28026": "AB887X", + "28027": "AB887X", + "28031": "AB887X", + "28032": "AB887X", + "28033": "AB887X", + "28034": "AB887X", + "28035": "AB887X", + "28036": "AB887X", + "28037": "AB887X", + "28038": "AB887X", + "28039": "AB887X", + "28040": "AB895X", + "28041": "AB887X", + "28042": "AB887X", + "28043": "AB895X", + "28052": "AB887X", + "28053": "AB887X", + "28054": "AB887X", + "28055": "AB887X", + "28056": "AB887X", + "28070": "AB887X", + "28071": "AB887X", + "28072": "AB887X", + "28073": "AB887X", + "28074": "AB895X", + "28075": "AB887X", + "28076": "AB895X", + "28077": "AB887X", + "28078": "AB887X", + "28079": "AB887X", + "28080": "AB887X", + "28081": "AB887X", + "28082": "AB887X", + "28083": "AB887X", + "28086": "AB887X", + "28088": "AB887X", + "28089": "AB887X", + "28090": "AB887X", + "28091": "AB887X", + "28092": "AB887X", + "28093": "AB887X", + "28097": "AB887X", + "28098": "AB887X", + "28101": "AB887X", + "28102": "AB887X", + "28103": "AB887X", + "28104": "AB887X", + "28105": "AB887X", + "28106": "AB887X", + "28107": "AB887X", + "28108": "AB887X", + "28109": "AB887X", + "28110": "AB887X", + "28111": "AB887X", + "28112": "AB887X", + "28114": "AB887X", + "28115": "AB887X", + "28117": "AB887X", + "28119": "AB887X", + "28120": "AB887X", + "28123": "AB887X", + "28124": "AB887X", + "28125": "AB887X", + "28126": "AB887X", + "28127": "AB887X", + "28128": "AB887X", + "28129": "AB887X", + "28130": "AB887X", + "28133": "AB887X", + "28134": "AB887X", + "28135": "AB887X", + "28136": "AB887X", + "28137": "AB887X", + "28138": "AB887X", + "28139": "AB895X", + "28144": "AB887X", + "28145": "AB887X", + "28146": "AB887X", + "28147": "AB887X", + "28150": "AB887X", + "28151": "AB887X", + "28152": "AB887X", + "28159": "AB887X", + "28160": "AB895X", + "28163": "AB887X", + "28164": "AB887X", + "28166": "AB887X", + "28167": "AB895X", + "28168": "AB887X", + "28169": "AB887X", + "28170": "AB887X", + "28173": "AB887X", + "28174": "AB887X", + "28201": "AB887X", + "28202": "AB887X", + "28203": "AB887X", + "28204": "AB887X", + "28205": "AB887X", + "28206": "AB887X", + "28207": "AB887X", + "28208": "AB887X", + "28209": "AB887X", + "28210": "AB887X", + "28211": "AB887X", + "28212": "AB887X", + "28213": "AB887X", + "28214": "AB887X", + "28215": "AB887X", + "28216": "AB887X", + "28217": "AB887X", + "28218": "AB887X", + "28219": "AB887X", + "28220": "AB887X", + "28221": "AB887X", + "28222": "AB887X", + "28223": "AB887X", + "28224": "AB887X", + "28226": "AB887X", + "28227": "AB887X", + "28228": "AB887X", + "28229": "AB887X", + "28230": "AB887X", + "28231": "AB887X", + "28232": "AB887X", + "28233": "AB887X", + "28234": "AB887X", + "28235": "AB887X", + "28236": "AB887X", + "28237": "AB887X", + "28241": "AB887X", + "28242": "AB887X", + "28243": "AB887X", + "28244": "AB887X", + "28246": "AB887X", + "28247": "AB887X", + "28250": "AB887X", + "28253": "AB887X", + "28254": "AB887X", + "28255": "AB887X", + "28256": "AB887X", + "28258": "AB887X", + "28260": "AB887X", + "28262": "AB887X", + "28263": "AB887X", + "28265": "AB887X", + "28266": "AB887X", + "28269": "AB887X", + "28270": "AB887X", + "28271": "AB887X", + "28272": "AB887X", + "28273": "AB887X", + "28274": "AB887X", + "28275": "AB887X", + "28277": "AB887X", + "28278": "AB887X", + "28280": "AB887X", + "28281": "AB887X", + "28282": "AB887X", + "28284": "AB887X", + "28285": "AB887X", + "28287": "AB887X", + "28288": "AB887X", + "28289": "AB887X", + "28290": "AB887X", + "28296": "AB887X", + "28297": "AB887X", + "28299": "AB887X", + "28301": "AB888X", + "28302": "AB888X", + "28303": "AB888X", + "28304": "AB888X", + "28305": "AB888X", + "28306": "AB888X", + "28307": "AB888X", + "28308": "AB888X", + "28309": "AB888X", + "28310": "AB888X", + "28311": "AB888X", + "28312": "AB888X", + "28314": "AB888X", + "28315": "AB888X", + "28318": "AB888X", + "28319": "AB888X", + "28320": "AB888X", + "28323": "AB888X", + "28325": "AB888X", + "28326": "AB888X", + "28327": "AB888X", + "28328": "AB888X", + "28329": "AB888X", + "28330": "AB887X", + "28331": "AB888X", + "28332": "AB888X", + "28333": "AB888X", + "28334": "AB888X", + "28335": "AB888X", + "28337": "AB888X", + "28338": "AB887X", + "28339": "AB888X", + "28340": "AB888X", + "28341": "AB888X", + "28342": "AB888X", + "28343": "AB888X", + "28344": "AB888X", + "28345": "AB887X", + "28347": "AB887X", + "28348": "AB888X", + "28349": "AB888X", + "28350": "AB888X", + "28351": "AB888X", + "28352": "AB888X", + "28353": "AB888X", + "28355": "AB888X", + "28356": "AB888X", + "28357": "AB888X", + "28358": "AB888X", + "28359": "AB888X", + "28360": "AB888X", + "28362": "AB888X", + "28363": "AB887X", + "28364": "AB888X", + "28365": "AB888X", + "28366": "AB888X", + "28367": "AB887X", + "28368": "AB888X", + "28369": "AB888X", + "28370": "AB888X", + "28371": "AB888X", + "28372": "AB888X", + "28373": "AB888X", + "28374": "AB888X", + "28375": "AB888X", + "28376": "AB888X", + "28377": "AB888X", + "28378": "AB888X", + "28379": "AB887X", + "28380": "AB887X", + "28382": "AB888X", + "28383": "AB888X", + "28384": "AB888X", + "28385": "AB888X", + "28386": "AB888X", + "28387": "AB888X", + "28388": "AB888X", + "28390": "AB888X", + "28391": "AB888X", + "28392": "AB888X", + "28393": "AB888X", + "28394": "AB888X", + "28395": "AB888X", + "28396": "AB888X", + "28398": "AB888X", + "28399": "AB888X", + "28401": "AB888X", + "28402": "AB888X", + "28403": "AB888X", + "28404": "AB888X", + "28405": "AB888X", + "28406": "AB888X", + "28407": "AB888X", + "28408": "AB888X", + "28409": "AB888X", + "28410": "AB888X", + "28411": "AB888X", + "28412": "AB888X", + "28420": "AB888X", + "28421": "AB888X", + "28422": "AB888X", + "28423": "AB888X", + "28424": "AB888X", + "28425": "AB888X", + "28428": "AB888X", + "28429": "AB888X", + "28430": "AB888X", + "28431": "AB888X", + "28432": "AB888X", + "28433": "AB888X", + "28434": "AB888X", + "28435": "AB888X", + "28436": "AB888X", + "28438": "AB888X", + "28439": "AB888X", + "28441": "AB888X", + "28442": "AB888X", + "28443": "AB888X", + "28444": "AB888X", + "28445": "AB888X", + "28447": "AB888X", + "28448": "AB888X", + "28449": "AB888X", + "28450": "AB888X", + "28451": "AB888X", + "28452": "AB888X", + "28453": "AB888X", + "28454": "AB888X", + "28455": "AB888X", + "28456": "AB888X", + "28457": "AB888X", + "28458": "AB888X", + "28459": "AB888X", + "28460": "AB888X", + "28461": "AB888X", + "28462": "AB888X", + "28463": "AB888X", + "28464": "AB888X", + "28465": "AB888X", + "28466": "AB888X", + "28467": "AB888X", + "28468": "AB888X", + "28469": "AB888X", + "28470": "AB888X", + "28472": "AB888X", + "28478": "AB888X", + "28479": "AB888X", + "28480": "AB888X", + "28501": "AB888X", + "28502": "AB888X", + "28503": "AB888X", + "28504": "AB888X", + "28508": "AB888X", + "28509": "AB888X", + "28510": "AB888X", + "28511": "AB888X", + "28512": "AB888X", + "28513": "AB888X", + "28515": "AB888X", + "28516": "AB888X", + "28518": "AB888X", + "28519": "AB888X", + "28520": "AB888X", + "28521": "AB888X", + "28522": "AB888X", + "28523": "AB888X", + "28524": "AB888X", + "28525": "AB888X", + "28526": "AB888X", + "28527": "AB888X", + "28528": "AB888X", + "28529": "AB888X", + "28530": "AB888X", + "28531": "AB888X", + "28532": "AB888X", + "28533": "AB888X", + "28537": "AB888X", + "28538": "AB888X", + "28539": "AB888X", + "28540": "AB888X", + "28541": "AB888X", + "28542": "AB888X", + "28543": "AB888X", + "28544": "AB888X", + "28545": "AB888X", + "28546": "AB888X", + "28547": "AB888X", + "28551": "AB888X", + "28552": "AB888X", + "28553": "AB888X", + "28554": "AB888X", + "28555": "AB888X", + "28556": "AB888X", + "28557": "AB888X", + "28560": "AB888X", + "28561": "AB888X", + "28562": "AB888X", + "28563": "AB888X", + "28564": "AB888X", + "28570": "AB888X", + "28571": "AB888X", + "28572": "AB888X", + "28573": "AB888X", + "28574": "AB888X", + "28575": "AB888X", + "28577": "AB888X", + "28578": "AB888X", + "28579": "AB888X", + "28580": "AB888X", + "28581": "AB888X", + "28582": "AB888X", + "28583": "AB888X", + "28584": "AB888X", + "28585": "AB888X", + "28586": "AB888X", + "28587": "AB888X", + "28589": "AB888X", + "28590": "AB888X", + "28594": "AB888X", + "28601": "AB887X", + "28602": "AB887X", + "28603": "AB887X", + "28604": "AB887X", + "28605": "AB887X", + "28606": "AB887X", + "28607": "AB887X", + "28608": "AB887X", + "28609": "AB887X", + "28610": "AB887X", + "28611": "AB887X", + "28612": "AB887X", + "28613": "AB887X", + "28615": "AB887X", + "28616": "AB887X", + "28617": "AB887X", + "28618": "AB887X", + "28619": "AB887X", + "28621": "AB887X", + "28622": "AB887X", + "28623": "AB892X", + "28624": "AB887X", + "28625": "AB887X", + "28626": "AB887X", + "28627": "AB892X", + "28628": "AB887X", + "28629": "AB887X", + "28630": "AB887X", + "28631": "AB887X", + "28633": "AB887X", + "28634": "AB887X", + "28635": "AB887X", + "28636": "AB887X", + "28637": "AB887X", + "28638": "AB887X", + "28640": "AB887X", + "28641": "AB887X", + "28642": "AB887X", + "28643": "AB887X", + "28644": "AB892X", + "28645": "AB887X", + "28646": "AB887X", + "28647": "AB887X", + "28649": "AB887X", + "28650": "AB887X", + "28651": "AB887X", + "28652": "AB887X", + "28653": "AB887X", + "28654": "AB887X", + "28655": "AB887X", + "28656": "AB887X", + "28657": "AB887X", + "28658": "AB887X", + "28659": "AB887X", + "28660": "AB887X", + "28661": "AB887X", + "28662": "AB887X", + "28663": "AB892X", + "28664": "AB887X", + "28665": "AB887X", + "28666": "AB887X", + "28667": "AB887X", + "28668": "AB892X", + "28669": "AB887X", + "28670": "AB887X", + "28671": "AB887X", + "28672": "AB887X", + "28673": "AB887X", + "28674": "AB887X", + "28675": "AB892X", + "28676": "AB887X", + "28677": "AB887X", + "28678": "AB887X", + "28679": "AB887X", + "28680": "AB887X", + "28681": "AB887X", + "28682": "AB887X", + "28683": "AB887X", + "28684": "AB887X", + "28685": "AB887X", + "28687": "AB887X", + "28688": "AB887X", + "28689": "AB887X", + "28690": "AB887X", + "28691": "AB887X", + "28692": "AB887X", + "28693": "AB887X", + "28694": "AB887X", + "28697": "AB887X", + "28698": "AB887X", + "28699": "AB887X", + "28701": "AB895X", + "28702": "AB895X", + "28704": "AB895X", + "28705": "AB895X", + "28707": "AB895X", + "28708": "AB895X", + "28709": "AB895X", + "28710": "AB895X", + "28711": "AB895X", + "28712": "AB895X", + "28713": "AB895X", + "28714": "AB895X", + "28715": "AB895X", + "28716": "AB895X", + "28717": "AB895X", + "28718": "AB895X", + "28719": "AB895X", + "28720": "AB895X", + "28721": "AB895X", + "28722": "AB895X", + "28723": "AB895X", + "28724": "AB895X", + "28725": "AB895X", + "28726": "AB895X", + "28727": "AB895X", + "28728": "AB895X", + "28729": "AB895X", + "28730": "AB895X", + "28731": "AB895X", + "28732": "AB895X", + "28733": "AB895X", + "28734": "AB895X", + "28735": "AB895X", + "28736": "AB895X", + "28737": "AB887X", + "28738": "AB895X", + "28739": "AB895X", + "28740": "AB895X", + "28741": "AB895X", + "28742": "AB895X", + "28743": "AB895X", + "28744": "AB895X", + "28745": "AB895X", + "28746": "AB895X", + "28747": "AB895X", + "28748": "AB895X", + "28749": "AB887X", + "28750": "AB895X", + "28751": "AB895X", + "28752": "AB887X", + "28753": "AB895X", + "28754": "AB895X", + "28755": "AB895X", + "28756": "AB895X", + "28757": "AB895X", + "28758": "AB895X", + "28759": "AB895X", + "28760": "AB895X", + "28761": "AB887X", + "28762": "AB887X", + "28763": "AB895X", + "28765": "AB895X", + "28766": "AB895X", + "28768": "AB895X", + "28770": "AB895X", + "28771": "AB895X", + "28772": "AB895X", + "28773": "AB895X", + "28774": "AB895X", + "28775": "AB895X", + "28776": "AB895X", + "28777": "AB895X", + "28778": "AB895X", + "28779": "AB895X", + "28781": "AB895X", + "28782": "AB895X", + "28783": "AB895X", + "28784": "AB895X", + "28785": "AB895X", + "28786": "AB895X", + "28787": "AB895X", + "28788": "AB895X", + "28789": "AB895X", + "28790": "AB895X", + "28791": "AB895X", + "28792": "AB895X", + "28793": "AB895X", + "28801": "AB895X", + "28802": "AB895X", + "28803": "AB895X", + "28804": "AB895X", + "28805": "AB895X", + "28806": "AB895X", + "28810": "AB895X", + "28813": "AB895X", + "28814": "AB895X", + "28815": "AB895X", + "28816": "AB895X", + "28901": "AB895X", + "28902": "AB889X", + "28903": "AB895X", + "28904": "AB889X", + "28905": "AB895X", + "28906": "AB895X", + "28909": "AB889X", + "27268": "AB887X", + "88901": "AB889X", + "88905": "AB889X", + "89001": "AB889X", + "89002": "AB889X", + "89003": "AB892X", + "89004": "AB892X", + "89005": "AB889X", + "89006": "AB889X", + "89007": "AB889X", + "89008": "AB889X", + "89009": "AB889X", + "89010": "AB889X", + "89011": "AB889X", + "89012": "AB889X", + "89013": "AB887X", + "89014": "AB889X", + "89015": "AB889X", + "89016": "AB889X", + "89017": "AB889X", + "89018": "AB889X", + "89019": "AB889X", + "89020": "AB889X", + "89021": "AB887X", + "89022": "AB887X", + "89023": "AB887X", + "89024": "AB889X", + "89025": "AB889X", + "89026": "AB889X", + "89027": "AB889X", + "89028": "AB887X", + "89029": "AB887X", + "89030": "AB889X", + "89031": "AB889X", + "89032": "AB889X", + "89033": "AB889X", + "89036": "AB889X", + "89037": "AB889X", + "89039": "AB889X", + "89040": "AB889X", + "89041": "AB889X", + "89042": "AB889X", + "89043": "AB889X", + "89044": "AB889X", + "89045": "AB887X", + "89046": "AB889X", + "89047": "AB889X", + "89048": "AB889X", + "89049": "AB889X", + "89052": "AB889X", + "89053": "AB889X", + "89060": "AB889X", + "89061": "AB889X", + "89067": "AB889X", + "89070": "AB889X", + "89074": "AB889X", + "89077": "AB889X", + "89081": "AB889X", + "89084": "AB889X", + "89085": "AB889X", + "89086": "AB889X", + "89087": "AB889X", + "89101": "AB889X", + "89102": "AB889X", + "89103": "AB889X", + "89104": "AB889X", + "89105": "AB889X", + "89106": "AB889X", + "89107": "AB889X", + "89108": "AB889X", + "89109": "AB889X", + "89110": "AB889X", + "89111": "AB889X", + "89112": "AB889X", + "89113": "AB889X", + "89114": "AB889X", + "89115": "AB889X", + "89116": "AB889X", + "89117": "AB889X", + "89118": "AB889X", + "89119": "AB889X", + "89120": "AB889X", + "89121": "AB889X", + "89122": "AB889X", + "89123": "AB889X", + "89124": "AB889X", + "89125": "AB889X", + "89126": "AB889X", + "89127": "AB889X", + "89128": "AB889X", + "89129": "AB889X", + "89130": "AB889X", + "89131": "AB889X", + "89132": "AB889X", + "89133": "AB889X", + "89134": "AB889X", + "89135": "AB889X", + "89136": "AB889X", + "89137": "AB889X", + "89138": "AB889X", + "89139": "AB889X", + "89140": "AB889X", + "89141": "AB889X", + "89142": "AB889X", + "89143": "AB889X", + "89144": "AB889X", + "89145": "AB889X", + "89146": "AB889X", + "89147": "AB889X", + "89148": "AB889X", + "89149": "AB889X", + "89150": "AB889X", + "89151": "AB889X", + "89152": "AB889X", + "89153": "AB889X", + "89154": "AB889X", + "89155": "AB889X", + "89156": "AB889X", + "89157": "AB889X", + "89159": "AB889X", + "89160": "AB889X", + "89161": "AB889X", + "89162": "AB889X", + "89163": "AB889X", + "89164": "AB889X", + "89165": "AB889X", + "89166": "AB889X", + "89169": "AB889X", + "89170": "AB889X", + "89173": "AB889X", + "89177": "AB889X", + "89178": "AB889X", + "89179": "AB889X", + "89180": "AB889X", + "89183": "AB889X", + "89185": "AB889X", + "89191": "AB889X", + "89193": "AB889X", + "89195": "AB889X", + "89199": "AB889X", + "89301": "AB892X", + "89310": "AB889X", + "89311": "AB889X", + "89314": "AB887X", + "89315": "AB892X", + "89316": "AB892X", + "89317": "AB887X", + "89318": "AB887X", + "89319": "AB887X", + "89402": "AB887X", + "89403": "AB887X", + "89404": "AB887X", + "89405": "AB887X", + "89406": "AB887X", + "89407": "AB887X", + "89408": "AB887X", + "89409": "AB887X", + "89410": "AB887X", + "89411": "AB887X", + "89412": "AB887X", + "89413": "AB887X", + "89414": "AB887X", + "89415": "AB889X", + "89418": "AB887X", + "89419": "AB887X", + "89420": "AB887X", + "89421": "AB887X", + "89422": "AB887X", + "89423": "AB887X", + "89424": "AB889X", + "89425": "AB889X", + "89426": "AB889X", + "89427": "AB887X", + "89428": "AB887X", + "89429": "AB887X", + "89430": "AB887X", + "89431": "AB887X", + "89432": "AB887X", + "89433": "AB887X", + "89434": "AB887X", + "89435": "AB887X", + "89436": "AB887X", + "89438": "AB887X", + "89439": "AB887X", + "89440": "AB887X", + "89441": "AB887X", + "89442": "AB887X", + "89444": "AB887X", + "89445": "AB887X", + "89446": "AB887X", + "89447": "AB887X", + "89448": "AB887X", + "89449": "AB887X", + "89450": "AB887X", + "89451": "AB887X", + "89452": "AB887X", + "89460": "AB887X", + "89496": "AB887X", + "89501": "AB887X", + "89502": "AB887X", + "89503": "AB887X", + "89504": "AB887X", + "89505": "AB887X", + "89506": "AB887X", + "89507": "AB887X", + "89509": "AB887X", + "89510": "AB887X", + "89511": "AB887X", + "89512": "AB887X", + "89513": "AB887X", + "89515": "AB887X", + "89519": "AB887X", + "89520": "AB887X", + "89521": "AB887X", + "89523": "AB887X", + "89533": "AB887X", + "89555": "AB887X", + "89557": "AB887X", + "89570": "AB887X", + "89595": "AB887X", + "89599": "AB887X", + "89701": "AB887X", + "89702": "AB887X", + "89703": "AB887X", + "89704": "AB887X", + "89705": "AB887X", + "89706": "AB887X", + "89711": "AB887X", + "89712": "AB887X", + "89713": "AB887X", + "89714": "AB887X", + "89721": "AB887X", + "89801": "AB892X", + "89802": "AB892X", + "89803": "AB892X", + "89815": "AB892X", + "89820": "AB892X", + "89821": "AB887X", + "89822": "AB892X", + "89823": "AB887X", + "89824": "AB889X", + "89825": "AB892X", + "89826": "AB892X", + "89828": "AB892X", + "89830": "AB892X", + "89831": "AB892X", + "89832": "AB892X", + "89833": "AB887X", + "89834": "AB892X", + "89835": "AB892X", + "89883": "AB892X", + } +) diff --git a/.vim/bundle/black/profiling/list_big.py b/.vim/bundle/black/profiling/list_big.py new file mode 100644 index 0000000..2ac9d1f --- /dev/null +++ b/.vim/bundle/black/profiling/list_big.py @@ -0,0 +1,4000 @@ +config = some.Structure( + value=set([u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value'])) diff --git a/.vim/bundle/black/profiling/list_huge.py b/.vim/bundle/black/profiling/list_huge.py new file mode 100644 index 0000000..0f8dfc6 --- /dev/null +++ b/.vim/bundle/black/profiling/list_huge.py @@ -0,0 +1,22431 @@ +config = some.Structure( + value=set([u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value', + u'some_rather_long_text_value'])) diff --git a/.vim/bundle/black/profiling/mix_big.py b/.vim/bundle/black/profiling/mix_big.py new file mode 100644 index 0000000..5aebbf4 --- /dev/null +++ b/.vim/bundle/black/profiling/mix_big.py @@ -0,0 +1,1002 @@ +config = some.Structure( + globalMap = { + 103310322020340: [100000031211103,101042000320420,100100001202021,112320301100420,110101024402203,112001202000203,112101112010031,102130400200010,100401014300441,103000401422033], + 110040120003212: [114413100031332,102101001412002,100210000032130,214000110100040,103031420121210,112114222301010,110133330100020,100001001203011,102210220202130,102200120234012], + 244402003102200: [110212012114431,100001140020000,100012101223021,110031301200114,114002020044120,100021004302202,102202200240222,114102010220042,102021301441201,104103102103201], + 122013242003223: [100014100100001,102100004130301,111120004100414,101034024000101,100021424301033,102003004003400,103340410140122,100102114100420,111012202111021,100103144302200], + 1120010021223330: [110332202020000,104120130021200,112421004012141,111100220022101,100021104201130,102224410201003,110030021010001,101300401002320,112001321113132,101110434020010], + 214100003030021: [102122000214201,100242141004122,102024240221040,110320011200230,100011114300334,102303004110022,100110201042101,110134201140010,112101044000202,100040024340013], + 1000220132200020: [102231130213210,103214010102022,102000402041014,100043324210140,100023024211011,102404021403141,100010004313001,100003201021001,100122020011232,100121031014040], + 1200041022422001: [100021300101110,103010301402112,100011401031000,100020034100101,100122214300222,103134021420204,102042210220100,100103200021130,103204214043011,103020320102002], + 1000232101122040: [110011414240022,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231], + 110002000000001: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,111243002222100], + 200211022142211: [102231130213210,103214010102022,100043324210140,102324014112020,102022004012201,100023024211011,111130210020000,102404021403141,100003201021001,100122020011232], + 114121130201204: [100040031020241,101100104000222,102324141000002,101010234004042,102041224010012,100411400030100,100002000102100,114340102322021,112033124022002,102120221120200], + 104101002123040: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,103022000123142], + 241101103112120: [110333404433042,112240002043300,110021100132240,103104221443021,101100304000101,100202210410011,114402212310021,102411011111011,103020141414101,100113001040420], + 1004020030320422: [100022214203010,110310011234031,110123111300000,100020031041304,102120004000101,102020002000420,110100302010110,100422020030044,101220100303222,100002220411002], + 1041010100001110: [111124004101012,114103220220104,102120004001310,102430121110340,101021204000200,112141104020201,101200111020111,110001200422320,103210114021430,114223242332100], + 121103011132000: [110021104200001,110441140102024,111140124100100,110310020040401,100002024303323,110030002130201,102103320232241,110302000400221,110111001302000,110210304220000], + 1042022101004111: [110021104200001,111140124100100,110031301200114,102103320232241,110302000400221,110111001302000,110210304220000,102033124000111,111000212204213,110010324410130], + 102220010222003: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 1442130103121040: [114413100031332,112121020204344,102211030203010,100210000032130,214000110100040,103031420121210,112114222301010,100001001203011,114214404142034,102210220202130], + 110204013021024: [110301402000211,103030201402004,110420104221220,103200004030020,100320014310021,102000110221110,110240214432004,102122141142000,103041204010000,114432234113040], + 100001440133234: [102111040210242,114110000002430,102010011412143,100424220032043,114013422300032,102021004001004,100131414303044,100201010110320,100000221030033,110101101120302], + 114002033000020: [100001121002141,102000040201003,101132131221321,100004440004031,102002011033030,110310300003402,110220022132003,101001000302103,110044112100220,100010120031210], + 112123022000131: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,100002100124101,102304100210334,100403210010142,112003100241220,102204304000304], + 1143001230040001: [101033124003122,100313144100202,103201004024412,114014222302011,103011020110211,110203420111140,111003412201430,101411214000203,110222422042203], + 1002403200000231: [100122004300410,102140014001101,102000104012232,112400202020003,102000224000011,114122134140002,102101010202004,114400202310210,100042030201341,112233332034000], + 1003123041101031: [110043132100300,102220120203200,100002004201122,110132031134031,1320303202002000,1321200010022312,110130330012140,114102134002330,140403400240000,100003230110201], + 242220101103400: [111130112100210,102202200240222,110131044200121,100100004102234,110223332120231,100001024301322,114013044102010,114220114140122,101023021034304,110200210110130], + 121030040400021: [110011011212100,101134030011000,103220211421421,110123230124040,131000001020102,112200412033030,110420001000202,100102110402220,110412310030001,114012022302022], + 100104011300401: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 1004003211220032: [102400100230000,101100300302102,114120420223002,100002210201212,102302020212101,112410424012010,100030004104210,103030201434002,110232110004010,103021201430000], + 223011102020040: [110012420131001,100132040031022,100020310000200,100220004030002,110020002003334,110014000442004,101441204020001,102014201411102,103231320100042,104121201242032], + 100200110422111: [103100221440010,114003344011001,100021101000000,102140000212141,101014201030204,101203001010111,102424114020143,100031201030102,101041001003300,114012444020220], + 134300111030221: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,100021014100124,100130244302034,100122040012210,100014010104404,101020104000001], + 114001000330100: [401142101000022,400114001102410,102100000012031,431232000323104,1012100023110102,232023302143031,120200122422404,1040100003200241,111414004440203,1020220210340010], + 211222012120321: [112000112000031,100121214300000,102123214020000,102022124012030,114002320022312], + 1122000200402140: [102401141113031,103042420143020,102304314110202,110210400002012,113032012204012,112310002020302,100204311000400,100403012200201,112002111121013,114211100001224], + 332000024200013: [102120010220042,110103312142034,102210210312302,101120100320100,114140014100000,102110004002301,100130020001030,112022100213011,100101231202322,111210020001013], + 120041442412123: [102133011413110,111001200041102,101223020300040,102034324000220,100210000032400,101230020303000,111340130010314,110200422121211,110214220002020,112220414010040], + 1011011320300100: [100102024301030,100111134302041,100112234000041,110004244214343,101002101020003,102214021120301,114221224100022,101330210310300,112003021111000,102012141134211], + 220020021000101: [100301001000202,104101112102403,100023121223031,114201432320014,120000002023011,102133120200123,101014020301201,102000031130401,101010111002141,114123124143310], + 1024011342000021: [102001001130100,111204203012002,124020002020003,122222120003214,133332002141010,144000013213001,124010030100142,112310202021010,110014020020011,100140044020011], + 1131011002310011: [102230040200031,110122001010214,114043140010022,102101204000010,110022300420031,100100401040001,114230230000123,100222024320003,103323001400013,114013012300240], + 1142024120224002: [102203344011410,100021324100000,102103430210003,100012014300120,102414014022212,102012220241003,101004411032102,101430211012120,100204021000012,103242044020102], + 1100004410231120: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1440220030001122: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 121414301110004: [110144240011020,110413401240204,112000244001222,114441114123013,103220211421421,114000012334102,101000014012442,100312401002102,111022210021013,103110001420121], + 130004004220120: [111240340004003,102021024000010,111101222244030,112011012004300,102300010242330,102000401120420,102004012043122,114011102210402,100120001014040,114300100000041], + 1013303000401020: [101000024004442,100002100000100,110130030020000], + 220041302111231: [100002014200331,100034244210020,102012004000003,100411000030110,102041201121230,103011014042120,100000030120242,102110400210023,101012204221200,111212422222300], + 1000031031200013: [101302134233230,100000130010033,101030404212000,114102224000201,100022021041122,100020001042002,100013011020311,100120041020012,102012204000242,114143024003322], + 1000303301100221: [111333104124202,101000304014100,100040011023101,110301030010140,104100002101431,101123232010002,114421242204443,110100222001100,103102000121300,110010331230210], + 1410211342331412: [111002100000102,114021010040140,114222302321101,102101024002121,110014024202014,110220130100010,100020011030330,102404221402210,110203022032320,101222014230110], + 1411020122202044: [100141401021003,102010000231120,101000400320211,101001010300214,103010020142023,110132002212113,110010100040100,102101002002002,111020302232033,110224030114311], + 101010042001102: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,102020004000014,100000211023014,114144014122041,100201111002224,101410304041000], + 204204011102020: [100212030414010,101400004022210,102031021441200,101200020303202,102301324112020,111340300010010,102013224003020,103013020123142,102240344041020,102140202001100], + 240000420312002: [110002004410202,102103114000024,102240221000001,112041002002124,114000024101102,140343100002103,400200234320200,100020124204330,100001424102041,100100021040230], + 1030000001422430: [102343230224321,103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,100001104301200], + 1104234221030010: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,111201100011141], + 121341130003000: [111102004100101,102021100220101,114000040010421,112042110220004,100000214240410,100433201004014,102301102004413,102003000220111,102010100204023,102414040230400], + 100101220022002: [100010024102110,101041200320012,114303400002201,110204211000331,112121014003422,114430102311021,100240444100022,103004411424400,111014002140322], + 1023303420422001: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,112030010234104,103414101212410,100123021223100,112302011102312,101020030343002], + 101114102124321: [110403244220202,103113014002100,110120400402324,100402340010310,112010020211000,100102200000211,103030201240100,102300210210222,114100332340213,111031030024010], + 1422302020100030: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1121202400231120: [101211201202134,103120104030100,100004000100101,102020030220200,110031404423144,110003434410403,111110000014401,100000204312321,101004000304012,110300121220201], + 1042001221000013: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,102021241324040], + 1102433033042110: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421], + 100103201011144: [110102401201204,102400100230000,100212030414010,101200020303202,114120420223002,102013224003020,100002210201212,103013020123142,102302020212101,114303340000001], + 240343043023011: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 1020301032424304: [101302134233230,100000130010033,101030404212000,114102224000201,100431000032001,100020001042002,100013011020311,102103331400000,100120041020012,100020001041231], + 114200022220040: [100014100100001,102100004130301,111120004100414,101034024000101,101243024011000,103340410140122,100010021221221,111012202111021,100103144302200,101414100300221], + 142041243300010: [102102002002242,101130104022002,101230331020012,100004244210201,102420124024204,122312222240401,102041014011340,110200130004300,100140101012000,101400000302141], + 1002203102111022: [100434000032200,110004020020022,114032412303041,112000301122111,102020130212402,100010001020000,200000020021022,114321212322303,112302112002211,114202002333330], + 1110102121041413: [101012310301211,103112200123144,114242304004011,102302200241241,110001420021023,110201040003402,112301421130130,110020012100302,114412202320010,110021030030202], + 114020200220012: [102010114022011,103340041403223,114002200000421,101020321002002,114302210010001,114030004104220,100104004301000,102443211401140,102301041000014,100001111201214], + 202011212123200: [102203301123001,103210400110122,101112020300011,114104302341000,100400201010000,102244400201444,101010001000121,102304000220032,102002131132000,100000031024222], + 201032103003132: [110212041114210,113210300100002,112404024011000,102131034000220,111212124130140,101002014013010,103402020120010,112110100230023,112003044002004,103020200102200], + 120222032001012: [110121100004131,111400214442024,111122200021102,101041100300001,102140011440001,101011220342010,110200004221020,103114211441300,110000222010004,100114000101041], + 1100013040001020: [100003031030034,101001044211204,102100010233022,102120400212001,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,111120034400000], + 1001031021300022: [102000020220000,101020104000040,114412142320040,100003044100101,114012402332300,102220211122102,101010110302010,100032121020101,100013224313301,100012244240030], + 124000010122242: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,102002204001140], + 1121211020204132: [110020301320101,102014001130210,110401041140300,110002302201420,102202001120002,110200010003201,102421004041011,102240040202421,101001110300111,100130004300103], + 121320202004301: [111014240041102,101100004200110,112021221130424,112200041103002,110400040402041,112001011112202,100112004304314,100232041001122,100223030001010,100104231000300], + 1024242230240244: [110322104424202,101202421002031,102102220312102,103004204021310,112220102043102,110012310020200,102030130241300,103030120100220,100232224340041,112400002011010], + 1002100010130110: [101400001011042,100002011020211,100100110010010,111110002213142,100002131030310,111102214100400,103220201402330,102321000221140,103113124030200,102110300311400], + 200010402222410: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 112300020202111: [103141411420221,122102400312000,110002100110002,1340024302404122,100002001043010,113110330121030,410020013004430,1002300040412102,1210020204140003,123211320000102], + 100102203210034: [102023021100022,111200302222011,112040241120204,111000022200000,100010011232324,110220030000133,110000330430311,101211221014003,103111230120100,102221220200021], + 1021001032000012: [102020010203200,100011144312020,102011204001010,102001410221023,110130201302200,103041021430301,101100440320434,114000402211404,101000100302003,110000030430422], + 1031102424140120: [100011010414200,111121102240240,102002121101110,102403100202003,110000100041101,100400000010033,100101211001320,101141020321000,103224101400400,102000002043020], + 102001021434201: [110131122012210,114010200040441,110032014420232,100000344100100,111304022202211,102302011002003,102011021121200,100012441030002,110222042022111,103131004002200], + 220100132400104: [1010400230221020,111320012221132,102302144110440,114140004123122,102143202000400,111020002202333,101321311004010,102110241342210,114122302311011,100002320411400], + 1110121023020002: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 1042030001044121: [101230040301234,110033032100000,102303014024221,100100224304110,100400432200321,100020200012311,114140144122230,101400201102014,100000020004004,101040040303102], + 1100100224104011: [111130112100210,102202200240222,110131044200121,100100004102234,101023014004000,110223332120231,100001024301322,114013044102010,114220114140122,110200210110130], + 212002042300000: [100030220100110,110011202100142,112400102013231,114012002212100,100002114314022,114203110001031,112030122000211,111004012200210,100413131013301,110001102103432], + 221001240043040: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,100111221011100,100023104101340], + 1040021200420124: [100042111220111,112220100202000,100042041220010,100403211010100,103240301400123,114102210214041,100021300103041,101010204000242,111334004121414,114101000213410], + 1101110030041022: [112013300240132,114303044030300,102340044111034,100110021021010,120003030010112,114200212320001,101020240313001,102330220242002,121400042034110,100033201030040], + 1030000302042203: [102110231441040,100113214302002,110000002133140,101233341022410,103021000144000,100100124100031,100040204240000,114100012313002,114440440000034,120240000020201], + 1403121230220020: [110200400000020,100324140141402,100002204340200,110000410001034,111140000000000,103102224034002,110022002120332,111110230014001,110020041310021,110001001200323], + 203110414022010: [111240220002100,110030344201413,101001014001021,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200,102202111110404], + 133032004200001: [110314100012011,111020422203010,103121124002320,102240300202212,114140422203401,110210420000001,102210331401030,101102104000100,102031010200122,111104202112001], + 1120000102422014: [102140211342044,110020301220411,110100200004404,110131142010001,101032441003040,112004400210201,110004102230402,112021004020000,101012004001204,110420001344420], + 1000030222010034: [100320031001240,102104320220212,102100200232044,102434104021201,102300004022020,103003301240122,100210024101140,112220011101022,101000130304001,103020024043010], + 300210002300114: [112100021100243,101123001100112,112003002001002,111000200012220,102120100230203,100111124101112,112001010233001,103313021401232,110430034224001,114110200221240], + 1421020010140012: [110010002014100,112030001120220,114231034004040,100100301202103,110301021331320,112001100232420,114020244023001,110342014420100,110200402220240,100114200402104], + 300310000040102: [110301222101110,102023301102400,102012204010044,104120110010402,111010214402000,110401440001204,110204310112224,110303104423010,110340022023321,114010200012200], + 101010002031100: [110324020012330,100001134302201,102100011402012,100020221031000,102032220220223,114042004020130,114030400021223,102022021100102,103301304031211,102000004013440], + 1032221241200404: [104120011242011,110020002104100,102000301101102,111122200021102,114032234033303,100000020201032,112011204004112,100003000002034,110102022000200,102200034040443], + 1131211404001020: [110200100002031,101420310301020,100020330100100,1002443410030003,111103224103001,100011231042030,102100141413100,102110021342213,112002310211210,100010031020102], + 132013120010104: [111300232202103,102301401002404,110122120100022,102012004010000,102400100220000,102001104012021,100242444300104,102002104014323,100401241010122,100010010102122], + 130000310202012: [114200044114004,102202010204130,100220101204311,100002000102100,102100430233212,103003210141014,110421222011222,100201000410010,112110202014400,100400030013200], + 1111023010042112: [100000201220420,114000030021040,101002011020001,113141112413242,102021111130104,110401030101001,102201214011331,100013011043231,102031114002042,112302012020342], + 121010001111310: [101400220300033,100012021032040,102001130224032,100012021040320,102130224023220,102100401143124,100010001030140,102110101410144,114142204121324,112102421102022], + 1113001011001223: [110202400003213,114112014140000,110001012101334,114200124000134,100001114302424,101222134011002,100003011231420,103230231200010,100431031014023,100120120401041], + 142034000000112: [100310304310342,100010041031020,100042400001023,112402000200101,100020201221000,101010020301243,102030001103000,100040021031201,111010130022401,112140214000020], + 1012401424032042: [102401121113302,111201210000103,100101101010100,101320040302031,114010102300010,102321044112101,102000014002000,101034014011332,101203011023020,100021231020200], + 1103400010414230: [102010114022011,103340041403223,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,100010031222001,103001114001210,100001111201214], + 1400000301203010: [114122134140002,103012011434022,101032010342004,102322330243202,103101411424112,100100114103001,102134131144121,114030222300123,102102301021403,114103402201140], + 214024214401412: [102220242000201,103010021410203,101000304214111,102120040200200,103202220100114,111100132103413,112203220204012,100113040003021,100010204200010,102410134022300], + 1221011020200210: [110041030411301,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,110033041200104,102000221442214], + 1000120020110040: [110200411140130,110114120120100,103124210100201,111014200024034,102301002004242,112020014000340,110021404214210,101003014210212,100130220400031,100210024300001], + 201001342101001: [102001444000222,101400134043222,100010400013202,114340312301134,114310242320310,102110021401100,100113201011032,102230000204000,103102044031002,100011421002120], + 1000000133120020: [110230000000002,110220301202400,101003140322000,110401001002400,110210024220020,114201142324042,100401424300314,102213401111223,100040120000031,102002104011244], + 101400102142302: [100004211221210,110201001212001,110200134240420,110403221000002,101201304200320,114022042302201,112002320212232,100002210413202,103140021401211,102404042001400], + 100203202010202: [101000114000402,100043100123004,102014014000100,112212042024100,112410322024122,102300110221100,110002332102000,112001111111212,100020104300430,112041020221402], + 1011401013024410: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101004411032102,101000020302400,102021014012210,102244221114031,112400000200011], + 131012202321232: [110041030411301,110001041213031,103301210142043,100002024200142,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002], + 100303010210441: [102304034110400,100043010120010,102101124001310,110030110122402,102430300201034,100004121030301,102143432000102,101031001004201,114001110033210,110120011014412], + 1111011030001020: [100032041021210,110001041213031,101110044200100,110414300030001,100030020011022,111202012222402,102000221442214,102040041320010,102402104022000,103203401400132], + 1420144022031000: [101240220300022,102200130202201,100002010014040,100022000410041,103020000102011,103001031420203,102301324112020,101040421033204,103130011441212,102240344041020], + 104012440012200: [103000001432331,110131110401120,103000004011102,100120041014034,112111110422120,102130300200301,100121100002240,110224032100120,101104220322100,100001001201301], + 120311002000121: [101220014012231,100104024303320,114422004110130,112210132031001,102010310213001,103244320114100,103422430124013,100121424231222], + 1002120002022122: [101201220300012,101232104042101,101220404012304,101000304000400,102020204010341,112020100202034,100140410020232,101221004040204,100412414304143,102110404001401], + 1040331220001000: [102041310200042,110301030010140,104100002101431,110221000111302,101010001002000,110022140120012,111330020002213,102011440201423,114011212320331,100002204310140], + 142030323441430: [110020120023302,100043120003103,110002000410040,100433001014104,100000004102121,101022411030002,102000021442024,100030314100004,100404130020000,110400302114103], + 1020000001100400: [110001202000032,100024204211200,114200004110244,114230412332011,101210101010023,114422114140221,100001211042341,114032104123010,114303122321110,114330204034200], + 1001130242231402: [100042320001030,110024001010110,100100014300230,102043104010014,100001004300242,111120044100110,102200201110443,114240314000100,101002411030000,102002324011002], + 1014202010302102: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,101022440300020,101402010301000,100000220111021], + 144100013100013: [114020200020222,114330002323002,110213022100021,102202000240014,114424424144210,101224321014333,102100121342000,102204321003224,111222002224302,114100104030132], + 101213002101214: [114014104033302,102120200221403,110323110104120,102110314001121,101020104000300,114003402300102,111202104100014,112402102021111,103344224020241,101002114000424], + 1012442110402240: [104310001300102,114021132202032,112012004004324,103001314001021,114122220031004,103040024041111,101004004213014,111124002211203,112034420220403,101211231023001], + 1002210200000101: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,100414004300100,112102232300222], + 102400210400022: [110010334200041,100001024102001,321114010100340,102322101000200,102110100322014,110413131000201,100000100000432,101020021114310,114200104110001,100010314202003], + 1043003020000104: [114101024120020,102004011440212,100000001021013,100011204300012,100101234330123,110024000432310,102012101443110,110032220022103,102102104000102,101210031201114], + 1243002022101103: [110203120112002,110000002100100,102221410200012,110213401202110,102300104113403,102213224110010,102300004112300,102420024020120,100040020001022,102141140210200], + 1421204200010112: [100140101044224,101120004023340,103040031403031,101030014001004,102012421412000,100010044300131,111010130002222,110200300000010,110144102001321,100020304102100], + 1003013101233010: [102400111402142,100040240004024,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,120020211120020,110230010010142,101002041000124], + 101432210141203: [100310120141002,102324014112020,100301421002002,102404021403141,103022021431010,103200020111014,100010004313001,103104200210410,100002200410030,100121031014040], + 1104003002031130: [102420020200202,1023413000203201], + 112011130023123: [101020014011102], + 1102310021242142: [100022041001002,111240340004003,102021024000010,111101222244030,114032424122040,112011012004300,101021401003220,102000401120420,102010410213111,102004012043122], + 1002120410241114: [100222000144103,101240000310400,114022002211402,102311020240221,110211000004002,114101402200030,100000034200300,100010124300001,114200022322000,103133001441320], + 1022312211002000: [102123140310122,110101214402023,110400014224001,101410030330122,111000144410222,100040001022000,100222404342030,112204022020043,112320100202120,110222241300101], + 1402011002013421: [101043042401310,104001222102120,111412020003222,101113012101010,111212022200012,110023132100402,102022102010211,110231202040203,112112410232001,100021220002020], + 1010121032032211: [100002024340032,110000011220401,102112340210300,114100214000010,100000104201200,103000304010211,100010000002132,114100042311312,101000014001020,103014141222013], + 1020030002101022: [102040431121110,100400002201113,114111100021420,112024212301420,100300310140241,100240134323001,102111024000402,102001011100100,114402104142102,103312241402001], + 1010240311230422: [110200400000020,110203131211112,102301004110004,110021100023210,110402420402001,103122000100403,110000112100402,100002204340200,114103412201420,111140000000000], + 1401004204000003: [102102011412000,114204030210041,110033101044200,114440120000030,101002004014401,100400224323100,102112112004300,102010014001001,102000001440004,110321100402021], + 244331203200002: [101221422120021,100001000002210,100400320033201,100004130002301,101210300302302,102020131413423,110020204200342,100000220011133,102144012001113,114431110001011], + 1130301120301001: [100401140034220,114002002300222,101242004043300,101013111000000,102102131340404,102420041111041,112004312310301,100040121030000,102000404003020,103111020223101], + 1002000403000204: [103343014022202,102003104011000,102220330202001,100022200120040,103002020110334,101021134012211,102140200310400,110010002103002,100220034341000,110200002121242], + 221400100111330: [102031100200300,114102134122020,110024102010002,103010034004303,102023032000000,102101440201242,103000204003200,100021044343014,111433000002144,110001002002424], + 112133300441020: [110120101220000,101040014002010,112001001133213,102000144014000,124204212002003,102311101002242,102110210210004,100000100412410,100012441220104,111032320020122], + 133313202104310: [110013334202122,103330104030103,111200002220003,112043421121002,102212030201100,100111401011110,102010341440030,100001120100002,114001000024011,101021024012041], + 100143040212102: [100422314300200,101210241204043,100123011004113,100420001002101,101134224001001,101021204000200,102321234111310,101200111020111,102000024000002,111122222240232], + 1432344120130401: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 1100030203241342: [100440104303400,102122000214201,102220241100202,102024240221040,110320011200230,100342024100204,101422034042201,100011114300334,102300001002140,110040122000002], + 1011102003042024: [104110021244203,102224101113104,102103022002001,102102224000012,102100102001032,100142431013000,101000031001011,101100001102230,101010130321200,114004322330012], + 300210041431432: [103114001441122,100422004320024,114211110023303,111000302230100,114044144020400,103001101422012,4000113102314022,100022204104123,1400100000042343,1002411322210040], + 241241343121111: [102021001132040,100032201024101,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320], + 1100142404020120: [101210144014403,102111420233012,110000020022324,100020231201012,102210424042300,110220032120121,102130240221020,100101101020002,114442102312001,100030201024402], + 110001043032202: [114240012324120,101022011003022,101240101000020,100003101003001,102313100240202,102000014002101,102110422004402,102100411340400,101300414221100,114020210020424], + 1100103200140000: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 212420003003124: [103000001432331,110131110401120,112111110422120,100121100002240,110011010001020,100001004340202,100220100432201,101000140200002,110140001201040,110001041310202], + 1041144140041401: [111120214100003,100014131222022,103110114004210,113002020130400,112012112001000,102101404000324,101142141144040,100101231202210,100003001223010,103142204001221], + 201023043021424: [103001024002110,100231114320100,100001000002210,101210300302302,110100012120201,102020131413423,110020204200342,100000220011133,114013012240011,100010104312120], + 1011412300010442: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231,114022400020320], + 1130200034001002: [112010102000041,103210304032003,102130224131022,100000201034001,110400011140402,112011220222001,111230204100010,110023022130322,110022222231002,103110100210212], + 101001320111143: [114000044020204,102320000221020,110142020400012,103131420221204,102120141343312,114321114032200,100142011022211,114230344103210,100030020104423,100102011010000], + 241102301203043: [111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,100104100412020,101020031030240,111204000003031,100012004110024,102142000210040], + 100021101400201: [110000101304203,104121412100011,110040020001022,101104020300301,102101004000011,101401001010021,101200200300020,102011200213421,102011021411140,100000001020100], + 1041203303120002: [110010334200041,100001024102001,102110100322014,110413131000201,110020104210120,101020021114310,114203002330010,114200104110001,100010314202003,101013220301033], + 122400010411021: [103100221440010,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,101041001003300,114012444020220,101414214021020,114412010002302], + 1143000322124010: [110041042000232,101002400343001,100032400410212,101202321024330,102303000241003,101000001002320,101310201000040,102004341420021,100012101001312,102010334000140], + 1040230013042024: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 222004201002140: [110313002103302,112424204040112,101000014000004,101142310014123,101430401010120,110102410400023,102120220310102,101010200311020,111211214133000,110304102022001], + 1042000233033310: [101000004000241,100120000410020,102311000240202], + 1000002141204230: [111240220002100,110030344201413,101001014001021,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200,102202111110404], + 134224341021441: [101210320301302,100440024301100,100114104101001,101023221000031,101400014040400,102012034000402,103341124011404,102100122002001,101000011021414,114101000221221], + 212200220320113: [114423002314000,114040002210432,100010040122204,103314044033003,114102224104002,102001420220112,114422404110312,102403144000120,101033041032041,101010010300020], + 110100002004320: [101000040320021,114002210021300,101401300300011,100032001041230,100141120014242,113000201000000,100142114304120,103031014003010,101001021032110,114400404121002], + 1411200112202131: [110030002000422,103100014031411,110000300424304,100032121024110,100011004343022,110401140004202,110040002034100,102402330230011,102022400211311,110203210002230], + 330234311421104: [110443010102111,111320004131241,102020101324002,102401030202031,100210031004220,114140304122040,111321012222400,102000104002003,101223000300000,114201100210120], + 210040200410202: [110010000111020,100430014323000,102011041320000,112100021100243,101240110302200,100012121040101,111243002222100,100020411020310,102121401402131,114030012302003], + 100000040042044: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 1224441200202014: [111320012221132,102302144110440,102143202000400,111020002202333,101321311004010,102110241342210,100002320411400,114201000004122,100143034304100,114021002331014], + 140222000310233: [104111102100000,102012201321104,101021004000000,110130042014110,103012301401041,100022130100210,100001020002400,103042224001110,111000230041031,112204300204013], + 130101221040100: [110410412110241,100130124030404,101021121112112,110101002012003,111131132101000,102300131102042,111121230030002], + 1033022310023442: [104120001244220,102202300114223,102310000240000,110301034241300,120440001302100,122032310023401,110113002140210,114331204032013,112042402000000,100002010000241], + 100204342220311: [100010014100021,110403241001010,100101334233020,103120110111300,103202420103102,103004330103000,102002424001223], + 100044003200110: [100021400101221,102241341113010,102300020241001,114100124100413,104130301242304,101001114012114,101141400302200,100002044101122,103342424024214,100100021040420], + 1002131022022212: [110200400000020,100324140141402,100002204340200,110000410001034,111140000000000,110022002120332,111110230014001,100210200034304,102032020214001,100301101000021], + 122003200104101: [110033000022043,110100200030100,104412212102010,101230004040022,100000411231000,103140021211010,110132020031210,100020140121034,102340211000200,102300231000210], + 112200012414342: [140400400201014,110001212100204,103220130211414,120020020010400,101100211042114,121022000104032,112101102012030,111201122241213,142100040004101,100002244100310], + 1014202212322031: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 130211322041021: [110311022103222,110302002100013,100210240412200,100000104343000,101140211100200,112301000204230,112202101100120,100000110412000,100034010000110,110402404222022], + 132200002220122: [102100441341013,101440004042202,114201102342110,100100204101010,114101200210030,100104004100400,102002331440012,101223301020130,112100002302240,101430001014014], + 110230202100302: [102012001130022,110040322000012,100331124310011,114102222344020,101042020300000,101220201204012,110042104411102,102142101121010,103200211200414,102111111121420], + 1100244431221122: [100032000002120,102313234112000,102000000220040,111101100020030,102014024011240,112022330222011,100030201220012,100203401002120,100404024103100,103144000112000], + 112120203210001: [101241200300411,110111001300001,110200012120122,114000102330022,114021104100400,110000430001014,101214400301420,112420200202001,110122201304044,112000004001011], + 1010021212012040: [110101114200020,102144201343034,112132120202010,110002201320001,100430010431044,111020122230001,103040201222041,110111221000100,102341131103201,102100204000340], + 1101003002401011: [100000041032002,141000211410012,110101322000312,103002420100102,114000204013024,110101221001401,111044114411101,103423300120104,110412140000033,103021100002140], + 302220212000441: [110023342101220,101001421031220,100021004310222,112220322030220,110202222043022,110313312021120,102223400201104,100220214333200,110330234422000,111000034110311], + 120200310232204: [112000210212000,100112001014144,103310140140002,101310340314200,142012003022120,111130114102040,100111100000100,102322104114020,100010131001221,100013201220121], + 1020004042003403: [100110400404220,114221032331220,103200104032220,100212031002000,112002004002011,103100024001400,112400014020404,102000020201240,101012004044003,102021010212032], + 1114040203024320: [110020120040121,110000100022040,111021030042411,114004142244000,110131011000142,102401010202301,110202012020000,114240000001020,111110004101041,114132022312030], + 1141211203210210: [110301301232014,121202234011000,102140002000000,102124021023300,112444304040204,122022100000222,100003024211200,102102402003021,114302402321024,110202020004003], + 132004224340023: [102002120203400,102000221101002,102000431130020,103120004004010,102143000210010,111104404100200,114432224142000,100202234320210,102330124110411,102112400210210], + 124200241310040: [110001121012020,114244444114012,110404002114232,110032330032030,110032230140020,112224000203234,100404112201001,114141112324244,100111040404120,113431040101200], + 130014011300003: [110310044430300,101010021020013,110200020001000,100420104100222,100401022201011,100030111042110,110032110010141,103302000142020,102010321104413,100102210402003], + 134414300403411: [100002021021021,102200000200300,100000101040020,100110040013320,114023012303230,102402000202120,112442220201020,110002100012000,103211400100200,102132300233002], + 140221020202033: [100003104342121,100400414321103,102132204131302,110020034203040,100032304202003,101420300301103,101010231112144,111000100003022,100113020400211,100022030414220], + 1002220010000302: [103112010213010,112200410200142,101212000301013,111400002102112,100034100124302,1320102201231021,100000211020034,100000040413022,101000000323000,100011221224211], + 103201211120304: [110441234224400,110030002000422,103100014031411,110000300424304,100032121024110,100011004343022,110013122130200,110401140004202,114020204102020,102402330230011], + 1000304403212210: [103122020213112,114101100211240,114122134140002,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112], + 1001320110010041: [110011011212100,110123230124040,131000001020102,110420001000202,110412310030001,114012022302022,101042024210020,102202144030004,102141111100102,111030340040341], + 1002002040323201: [102100224000210,102400100230000,102114022004023,102031001411010,102030000223420,102031021441200,102300031004340,100213310112333,101200020303202,102013224003020], + 1022232012234013: [101011010320431,103041414001042,102441324022342,100002004344013,103220000104122,101401030302440,102040124010141,102314221101100,114240004002100,103131401421331], + 1040202023040201: [104132340011314,102203304123030,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441], + 1002440332021113: [102004010220020,111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,111204000003031,100012004110024,102142000210040,102320214110001], + 111301001000030: [110204004430204,110300011230013,102100400222242,102122114003140,100002021032001,102011404010000,100000011220004,114111002340233,110000210004001,102100324001200], + 232110121020324: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 210031213113040: [103242420100012,101400004022112,100100210000011,103002221400000,102022030241032,102200000200201,110020402004210,103110020210000,102120124004021,100022141030334], + 1040100401210131: [102420101111121,102101244022242,103222000100010,102013131134030,102004004010011,114101042313041,121211001014412,111012222200402,103300221402010,114021004010042], + 1000130012301000: [102021001132040,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412], + 210104220300403: [100023114341301,111000020010011,110101302141002,110114102004120,103212121402022,103330410111310,110201001200101,100102014001304,102030120200010,101030441032022], + 222012013140120: [110004202003210,100424220032043,102021004001004,100000221030033,110210402031211,112032220240044,111220100010101,101012400340400,100020330410000,112043101112100], + 1011000044400003: [110413304221020,100440000030040,112130010202041,102012404000211,102141010230441,100100341010111,100110214103200,101030320322101,102322121000140,114140002313010], + 1003200020100003: [100442024301200,411231400122100,100400414321103,101024000322432,110302030412400,100110020000040,102132204131302,100010100000320,110020034203040,102014031440442], + 1204020342100023: [110001332120300,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 1221300430001000: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,100030024303023], + 114320100101321: [100031300002022,110210020002243,110210022120040,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 112000242020101: [102304341100321,110010202103141,112003234002022], + 1011020202100000: [111443032100000,100010314103002,100240240430022,110310321232001,103221100112240,112000000211220,114022300002101,102323131000021,102020304012021,101020024210020], + 140022010210210: [112300421134001,110321031234422,103021004014220,102023001440404,101023014004000,100020010101201,102312344020020,103210404010101,110124411120222,110100242012000], + 1420302200420011: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102401200230234,102241230200120,110201111200204,110400104222012,110104004202014], + 104210020310230: [101004010304203,114104204002313,114300000002130,131204100021112,121200013012000,102122210230200,103110411212041,110421410100301,110244400212004,113003221014312], + 1011022012144233: [110241142024233,110021104200001,110441140102024,110310020040401,100413311002132,100002024303323,110210301200101,102033124000111,110400241240242,102210101121104], + 1114132034120400: [100441204302021,102100101340232,100011320001003,100000221020200,100200000030010,100200010431000,100003421040000,101012400320022,101332004231001,103300004030100], + 1100123300430003: [102002040220110,102141220210212,111320022200100,102232004040004,111202024134001,100000014100202,111302120011012,102203001120342,101012104001020,103101031440430], + 111031040332200: [100040031020241,101100104000222,102324141000002,101010234004042,102041224010012,114340102322021,110311011330111,103040044010112,102310001100113,102000114010020], + 312000003010222: [100030324200410,102110202001010,100040041020102,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044,100140004102001,114101024122320], + 1201001101040412: [102101004000411,114221312340014,102434121112224,101200210300413,100311204312442,101211204201231,103210021401223,111110014101210,100323140143012,111130412210000], + 120444122021322: [111030212113431,103222004032000,102233034000002,110123011200000,112130004021000,100100200021431,112101202012010,114240004000000,101100304021321,111212024101031], + 1140403033012140: [101214104041040,110104231221040,102012204010044,103101000100022,100020141044111,114200000002420,110401440001204,110204310112224,100042110122000,101021021002110], + 1400100200041100: [100131031020002,102031401100332,100014201021012,110030441223002,103010400120230,114120212310000,102424010230103,114200020210110,103110230210201,101403004020323], + 200111121232200: [102110142004430,114310100014104,102001020200310,110211244400301,102040214001410,111101002240300,112411002010104,110400031142011,103000324042100,101101000300000], + 100124214220001: [100010101043200,100030100004000,102311210221101,100401320020240,110201222120421,101000011020103,114121202312210,110010402103240,102403004020021,110040421210032], + 310304311200040: [102410001402210,110000102100012,102010020223010,102120214001422,100020201221000,114201200004112,101400201100022,102141431343320,110010444410200,102010101130000], + 1100201114304220: [112004300230022,110202001000101,102202101300230,114000102304201,114221124140000], + 1411020200331011: [110200002031302,102002020243020,102040021121030,100311314310000,100000204130001,102041130200101,100412441010422,100220031001210,101010200312020,101040204210210], + 1044022301110402: [114000000032100,110140102142200,100122124300010,100110034101010,110410224241010,111300402201232,111011100022010,100400444100202,102004000201030,112020401130100], + 1040020040030020: [112113214020100,102010202004402,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004,103113010102100], + 1032310201201331: [110413304221020,112130010202041,102012404000211,100110214103200,112020112300102,101030320322101,102322121000140,114140002313010,114040124102130,100002001021101], + 122031421042034: [103130314001202,102143314000241,100244210034300,101100322120020,101133040012001,103302320110042,110112324202034,100020321212233,114042324104012,100001101222001], + 1000100024120002: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 1120432001140211: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 111402030002020: [100200301002001,114303120004402,100444004302301,101030224211010,112200002010004,102000101410021,112034222002010,103020404002111,112010230210110,100201040012000], + 1010031002102240: [102022000210010,111201240001232,100020301020413,110421202220142,100204314320400,104121410021020,100220004311122,101230130041001,101042034041342,110404034223424], + 110021013020313: [100022010100002,100004100410134,100102014301210,102430144043230,103100130102014,101023321002102,100012030122000,100020200120000,102020024003420,103111230210043], + 132033102211110: [102020221411320,231011321002242,110001332002010,101421101011202,101143201101212,100021341042001,110400131001004,110411200000004,114041104100241,111044212143023], + 131132404101202: [102110141401203,100003021041343,102040034000131,114111302203401,112040041120040,100341001003013,110002341300120,101010011000121,101022140300332,110140412011321], + 1412234223200101: [100020021042003,112404212020403,102100021341110,100002000100120,103031041400001,102022412000010,102300341002000,114002304100240,100100201020222,101000011003244], + 100210020000001: [110011414240022,100000200202012,111142010020301,112114324040000,102124031023100,100204104320231,114002104020100,111222214101043,100010021034000,103132004002020], + 1401424102220030: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 1000002322230111: [100040301042132,101021104212100,102102241341004,103031000121000,103002020101431,102020300220201,102020431101132,100000041020230,102041021121210,101404104000404], + 1410043040014040: [103104401244021,112031202003020,104114400011000,140402143000011,132344004001203,100210134104040,110422001144121,110000031031240,102110224004010,100022024300010], + 101000122104200: [102041310200042,101000304014100,100040011023101,110301030010140,104100002101431,110221000111302,114101420030202,101123232010002,114421242204443,110100222001100], + 110203202020302: [110041400410001,111010002232002,102402104001124,103210300212001,102023111131000,100000441022011,102012010200010,110441042222033,100040224101210,110320300011130], + 1144000100040220: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,100000301221024,101224322120022,110104422010121,110302204433321], + 1032023214001301: [100002100100210,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100102020411200,114221030000011,114200302341234,103002110100200], + 1104101020020230: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,111112204404021], + 1100032122422030: [100220034322312,100203104322011,100021101021200,112002224004011,103240321400010,102010134012140,111102002240013,102110000210014,111101142110100,101002114000002], + 1141000001411102: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 200220014302300: [110300100100200,101000224003200,102110140224010,100024101020044,103140024002140,100103240011013,101020120322020,102020011103400,110222000000130,110120021324222], + 1021241323320104: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 1140020120203220: [101111140300020,101240301000140,103100014000001,103034130144031,102140200212214,113013120103104,100200241000143,102010031101223,112401102020023,114101320030004], + 1403231230440022: [100223000012020,101123031111011,110014300001402,110120424221121,101022011140403,101031411140420,101030114013043,101042301120010,114423312201001,100104044230000], + 201134111400004: [110113314221413,112004310224204,102304420211002,110403042110030,101221414041100,100032424312011,114112132313033,101110301040312,102204010204023,100220000432400], + 1013111302201242: [103300344012201,100122200012014,102313204114304,100011200201400,100201104224131,100002100204114,102203001300000,102101004001020], + 1001001423001101: [110330400010040,100101231004020,110010100022010,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 120112010202304: [100010104331200,110010104201022,100012031032234,101000204210021,110100121224222,110002142120000,102011011321024,111132300020000,100022301030201,110100100030303], + 201020143002010: [110020100042220,114200302320443,100401111000221,103302010140122,102113101400001,100010001001122,104240202023232,101003114010200,114030204021200,114000022210140], + 123431202011002: [114330014002002,114020024104430,101040214213002,102010210200102,112002040214231,102100222002040,100011004312001,102033041412332,101014240302113,100011021000412], + 1240321040221010: [111311002203000,103301000140120,100332111004200,101033220300404,101440410300202,110013002101010,114401020031002,114020204104030,103243024023000,103232031411102], + 1121243200030001: [110200002031302,102040021121030,100000204130001,100412441010422,101040204210210,100000201034001,112020024000010,102004014011022,100101234002000,101420244021100], + 1021120022012002: [114031102200100,110003010010401,103010010104000,102330030243120,102100100210033,234131201024402,100002200014412,110040311213342,110010102234002,102003144000043], + 1220040022001023: [102000001132113,100041000010302,112004202302034,100042001020203,102002320220202,111321314133000,101131024020440,102432101112141,102100044000000,102104442004300], + 1043404120000203: [101004100331003,112131222010010,103001011400102,102000011102134,100002121032011,114122224003201,112034022311032,111001420021111,111100214400041,112020102002024], + 104301030210000: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,112301312020123,100042001020203,112023032000020,102000201101332,102231041120104], + 1210000221304320: [114200110001402], + 1002203002000004: [114022300022421,114401200000003,100241001003002,111310004122000,101221000312044,100400240013333,102030300224002,112010022000304,103100040210040,100210001002200], + 130402220300213: [111231002242010,114042034104243,114000214012010,103232114040140,114010002240111,101020401034001,101440104002230,102440214020040,110004124203400,110102032010323], + 131310204030240: [110212301300020,110210422110113,111322300013200,102202001300342,110010222000110,110433011310111,100210434020011,111212224100024,102030104012411,114200002321340], + 223002002023302: [102231130213210,100043324210140,114113104123200,100020420121003,110002021121023,102300040221403,100001104301200,114121300224141,102301100241002,112002104003412], + 1140102113002221: [100000431020101,100244100032320,111102420023101,110010212101240,104104001243020,100032040000331,104124102100301,110002010440412,110111420033313,103100200103020], + 121211122030300: [101211201202134,103120104030100,100004000100101,102020030220200,110031404423144,110003434410403,111110000014401,101004000304012,114002004100140,100022210410130], + 114010032200111: [102003004000040,102011101131021,100021100013401,111010110042210,100114200020220,114401004122120,110023031204100,102431411400001,114023202330100,102041114040102], + 100000001100202: [100021230411014,110024000412302,111201024101100,100203141001002,102123020230114,114102204121201,114401204141201,101124000330204,114043422212002,100000304310200], + 1043020200022002: [100020220410142,110000412003001,102011331131302,114000230023300,120202201010210,102021204013000,112042024000020,110022100044100,114400200004310,110003000024101], + 132001114401013: [100030200102434,101101230010000,101422401012100,114103204100320,114020012300203,102112410222200,101141041022031,102000044000420,112300001103204,100001001021223], + 1004004102101101: [101100120330110,114141302341111,112400020200104,112212220223012,101002014013300,102100030222104,114113002340212,111203010002220,114104120220323,112134100421303], + 203100022301203: [102401141113031,103042420143020,110210400002012,113032012204012,100204311000400,100403012200201,102011001002000,112002111121013,114211100001224,102112004004002], + 1032011304303210: [112300020201040,111200400003200,100002001003103,110200010000103,100020324204012,102021011130413,102022001131012,102302214110042,112220020202300,111222002220000], + 201102440003011: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1003010041242224: [110230000000002,100004414101224,101003140322000,102002001130001,114201142324042,102213401111223,103211104021300,100011200101113,110112030121310,100000100412021], + 101210210122022: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 112020211002020: [110041030411301,103301210142043,100002024200142,101110044200100,102411000200000,100400014321101,114100122342002,112012020230301,100010101020023,110033041200104], + 1412022323211302: [111120002211010,101201200310001,102023120241131,102020000201200,104103101240204,114241000002004,111232000010230,100424200020200,101020320323422,114220200214400], + 1021100100102111: [112001232000034,102100021341223,114112434000040,121000041000010,114001002304222,110142032004410,102113232001100,100122210400030,101140114002200,110113211003124], + 1101220000020110: [103204214040130,114113104123200,101210210300031,110002021121023,102201100200430,100114021040000,114121300224141,100021020412110,103110000223000,103000210120000], + 132134404311000: [101020100300420,100200021000412,110330000400112,110000000130104,110103041012020,111233314101101,112101100221122,114000212301112,110000020124221,101000200300221], + 111004200220243: [100000210100030,100402042200000,110001440041003,100000220111021,101000430320220,100401022201110,101100001110030,102210011101110,112100302012023,100402000010203], + 1141002203100003: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 220211320214200: [102121201340001,110400242110410,111302204123234,100030020423044,103013104002044,114211004004210,100034204310001,110011340001104,101023011142204,110034220114031], + 130002321403110: [103020031403100,102200401111200,114003104031111,114200302341234,103202430100244,102302331003300,102320000221020,112131004020212,102003211120021,100033001020140], + 1000212024422033: [100140201011204,104010100010424,103010014013304,102103030201001,101203104200224,100010221031023,100140000024021,101223024200014,112240404012020,101201024203004], + 113101010422232: [114130012310000,102112432004423,100243120430140,112214431102032,100400120013011,102211241120212,110120032013303,102101230310000,102323011101210,114420000000420], + 1101303000341000: [110124010031144,100021100013401,110311312000001,110010320023302,114130202311020,110002042130032,110244000000020,100003021032001,421432000003000,102210221121044], + 1004102042113300: [111100214100402,110021130004103,114041302322043,103204324031320,112430002022342,114220212340004,100241004324000,111102310012110,103200011404234,103140244030030], + 112004341000001: [102300324010203,102100142002204,110113004402201,100001134100120,114023214101310,110301232000100,110102400013020,114110340004414,110303401230040,110011200020114], + 133011200040220: [100002400100121,114022444101022,100004440012400,100001000413102,114100044004101,120222000002200,110001002130011,102202014020040,110001344200402,142402303420001], + 1010411020110302: [100041200010000,110111001300044,111000002202324,104132100011024,111211010001300,100113434301241,111014014401303,103210001422303,100100000022131,112042111120340], + 1120204111221101: [111420012101422,110444144241024,114120030020202,110201002010420,102001101130120,101004020342000,100230410112111,114224012330022,1000310103100002,101240010310200], + 104003013104100: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,112301312020123,112023032000020,102000201101332,102231041120104,100111304300020], + 103010421110403: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,101302121004422,100000010011430,100114420000140,102022300241201,110200100001242], + 110223002344104: [110400010031401,114112002313010,114022200031221,110100022040022,102100401410022,104440000012304,130430101032200,111024240404104,101001004012010,100113120033040], + 1100103312223300: [102222320200001,102024101321401,101100021101232,100000321040000,101010001000432,100134101022112,102402004041120,103310200110020,100020031030323,103101200100001], + 1122320140101221: [100203344301100,101000110300300,103420104020200,110131411300312,110200124240014,103100000124010,110030414202400,110032040000332,100011011200212,114200024101400], + 132213141012022: [111113202211020,102000100202041,101021041001434,111200024131220,112004030241132,111203034440323,100232004221200,100201000011432,101042144010200,100112401020300], + 1230000101040111: [102440001113120,114311204002010,110004221040341,103200204031212,102313114114000,114004102201202,100000101001431,101010014001032,100222014121024,102340140222011], + 1003024441100101: [101220111020012,100004024202000,114200020003000,102112430210103,103000114012224,100033131043244,103000024040413,111102002220124,114423100000411,100014201030221], + 124002102002000: [110041030411301,110001041213031,103301210142043,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002,111202012222402], + 131043001013100: [103301210142043,101110044200100,102411000200000,110414300030001,100400014321101,112012020230301,100010101020023,102000221442214,103142111441040,102140101343110], + 1140102323000314: [110200002101020,114104032211214,102410400233132,103101011210300,114213002320124,102200200240031,110011212030112,102101114021130,102012410213213,102002010240020], + 1042032223340200: [110340014422102,101022400300001,102140004000100,103202130122102,100021000010213,100004101033223,100231004220242,112430010114123,130020100202200,120002101133400], + 1104300420300020: [110301012022220,100000130410014,102303414113320,103401344004004,110010114200400,102201001122034,100132431021202,103122110400104,101001211002201,102100234001041], + 1010123300040300: [103222100212012,114010112201001,101224244040310,111323210000204,102001030240003,121102200401021,101001324214240,102301010242231,121244120211020,121100000400034], + 132041000031014: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 201022320130011: [110433012110300,110440201342022,112101414041022,112243340202002,111103412240000,101000204003420,110101240024120,110300310011030,100230101001020,112021300220021], + 101114041010101: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414], + 122430010030030: [110403302023130,110001004204310,100010311020030,100020000200000,100141230020203,101031121003021,100200120030203,103111201443022,110101214400030,114104040220130], + 200110400021200: [100300041001121,101240004011021,101011001103200,101002244012322,102302210210322,100012401020212,100003131040012,103004044010300,111210004101111,114004130020232], + 130021140213331: [114402404141241,110212022133311,101041210311410,110022004211030,102104101122100,112230240412241,110000204203220,100034141030202,101000300312123,102204141300100], + 1410110013004410: [102102000233342,103302220110131,110100111121002], + 121212010020410: [110330400010040,111000100012002,110022140120012,111102010012102,111300030012334,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 200013001002114: [110442104221030,101224001202324,111211144101202,100002001024100,102103130221330,110000300140010,103102134001111,102011310202304,100003114100011,100002314204210], + 312124010300220: [104100012102004,110030002000422,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110021232000021,100001140000010], + 1000212113420430: [102002040220110,102141220210212,111202024134001,100000014100202,111302120011012,101012104001020,100002314210021,103101031440430,102022001101234,111422202210212], + 120221011100303: [102001404012100,1010400230221020,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311], + 101004101220212: [102023104002000,111114010020011,100001204302200,100310111001140,100000004204201,114002104011010,110001221101201,102000031442000,102400014020400,110301011230230], + 1011110400240232: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 1102202110002002: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110022100044100,114400200004310,110003000024101,100010024302100,100000011020412], + 131110002301301: [102224101113104,114202144102100,103000214012040,100034140011211,102333204110024,102103002002000,102402001403121,114114300221122,100044334102300,112332301100223], + 1034021200100143: [110300221220031,110201220000032,100021214313034,114300200000110,102000021133001,102301434110030,122011001202102,102100301400242,202023004201110,101001021001033], + 1100003040100031: [101030000320122,100310301000321,102001002000000,102300010221100,110020004413300,100121320401222,110021200040000,100301124210103,112211024013040,100040014310010], + 1124201010140100: [100111011011011,100030040101021,114310102300021,114014112300100,114030034013101,102400124020001,100102224234101,101013004001421,103000014011004,102010321411140], + 1022210110130021: [1300422220310121,100422321032021,120032010212320,411001103222300,411311131413022,1220101103414143,320440200013001,410000244003240], + 1120110020011410: [100304201000221,100112021020320,114212104110100,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,100301104104210,111022134112141], + 113022000112320: [102300000221114,114301000002344,114212310002312,102104014001023,110200442120120,102020031123000,100022101040044,100024000102402,110043301220422,110022400021000], + 1100100020220202: [100102204300424,110102221014102,102002010224011,114000030042240,100200020320224,100011010022200,101403144040010,104133020011042,110031132130311,102022001440012], + 200311014111000: [110301120404342,102113304130002,103124420221210,114032024012040,110100000100220,112000210210301,102012124012120,103431021204400,100031341030021,101014004001312], + 1010300002120034: [111102420023101,102102244000330,102140140210323,102001004012322,100004001041301,210202011010122,110420104220202,102320420240300,102222131120032,100203101000022], + 1211000020003020: [110230000000002,110220301202400,101003140322000,110401001002400,102002001130001,103012000100400,114201142324042,102213401111223,100040120000031,100040030122003], + 104130311211041: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 1101112101300324: [102000001132113,100042001020203,102002320220202,100120010421220,100000201041300,114011200003102,101020104000040,102432101112141,114412142320040,102100044000000], + 213143030122200: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300], + 120024032114020: [100102004300104,101020004011302,114212100023341,102300021103201,102410101112322,102121041340000,110010140011021,100123014103104,100001011120400,120131201313314], + 303013014000413: [100022041030000,110100104403201,102202000200010,102214204040420,100010430202422,112340020203003,102443011400041,100010430022021,100002021031032,100403022201202], + 1020203111100020: [100131424302300,101212040011001,110201344402000,111011242233002,102320001000230,111110223004100,110020212130021,101422404040210,111040224110141,100120041224204], + 222010011014131: [111001440020003,110200020010003,114121000002140,100002214100100,102120104003011,102100144001112,102000041441002,102120402000014,102000200210032,100041000100422], + 1430130300002324: [102100201440001,110400011311001,103300120141130,110040002132020,111144202220301,100000000120200,102304011004310,103101410212231,102120044002231,100002404210001], + 322400301320302: [111321220003002,100332104310222,100003201212143,112000014000303,110120200000111,102000010204312,103220434021030,110211200101114,102122001402410,110430001110403], + 1020312101344012: [102011114002011,102042100242012,102144201402040,100014201021012,110000214214420,114021212301131,112010112000311,110030441223002,110440002111230,103002044010020], + 1122122000102011: [102202010240210,102203101120000,100010204102001,100002010102040,112104000200322,102140201401023,100414000433302,114120000000300,103032224000200,102103200210010], + 202213212001411: [114001024011334,102312144114200,120012102310332,101022220320012,103023404040213,114211000210320,112103000204401,103100004001120,101201114041014,102101034001100], + 320214120004400: [110204034240010,104102030012121,110000011100204,102420001110401,101021111000022,102100111413012,101422021012014,103442014000100,103132014002131,122120120140231], + 1040010003012010: [100220034322312,100203104322011,100430020001120,112002224004011,111102002240013,102110000210014,111101142110100,102000411410342,102310314114031,130200211400203], + 1121100230120400: [101222101202341,110301442021010,110001332103022,100010024302100,112041000220020,102022400210202,111304202202230,111300000001323,110000002001040,110101000121214], + 1000110011013122: [100002104204000], + 1022200103210210: [110010020020011,100000001221100,110240242120033,103141100120000,101200400303000,112400002013000,100120440000022,100010314313000,114310424030011,101001134014021], + 103001300220211: [110111001300044,111000002202324,111211010001300,114030020020301,111014014401303,103210001422303,100100000022131,112042111120340,100101141042243,100101100022012], + 100122244200330: [102130020200000,101104020300301,102004204001111,102101004000011,100002040102100,110023330004130,100001104303411,100224204323201,110201124211431,103004240101010], + 1200204124402002: [111302020010000,101300221003002,100000121020303,102403004020102,110200220010220,101000001001114,110020004203240,103303021404201,100020010420242,100100204232000], + 142002102104021: [101000411030013,103012004020122,101322310313010,100000000410101,114403020000214,100003341020020,114110104121414,101313000312100,100040424212200,114040414102120], + 102411011130240: [100011010414200,110430000400002,111121102240240,111320022200100,114000100020002,114104332310202,114410102310421,103131121421321,102101331342000,102010321131241], + 202304002020040: [100000220100001,100122230031414,210303212040010,100000014200104,114011120024030,100101121010100,103002011240201,102440024021100,103231014021201,110110420034120], + 102204104000000: [114201204111222,100104001041200,103300004021200,102004204041000,114210400000112,103230134011412,100012004101221,114122112202230,102301101004100,110432112111103], + 310404203100341: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 1122001024210202: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 221134213203000: [100121230031032,112000431120410,103042024040104,102304104110001,101342300314204,114013124030022,100013200100011,114104200220022,100021221021201,110001244204302], + 320031312101204: [100020001044100,1340120100441224,1301223001003430,102330042000001,232020104433104], + 102241201232300: [101413321300222,110304111230123,100031004101000,102003011120001,104101420011121,114200224001003,110010141221420,102201201002010,114310224030143,111214003022100], + 1043331100042020: [100021204100204,110211020000002,111230214102412,100113410410320,111201442222420,114012000022010,114222440003300,111022120023311,110041341300041,100031144310241], + 1000404012003420: [102301000220000,100024114340002,110101231300241,110000140132110,102402010221231,100304100140104,100213444314000,104132100010310,100241000440432,110411200400010], + 212123200410100: [110002320424340,102031100200300,114102134122020,103010034004303,102023032000000,103000204003200,112300020200242,100021044343014,110001002002424,111100404100043], + 140000222031301: [110301042101400,112423414042122,100400320020104,110001404210000,102012201100202,100220021000001,102011210242012,100114330414120,102121314001202,101010001030001], + 111112010310012: [111333104124202,101000304014100,100040011023101,101123232010002,114421242204443,110100222001100,103102000121300,110010331230210,102030020224102,102430014020010], + 1012000440233031: [110041240000013,110131122012210,101021000341001,114010200040441,110032014420232,100012044101230,111304022202211,111021212200430,112010034020230,102100010222101], + 1100112304402303: [102001000212142,114121000002140,110024042103114,110123042010000,100041000100422,114020002303212,102223231121242,102103132002023,100024121030022,100000020001022], + 300100043121010: [103130314001202,102143314000241,100244210034300,114001102211300,101100322120020,103302320110042,110112324202034,110031422000002,100020321212233,114042324104012], + 122431102040020: [102021001132040,110201201211024,110402420402001,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412,110123004401121], + 202011242024002: [103114204002100,114230004110101,102122101023020,100001101033010,102142002000030,102023110221011,100100114302030,100100014302013,102020121130000,101204031024110], + 200012020220101: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1414410110001200: [101230114202200,100400000020230,114300124030100,102211020204231,112011204004112,100202031002101,111000004401312,101000034212001,100121114230123,102321014111202], + 1114201310030110: [110132010032031,100200044102003,102210430233001,100110231000142,102420210200041,101003204003100,101312004211100,110010030101400,111022114120310,114003422242201], + 1101002041041001: [102402434020211,114103002311110,101004344002124,114020024120011,100001001032400,102402030203003,103022011400040,102011011133120,101011411002311,114220102331110], + 221241002003004: [102014130241422,110001002203134,111001002201122,103232040100100,110212020100040], + 221000241023300: [111201000013222,114004104012300,100021014100123,101203211010000,101200314040213,112032020220030,102320120240012,100003021030220,103101324001100,102123021022412], + 110004430041000: [111132230010402,110000400023242,114000004102010,100110014032131,110113041303100,110100314401022,111301102204130,103010104011202,101020220310112,110000421320024], + 114103210330002: [102440104021410,102012214041011,110411344210012,102010214000220,100100014322200,101042134014101,111141022224102,103004030120101,112221404014110,101032011143223], + 1000004213102000: [110443000000102,102430100200123,100040214102300,100002214202010,101424010303040,114042244102400,100034400410112,111020012203011,100100111043114,100000044241022], + 143210020000210: [101210331023020,102021111412201,101201000011000,102322124114210,101011211002010,104110411304420,101401221011342,103200004024040,114220000002123,100010214302012], + 1010222200110100: [110323344422123,110011010021004,111220002202002,110112001343021,100002101020204,114212000211041,100431204320300,110001040020213,110112121200203,110300200013040], + 201113000120214: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,112002104003412,114201204111002], + 1011213312000014: [111200212223002,114141044000340,114020444100202,114020232302203,102320014112013,114402000003130,101004001001201,101001000321032,100023100104410,100024000010031], + 200200022302040: [110140201222000,114112232313023,100102001000010,112032200230231,112312420202020,114130004004200,103000031240330,101020304002132,112220004010404,112102400202324], + 141201040004004: [100034304101213,114002014100310,112023140212112,112313301100030,102101031412121,100020020121132,102102010220401,100001020100030,100021120201020,111000024404021], + 220320200002034: [102100010233022,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,114000030014400,111120034400000], + 102201300004002: [144131233204044,120130001004000,101001131032132,110102030010210,102220211120002,114014010033321,101400104042212,1003022312322100,102001244001224,103441112000230], + 1403121024040210: [101020024212042,100041204212120,100410110420202,112423424042102,100320431000002,411200101402221,100120214230002,103204200103440,100210004104001,101410201111300], + 220300201301120: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 122303001300104: [114211440211420,102200024042003,114320004030033,100231411001200,111010000022022,102112200321043,101000021140240,100001011040221,110221102221300,101021311001001], + 111203120100014: [102044104002014,102022000220004,110210001310230,103001220104301,100010144303000,100102434300310,100421200001003,114024200040223,100133404030004,102240001100210], + 220020202243103: [114003010024040,123102202010320,101020211140102,102104120200134,100120230012241,104210140212241,101112240323103,110203232020010,110043200023212,103441014002310], + 130230234000404: [140420100400012,111001202231001,122012440110401,202220202402001], + 1124221120201422: [100040201012040,114100222310230,114131002342130,110002022003101,110224130002014,100403122201202,100100220403100,102303304020122,100310210142030,114132012200110], + 131344111020111: [100001024201214,103433121201311,103404001214121,110113211301114,122004120000100,102300002103012,113030410122021,111400202101243,101012114000111,101020211140102], + 1040302200342312: [402000401204030,114124020222032,102121221343020,100140201000222,110110000004210,101400010303002,104200202141001,112104424022201,130030220200012,112200110000221], + 200002300140211: [101021014002020,112000404000001,110320332022210,102230040200111,111241000001011,100240034101400,100220304100400,102102004000001,111000412203041,102400121110000], + 134200201020210: [114021412213020,110030002000422,100032121024110,100402431012022,110040002034100,102031024013013,102402330230011,110044020020202,102022400211311,102324410243220], + 112120200100343: [110130102010010,110100030123401,110001010030000,110102202013213,110021404214210,100003110022310,100000400100142,114102000003021,102220314013103,102002034001310], + 1000144202110034: [103033004011100,111320122204241,110132212010200,101000024000022,100000204310440,110110100033221,110000224410201,110100400020121,110011304200020,102030021102211], + 1004033332023033: [103214010102022,100043324210140,102324014112020,100023024211011,102404021403141,100010004313001,100003201021001,100122020011232,100002200410030,100121031014040], + 130220204001330: [101400004021110,100000241120103,114232000002310,100402000000101,101000114003100,102202301300240,110010044203000,111010014400030,112211030204411,110210102120000], + 210002202200000: [103211144033404,102123040212103,100041301021020,102314224010213,112113012010000,100000120000202,111000030043110,100002314203420,102001121134000,114220414000310], + 101220020001403: [102342014111202,114040002330341,411010033020221,114102020422002,1224320120024001,200002003223300,1000412032200202,300204110434340,111100001002113,132220124203004], + 102120012021134: [110400000002213,114132100210100], + 114000223000041: [100011200121231,100102004100201,114040020021023,111230114102201,101400300300111,101220200301400,100001101021134,102122302000300,100000300202000,101022031034002], + 101110430324122: [110200002031302,101403220331230,102040021121030,100000204130001,100412441010422,101010200312020,101040204210210,100000201034001,110000324412304,110000201230100], + 102113104000201: [102041310200042,110320202023400,111431110000042,110301030010140,114101420030202,114421242204443,110104422010121,110100222001100,110302204433321,101010001002000], + 1000302330420004: [100000020004101,110130014400011,110011232100412,100220040142222,110232002101410,110200021210212,110131021240303,103100101442233,100424331001120,100000031220100], + 300220113110120: [114021000012310,101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,101000100340001], + 1004301013110120: [103310020140014,112000204002100,110210030100111,100041200002402,100000000411240,102030021443010,112300220202122,114010000024012,103100421422110,112120002302004], + 212044320041421: [100244104101010,100200011002201,100211310140340,100200024104410,100220011004202,100000101232030,102101200200034,102243201302244,104430421104102,104100402102320], + 1030202410202120: [102222111120010,103200224033413,102300440221022,104120201242031,102320110240231,100100101011200,100133001220421,100122204301312,101022220322100,100114113200203], + 110020300043342: [102112020222030,110320022101120,100022431030100,100022004301043,102214101120310,114000040031021,102400001110113,102002224011000,101030204214013,100004201211032], + 120220023043020: [110024404211001,110100022010010,100120001040202,102140140210112,100004220412010,101222020304402,101201130302002,111020400044101,411120024124200,114202102321131], + 130300014233341: [100102211021000,114203142321301,103141011240230], + 1113010112422040: [101012131000024,102120221022200,102110141410402,101044001032114,114221104114000,100001111032112], + 110020210041024: [100020400410010,102103441142340,101211210304010,102100001004041,110000403400000,100000414104102,100001020044101,410310420012412,101000020100020,403002310120143], + 1003113220430003: [102422114040010,102020004001311,100101101010100,114103212312012,102321044112101,100022024100041,114231212342200,100020011043020,100021231020200,114201112322020], + 1101000402201400: [102000004002101,110202000000310,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,112100000200031,110003032000041], + 101002121200031: [101203231002222,111430032210010,100000204100040,101003030304240,112113224020012,103002211240301,100220120432010,100004014202422,110411232110220,110220042121003], + 1141011011423232: [100012014341003,101100411104001,112111010201220,112222122032004,110100134403210,102300210242404,114300432300422,114101144001040,100040414212104,100000424304010], + 1410200232000002: [102422114040010,100022041001002,101204400304011,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,102002202000000], + 1042200002202040: [111223402220443,110430000400002,114033000032021,102401004043011,111320022200100,100300001002041,103000200122014,102203001120342,103133004002010,101202330304024], + 213021140040011: [102230040200031,102101204000010,114230230000123,104121001242101,102024400223212,110040004411003,110211110001322,100014110201012,102200310201220,110300014422013], + 1003112022201200: [111000022202402,100430211011410,110010340040012,110014032101430,104421312102244,114131014101010,102240214041033,114200322333401,103010021422042,100000001022401], + 1001031040033013: [110023401320200,102301224110000,110000312001020,102133211401043,102010214000003,114032204104044,103002010100104,100220310430010,102124011340031,102410110232000], + 1020014220203011: [100012320001320,102000331120104,114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101], + 130003010203330: [102211220201114,103000021411202,102101004030220,102003001132213,102100204030012,111432000004311], + 220210100042200: [102102430310202,101020030332430,101022004214304,100020101031131,101010000323030,101001414212120,103310220113140,114200202330330,103101101440200,100000101031020], + 1003010414041111: [111200200000232,111410210001002,100101001011114,101430004040203,103122104002013,101020404210020,114040414014202,100000024301031,112022140234004,100143440001301], + 312040323040010: [101211104040023,103042004001000,114233024034201,114030002301220,100221100432104,112003120220142,114010430040320,114303222301000,110001022011241,113423202410240], + 1400412203240330: [101020341034234,102113101342000,100212304243333,100431001010310,110002010042440,102022401412124,100121210402002,102212004030221,100030404311202,101410010330014], + 1024110200120012: [111300232202103,102301401002404,110122120100022,102012004010000,102400100220000,102001104012021,100242444300104,102002104014323,100401241010122,100010010102122], + 1040202023020134: [100000020004101,110130014400011,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300,114200444140203,100000124211001], + 1100220301211442: [101240210310204,100000021023020,100100220423210,100231020112302,102000111441024,101110204004210,114240000000041,110004010004010,102210220202001,100110040020104], + 1222211202201004: [103111004004410,114220012340000,110102141201112,103112024030310,112210222040000,111100002220221,114011014010300,100000020413022,102244101111124,104103031240201], + 1201104001013221: [102000324040000,110222200103041,112411400202001,110212311111030,110000110022002,140143400110002,102042211100202,102010000200240,114000002302204,112431244044400], + 221100201100100: [112030004004130,101340041000104,104100212101403,112001102000201,110404212112030,110104220400022,100040020000313,110211130002000,110134310404210,101420000330441], + 1114122030000002: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231,114022400020320], + 100142421420401: [102002212000021,102013201320403,101134004004013,112230122032000,114300300000020,100020001040312,102203011002032,101000324011134,114302022300311,102220301302413], + 212100201001020: [100200101000000,103110431441100,100011004340114,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 1400100010000112: [110230400000202,102012314004200,102112304002110,100432014100103,100104220412020], + 102430101140002: [102310000222133,114104310000002,102100011413420,100001001034141,112123102010143,102130201140012,100010204202202,101101404003003,112422320200210,112100211100021], + 1102202210214234: [102104101340301,101033011001100,110014010012200,100100004230402,102110304020201,110202420004101,100021220010031,100000014211030,100000200100141,111303012201100], + 200012204110023: [111011304114002,103000001402120,100020314304002,102120400200003,101020300320020,101220301020130,111012310000204,101222200301130,112340340203340,103203314020144], + 1101000220032204: [100000031211103,114210424101200,100420110312244,101420014021400,112230324002000,112320301100420,110101024402203,112001202000203,111034200010244,101122000320210], + 1002114144412000: [114202012340131,110322034430002,102323131001211,112023102003010,101010104011313,102000002041020,100320021000000,102034100223241,102020014021021,102240234121424], + 132032202211121: [110232022123020,103140044032100,100010240101221,102100010213413,101024011034002,100032224101400,103033044023040,102403101400210,101021410320100,102430010202411], + 1441300113003204: [110000021202100,100420014301410,100010101020403,110302030011010,100101300011010,100020111001344,100022121024103,114401032320120,101201124013202,114223002333020], + 212100103212123: [110120200032000,102140011140002,101211001023004,102204024011121,101012100320111,110311100001210,100214200000020,100000012212010,112122034022100,111230102222200], + 132114221021100: [100002010413410,101433010300204,114310100000110,112002020214003,102010231121200,100140301000432,114400022311400,110010220410220,114040010022000,101133104002112], + 222223344212101: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,111001224121320,104042022102100,104030002100140,102104120200021], + 201140431200121: [100114234102203,102030000223410,111101312240400,100231124320130,114000010012243,103040424010400,101141111100022,100000404100021,101332011001000,102103000310202], + 102004443030100: [111302204133040,110300000011120,100000221020004,101213020304210,111020010022310,114011302300101,102420021400002,103221200100302,100432211002022,100424444303100], + 212024120403302: [110240301111040,111123014100000,114200000003241,103103404004112,100110120023012,101042044010040,112021014022022,112002322032030,101040401030013,111300002204430], + 1122013000001010: [103313111402304,102031212011001,100010044312000,110213220000201,101204034200001,101002200021030,100031011012000,102000141010102,110304220100002], + 1140001000214020: [101221020040220,114022412330004,100103104302044,101041030320401,102141212000200,101203121020430,102100104002224,102020004000014,100000211023014,100400001001300], + 1130320404222410: [103111001422000,111244302220204,100042100102211,102110030200120,100202140000111,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 201121430001102: [100030324200410,114202244112111,102110202001010,100031021033010,114011404103142,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044], + 1001220024010440: [102011201101012,102300304110030,114412000003141,103020041420212,100112011040011,100401024300321,100102030423010,102101004022104,101432240300300,101232104042101], + 112220043001024: [101221422120021,103001024002110,100231114320100,100001000002210,100400320033201,110011402100202,101210300302302,110100012120201,102020131413423,110020204200342], + 200402011402220: [110341200403110,101130034000022,100120004230130,102030041134220,110000400142301,114414014142230,100000004302210,111001404111020,100024041230002,102000104044004], + 1003110001234320: [104132340011314,102203304123030,114012040020310,110000212104130,110200200004002,101000040320021,114131040224332,114002210021300,103230114000201,100123020032031], + 1203102204020140: [100000010202003,114234324112000,103200101401010,100002231021012,102400001110102,120413040002400,112410024040000,102300234110002,101221001202021,102111134001302], + 1000430300020111: [102021001132040,110203131211112,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320], + 202100013022332: [111134204102000,110422200000213,101020031000300,110000400000233,112000112030300,110240010002041,110021040001310,102120001120141,101003044001244,100131121222212], + 212101100440000: [100031300002022,110210022120040,110000021221134,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 1040003320021143: [110010000111020,100430014323000,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101], + 1141001103140230: [103000024014022,103010000100410,100040404102010,102203240202202,110002110021301,114231020001120,100100211012004,102340202000001,110020402100200,102023210221301], + 1000030000032103: [100102000022402,100000001033001,100124100031200,101010200321022,103304014010000,103123041444340,102200231120202,103342100110221,101021220300001,113023341020302], + 104023223104010: [100323401000042,110103020011001,110210410123112,101100004000244,101000014211204,101011204004013,114422004142011,110022010002210], + 1002220100110100: [100122420031012,114200334112132,100210204343141,100000104300130,102202401114113,102140201342144,101021001031113,100100124234311,100022004310010,100010114310001], + 132310100001031: [144131233204044,120130001004000,101001131032132,110102030010210,102220211120002,114014010033321,101400104042212,1003022312322100,102001244001224,103441112000230], + 1001303020002020: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 300211300011104: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 1041044202311111: [110401004221204,111112000011222,100322444314002,101003301020022,100102431021300,110200212041001,100001030100030,112012004004000,112044204000441,103141100104002], + 1020202240114112: [110200321303322,100010030100011,102012124012120,103002041402004,114120034123300,114010112332112,114204202332300,114121304121000,102221024044110,102030004000400], + 124300110101232: [102000004002101,110202000000310,110000010120043,100422314300200,102403404004110,110301311303102,102141410230020,100042030120422,110020001224021,110103111120042], + 300412012111013: [100040240004024,100010000002400,112000013244041,114020100001120,101002041000124,102100000231232,102030034011211,102000400221230,102122001404300,110441342010200], + 1021041112002002: [114020200020222,114330002323002,114001020042001,102202000240014,103014101432000,100003014100041,102100121342000,112404410204002,111222002224302,102214011120002], + 102334000202111: [100424331001120,111040300024044,111020232200302,103124000104424,102100102002012,110201014241230,102110431342142,114201410004440,100040331221012,114442130003110], + 102211130414013: [110310001202220,111131224100212,112000112001400,112111412011211,101240000302141,103414034000124,100002020110200,112410024043011,100003200400110,101222201020020], + 124001011241420: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,104101201240100,110000011012202,112102112301130,101244324043222], + 104220142130201: [100040201012040,112021004003303,114100222310230,100011120000004,114131002342130,110002022003101,110224130002014,100403122201202,102303304020122,100310210142030], + 1000013140040000: [102311004012010,101020401033332,100012001023022,101104414002010,102112012004120,111112242211204,110422020000111,100004020021344,100100000000042,100000041201200], + 1041120100004010: [102224420201000,103013034012221,110302311302101,100000120002200], + 134202314303143: [110102401201204,103020200141000,102400100230000,102414034040100,100212030414010,101200020303202,102020041321410,111340300010010,114120420223002,102013224003020], + 1001420010000230: [1020102021344321,101030301001232,100104302001300,1001102321230101,1002001200441033,220200021120010,100021204230002,1401214001003110,1023121121030343], + 132200000042020: [101211214040304,110412001213211,102040234002003,100100021013214,110420202110040,101301204220200,102304422004020,100000110400321,114011120033402,110020330014410], + 103032204302020: [103110044003033,100123041001320,110310010113001,114414120002440,100221101003010,100300314101444,101130430331440,100002120004202,102200002021022,112123104020101], + 1131304130122001: [103010231401402,101011400302300,112003012002211,112002414002043,112442004040022,114140222200101,111104232241021,110013232131112,113022341002031,100013411042212], + 1114320030021030: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102223400201104,102342120222031,102221010201113], + 121002010411143: [103102300102243,102113020210120,111202004100121,100020004310022,100222220001202,100003100122232,102000414010131,110410300402321,110020014410200,110320100400100], + 1040211400101414: [110233012120121,100000241030333,100020011020010,101000204002210,102000131130020,110112210000002,100001204130442,102100321410122,114024004020023,1014400221004004], + 210200000101402: [100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110,100002044200330,101213110310042,101424044043122], + 1400413220404104: [100003030003020,110410000104042,100000040413000,100001034310012,121310232003222,110011300143002,100220021000033,112011312002001,102110201023020,101344331000033], + 100003101320110: [100010104331200,110342022000001,101000204210021,110100121224222,110002142120000,102011011321024,112311212021024,110100100030303,100043100103044,110302030004323], + 124100012022014: [101032111230411,103010110120020,110100032122000,101020210301131,103201004020101,110200001314040], + 103140020100202: [100023421041402,103101224000011,101144134001102,102200042000104,103002000104400,110114021000012,103002144042123,110012220002021,102304204110040,112020004002110], + 100021323044101: [110400000002213,101101230331040], + 102330100031011: [110120102041110,114002242304240,102100111341030,110213131203122,101203440304221,112114004043430,100002334340000,110010432000001,102111044004101,100121101023404], + 123000400311001: [101002204212400,114041204104222,102112300201410,100100121043010,100323120143000,110432111241204,114200200002223,112123142010120,101002321032002,101121100013002], + 221041130130032: [111120002211010,101201200310001,102023120241131,102020000201200,114241000002004,111232000010230,100424200020200,101020320323422,114220200214400,102010001104000], + 1100202311010001: [101010001000031,100021020104221,111120024101141,103201214021013,110310304430141,102113304130002,102000131131100,103124420221210,110201002043201,100011034302423], + 103000100303220: [110111222040014,110100000123402,103003024001001,102004204000422,103010000120000,114211324100034,102440234021012,100240011000000,100002030413101,103000310141142], + 1403120024024100: [103123004002102,101020000320220,110111140011114,114131304142010,110132011002023,101100020300101,114423210001210,101040024002000,114020024010020,102040111124412], + 1200302124321320: [101230002122040,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,102430121110340,102020121102120,112141104020201,102000024000002], + 241120112010000: [102000001132113,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,111321314133000,100004410120102,111222214101043,102100044000000], + 1041302012300000: [100002014200331,102012004000003,100411000030110,102041201121230,101000210303342,103000121424330,101012204221200,100300114310112,100202004324322,100143244100101], + 1040120000222002: [100024234201100,100010234114300,100010044310002,100331200141014,130000420243230,100232104120201,110112204224100,102212234021233,110224102230230,100120411200320], + 1003040010110001: [100032401030200,100021420120102,100014014210044,100022214101010,112434200202302,100310410140021,102001000221230,103221100211210,112400040102210,111110244102101], + 1003020101210132: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101004411032102,101000020302400,102021014012210,102244221114031,112400000200011], + 1140002103000201: [102001130220001,101410211021400,100004214100234,103000011400001,102104241412223,102002421442002,111131214422402,103100000210002,100000004200324,100013001031000], + 130122010311204: [102030111100022,102120000310301,100200040430313,100010021220004,112040021112102,100010000000131,101034124001203,100000311031000,100220124220140,100011101020000], + 321330000144224: [101000004210011,111230342220010,114010024011000,102000101410201,100004111024200,103302100140200,121103000144034,100211044311141,100111104002300,103002011432010], + 120221230002203: [111222202220021,111432124443120,103423201200020,110332111334020,111042000000020,110000001012000], + 132002410000033: [110243234240200,101301014221122,114110200212210,102041220200010,102130000312121,100400122201222,110231210001113,110012130410040,103210034021301,100104101200201], + 101101010210344: [110201201211024,110202000000310,110000010120043,100422314300200,102403404004110,102141410230020,110020001224021,101110020013040,101012410301010,112100000200031], + 202300121000400: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 222100300214200: [110223010013204,102230400202000,100000121040140,102241330244410,100330041000221,100342011001201,114102100034220,100044000103202,102023020203230,114110200004041], + 1100013000421002: [103100030100010,102013110201200,100042000102010,112000230220102,102013000202010,100200001210240,112010022302321,101040224003400,102304111101041,103204101402321], + 103000012020402: [100404000022030,102301121100200,111131004101000,102010300200001,113003022402221,114400242311000,102201102021043], + 1000201230301400: [100021104340400,100003000410404,100230404343341,102002301442023,114200322333401,102403001400101,112000134002211,100000001020020,101221022120042,102034200222010], + 1023410200200310: [100040300102020,100012230204000,110131214220303,110143101120300,101101200311102,112401402023020,103142104001331,100200204123011,100301400040120,103031120143010], + 1102103311313110: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,103421124042304,104000102100004,104021021224211,100100134300302], + 120200232204041: [111441300003100,111211414134201,114200044000012,100140101203122,101000121143120,100411310430002,112401102010230,111003000021043,101020030300010,102242011301200], + 133101010301002: [110101231202300,102023324010020,100130444102110,114000004103003,100001204342232,111131002212014,103010304012101,102210044010110,112000404000001,112000001121002], + 1002032043002014: [100004101032202,112100002011214,114401022311200,114020004020300,110114130114210,100004321021120,102300420220003,101400211012100,110012112003243,102104000213123], + 210300102002144: [104244002023000,120133001040211,112200431102021,111320124130040,110000110000231,100142041012023,110000000411120,110302100010342,101301030313022,111440222100012], + 1000100104404124: [112213000200301,100003224334120,100404224300012,110204130004030,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440,102410434000220], + 1042412021024000: [101240220300022,103011431401300,100022000410041,102040300241403,103020000102011,100013011020311,114021004100210,103000310100320,102103331400000,101040421033204], + 1421000230400442: [102200004120034,101000024002230,111001200003214,102100021410210,110012020021204,101001420312100,100022201044101,102200010204000,100031000413030,100130241010201], + 1404022130033110: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,100002021033103], + 1210000442011122: [100000044240301,101140021101302,111120224100101,114440120000030,101023041001203,100211400140102,101010040320111,103023101420104,114300014030021,114000010041302], + 1040120310344430: [100004214303020,131001224202110,100100400113040,131100001014001,102211122121042,114020420021403,111000014110301,110000012130411,102213244002203,114340224031221], + 1001130310002130: [102001404012100,102340120222440,102122214131011,114223204100010,111041202200140,100023031000024,111300400002313,100023014313010,114021040010311,100020004101012], + 1020001131220331: [100020331001310,100402010022123,110200131102200,100430204220020,104110241240001,110011242202000,102201012022300,110000421302031,112131442302432,103202111411203], + 1040212410000200: [101033101002303,102001104010010,112002030210041,110002102003311,100041130040040,111000030042302,111013004412334,110402410002301,110023032002000,101201010301001], + 1111013232224020: [103011041410132,100102134031030,110233000100021,100112104301200,100021242211014,101001210201440,101110040002210,110211104432213,111401304441341], + 1000010210231030: [103114204002100,100112011040011,100401024300321,114230004110101,102101004022104,101232104042101,100001101033010,100000201022420,103000011403101,100100014302013], + 1100010300003000: [111121100010021,110310034424102,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000,100010020101222], + 304410010232404: [100114004100001,114102300004024,112102201102030,103222244003021,102420011111224,100340114211043,110232020002221,100033001220020,101100120334014,114233002340141], + 1020040001002013: [100214104301120,101002000321201,114300014030310,100130004300103,100040004331010,102320234112041,112420030202242,101001424004240,112321101102000,101401201013110], + 1102020022034142: [110400010001201,112012002002332,110412010002312,101004414000144,100143221000221,102000214001143,100312104100320,101002224000124,101022110304020,100104104002111], + 240012020420010: [110013030403023,103010204010010,112003002030002,110401231001202,101031211140304,114230110212040,100000034301140,102111011142022,114132142312022,111210404410344], + 140132113010222: [110330400010040,100101231004020,110010100022010,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 100301020102120: [110202102121414,100110014103210,100041204331000,114012032240012,102130004002131,110143020121321,101413001100003,110130020003201,102414231403301,101402211011032], + 1031020022320001: [102021001132040,110200400000020,100032201024101,110203131211112,102301004110004,110402420402001,110000112100402,100002204340200,111140000000000,110020041310021], + 1102000101201030: [103124001420200,100220210034042,102401001110000,112011300223041,102002001133122,100204011000221,100040020103014,100000201032240,102031010200002,101240204232402], + 1120222011041100: [101321001000010,101010424210144,102203011120021,100130014300042,114034400040402,100010100102032,112010344023013,114002002300222,102104000210330,101401300301000], + 110010000102200: [110102401201204,100222004320102,100110004103122,102200130202201,103020200141000,102414034040100,100212030414010,100000111034100,103132114002002,100412200002013], + 1000202000424040: [112102202040000,110100104404110,102110042001043,114100002204212,102003000212104,102000100220240,102030204000041,102110021341014,100210120430200,110203221112042], + 1023200020002101: [102010011411233,114004322320200,101030114211022,100403220020024,110033124420110,103102100122414,100121034230014,114322002322044,112040200210223,112002142310023], + 1021000100401030: [114000222211300,102130040230200,114030034013200,102303214031001,100001010101032,102212241110430,101124314020402,110130402140002,114432002322240,101402104020302], + 100113200442214: [103310001400000,110042014203200,100033304311022,111001210040344,100122401023041,100131014232113,100221000430010,100400302201222,110204020000322,101104301110011], + 1020310211300232: [110441234224400,103100014031411,110000300424304,100032121024110,110013122130200,114020204102020,103121221400012,102022400211311,110030400004330,102004204001111], + 122011330001240: [103000004012003,112303041103203,102101024022111,102020231440400,102144200210031,114030304122412,102121104130242,114104220000003,100112011040312,101013200321014], + 1044033110002024: [102010244010000,114430412322343,114200034110031,100000430014301,114423002314000,114040002210432,102214020242110,114010134021022,100010040122204,103314044033003], + 1103102304021202: [110000222102001,114400012323303,100100400412043,111000000020420,114320132322101,114320010000123,100021044312310,113200212430221,100010020023102,100000210000040], + 200231242112001: [102202310203222,114404010003320,100042001020203,114130210231020,112114324040000,100004410120102,111222214101043,101011211003002,100000241000002,101001040304214], + 200331011000030: [100100331000022,114222040214020,102000111441024,114240000000041,102032000223300,101013024000102,101000441140230,111300214121201,100100030402001,102400400200100], + 1022000100401212: [110010302000004,110410000104042,100014014203233,111422100034314,100102001013034,100000040413000,102030414003000,101342020314000,121310232003222,141000013100220], + 1001041002002004: [110002302010012,101212001204031,112100232040011,100132034104220,112032410212442,110021233042220,102002200222041,102404414041110,102144044001000,101013211000001], + 221102021000012: [100000430122100,101200100304010,100000001033001,102020200220310,100124100031200,101010200321022,102000231122032,103304014010000,114020002212200,112402002010210], + 1004212300002131: [114000024100022,101022004214304,101001231032003,100043420411130,101001020322010,114112244122013,103310220113140,112144232304210,102443421400110,100043041020120], + 240012400200230: [100140200020242,100004120021240,111201022223123,100131101201030,110001020030002,111421014442003,100100244002230,101010001000241,102000221100240,110120014401401], + 302210220143200: [102123220230210,101110004021320,102201230200104,103012101401220,103001334010240,100214324104012,101333201002122,103200021404423,102003114002001,102013010220212], + 1102200224120041: [114012304010103,101232404040100,100044000201201,103320304021024,102102020203131,100000301041003,114401322310000,101110404001000,100000000101012,100043204100144], + 121014100100044: [100020011041102,103022004000010,112110201100113,100412131010010,100130024000300,101411201111042,112122234040200,114122100211000,101101001110221,102302400213001], + 1013221232224201: [100203321001221,102310400244210,112111040230130,100004101023023,103010041241404,110333010011034,110423301004320,114000300011121,110401321340320,101110140302324], + 1121100201201012: [110202032123210,111122004100020,110412244220110,102411314024401,114001002300430,110101230100001,102200034024120,104102130014402,110314042102142,111120122242010], + 141021101412421: [111302020010000,114213222330042,101300221003002,104100212101311,100000121020303,102403004020102,110200220010220,101000001001114,103303021404201,100020010420242], + 1040412113004002: [100014100100001,102100004130301,111120004100414,102201101122100,101034024000101,103340410140122,100102114100420,111012202111021,100103144302200,101414100300221], + 1123140233130000: [100121230031032,112000431120410,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,114013124030022,100013200100011,114104200220022], + 110020043303032: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411], + 220141021000201: [110442104221030,101224001202324,103102134001111,102011310202304,100002301040000,112000132001414,111124402243200,102001331441012,100203014121400,110042002002040], + 121044040131204: [102133011413110,111001200041102,114022424102243,101223020300040,103111420110210,102034324000220,102022400203211,101230020303000,111340130010314,101214240300041], + 223222211002011: [110040102001121,110200321303322,114032024012040,103002041402004,102103030210003,103010011401200,114121134124014,103013224034023,100020014210002,100001421042312], + 1010002004220233: [100004101032202,112100002011214,114401022311200,114020004020300,102420400200000,110114130114210,104200200001200,100004321021120,140243003020120,100003040102022], + 100002100000004: [111030212113431,110001030120020,103222004032000,102233034000002,112130004021000,100100200021431,112101202012010,111212024101031,101013040300032,102112314002011], + 100000201101100: [103012034041202,100100204100022,103130031241103,103234031200401,114011320024214,100233001000010,110322311300120,100204431000210,112100204000103,110022040140021], + 1022102240321112: [103034010121101,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,100023014313010,114021040010311,114140004123122,100002301021040], + 121312113301020: [112311011101001,100210201001001,101100001101401,110100124402042,111120402212201,100101021021114,102120404134413,100210010430242,101411001011011,110040212000010], + 133122111020100: [110021000410432,100042304102210,100013030100002,101010010320112,112000021122010,100021111043012,110124041140000,100010044101002,100001000100403,100020124100010], + 230330000200020: [114002104014300,102000311102212,102010004040000,112433112020200,102231041120104,114132420004104,114100110220013,101431304024200,103004021430003,100040404202000], + 1420420332402401: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 130022024022302: [101001400301113,103101024004200,103024000103302,103300021402104,102014111102023,102102024000001,101301014220002,101012044004042,112410300200001,102020304000321], + 220002202343040: [102114340204022,101000011030111,1303043020124234,114403402311003,111143400421100,110221310000130,100223331020012,120313211020000,1013001120112020,1311314200100310], + 1143000013403000: [101020204214020,100131144232400,101001004220021,110232241101002,102104101340430,111333020000020,112233010221200,114020020001014,102201401001104,101003200300401], + 231323022320340: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102223400201104,102342120222031,102221010201113], + 212311220313403: [103300121401234,100122200020013,100004004210020,102331104112002,110121112010004,114132002200241,102330144110211,100404000020300,110214202124100,101200004233120], + 120040001042420: [114343002322014,114100022342130,100013024312024,111012002200101,102102211140013,110020220022010,110210020002243,110121220000022,103400100130300,112400434040004], + 1420010032000210: [110000212101040,110301011234204,110021410020203,111120002100412,103330421400224,112024232302040,114013022304040,101023410321122,102021311100042,111000304400311], + 240402440400100: [110111032140220,100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,114200022343003,100024101022010], + 111100013020240: [101000201031101,131204100021112,113003221014312,103440324001431,123400040222113,103102104003010,132220204100102,131202200011113,102044400022000,112120140231000], + 1004040110002100: [101221121202421,110020102000133,100000204342022,100001020012120,111042022141200,101441101010020,100100241020020,100002004342004,103010330100320,110113042000320], + 1120212202100110: [112342210200100,101021020331240,100020400003003,114100234000201], + 100000000140300: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 102301020111410: [101022014222024,110100120400020,100032000101014,114000024101202,111311002224001,114030000030012,100032134101100,112010024023002,114231032340010,100000010202201], + 200000200033000: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,102040021121030,102102211140013], + 1001304001303142: [100000431020101,100244100032320,110010212101240,104104001243020,100032040000331,104124102100301,110002010440412,110111420033313,100201310000404,103100200103020], + 241003123120040: [100422040021304,102000024011300,100021320123031,100014041042003,100002010413410,101011210300000,101433010300204,102114321401000,100002414201103,101002221140440], + 130210200223122: [102020314012030,101002100323042,114110000002010,102110300210002,100010200101222,114004000020012,101031001032010,114442102310324,102324400243001,100440000030010], + 121021240400431: [101043224001442,110041100141020,101001004002100,110300214430000,110002001220310,111331104131204,101040204002221,112200004001330,102300121100001,110421102110004], + 141422230020000: [102230004030112,100100221012100,1002022012411300,214021333002200,112102000202302,103013200104400,100130401022113,112001421111242,1011001024420302,114112402340003], + 1110103102004001: [103204424022010,110304304420001,102110402001413,102131334020220,114210024001201,1031024222000122,200003020011141,100020111230000,114102010224000,114301012300202], + 200000010033000: [111320012221132,102302144110440,102143202000400,111020002202333,111130224102101,101321311004010,102110241342210,100002320411400,114201000004122,100143034304100], + 1102030130400422: [100000044301222,111012034402110,114221004034110,111100104104202,101223041020020,102002204000124,100011230120014,101104024002242,110133120011001,100400010013033], + 103242023022021: [100013400423030,100033100421220,100032221044041,112210034000434,110131142113202,100030011041024,100011114313403,111010234110022], + 213010221032130: [114410024110002,111200210001023,101101401020424,114030220011120,100002200100100,112410110201010,100020000120134,112422100200404,110202001212002,110001014204010], + 1022203112204104: [102000101130132,100402412200004,112040100210110,111201210000411,102204311100014,110213331312003], + 103324010102300: [110114001202122,103034031400131,100001010100220,114002114012041,102000004012011,110101100012002,110001002004240,103322000112244,100030220002102,111010024401332], + 1030020201140321: [100032004200002,100020241021124,112342201131331,100010200414111,100121044230002,112003442002011,110010022132422,111000042200101,110043130440321,100244341003000], + 1000112000102220: [100400210010032,110022030110040,102011211321000,102124210200120,112112004042000,110010144200414,102010112000301,101023324003111,102330021000022,100000021221004], + 140131110100120: [102231102020200,102120201140110,100331200141014,110112204224100,100200011002042,102212234021233,110224102230230,100120411200320,112401344040043], + 240420400202110: [102212300202110,100012120201211,100024414212001,100000014310020,100022204300002,101014014211233,100412120433120,101010100312002], + 1012000100224014: [112003001133011,101002240304011,100201134100140,110034100040021,102000221032102,110213002132000,103010000110210,102022201020004,100100424030003,101000131030120], + 1014301024113321: [110212012114431,100001140020000,100012101223021,110031301200114,114002020044120,100021004302202,102202200240222,114102010220042,102021301441201,104103102103201], + 1000200001222201: [110003000042343,100020341001100,110110414402000,101100001100404,110011000043131,100121214300203,100022221044012,110312300010200,110001120021021,1020110000101002], + 302000010323001: [102143124001400,100011011020440,101002121000111,114023314013200,100000201024213,114003422304142,111001404112102,102010201122000,114011042300202,101400031014311], + 213000402300202: [102142221342202,103043404000202,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420], + 114002013020030: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 1104000001201040: [103142021211011,313040122221220,102121030212020,114411024142133,103004201240410,100022024340200,110230142122333,110010002002000,110204012111004,112311411133302], + 111001000401004: [110002212130403,101042411000122,114101002311013,100133004000124,112440104042121,114200124000134,100224210432130,100120204234213,100003011231420,100222200002003], + 100021020102200: [100113220020101,114031000022030,102014002000401,103103241421322,114121012340044,102104304023201,103310300140324,100002224244002,114310200002400,103211220100010], + 1003012121103120: [110332202020000,112421004012141,102224410201003,110030021010001,112001321113132,114224034000310,102332101001000,114002100024002,114424214144024,103101440121101], + 210212004000200: [110002420020000,100002210401034,112011340213224,101013011030413,111301042202102,101421041100223,102000111122140,100001210000030,101034231002130,114220204031100], + 1031042010002130: [102004004002321,102001010240202,111301022200213,110310012024144,114213002341424,112031000230000,112012240221124,100440310030003,102344100222410,110431020000020], + 1041440213142030: [102301401002404,100232214222204,102012004010000,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 110310001230122: [102311004012010,101020401033332,100012001023022,102112012004120,111321000002001,101210011042021,100042100003104,100004020021344,112420044040112,100100000000042], + 1002022011231114: [100030010422041,114003014100103,112421112010232,102010420200220,112234001100044,102033001100221,100210144220030,100001410012241,101003004000010,101001011002301], + 100041031024132: [102201444044432,114111140220220,114004100011010,114302010000013,100100124003241,100002310120001,100111014231402,110220022111241,114100404000100,100022024100312], + 1100111000121110: [100200011002200,112001112002104,113134002412222,102100311320110,110430002112002,102240030230010,110030010120002,110242024430440,111003212230033,111020404402004], + 100004331000314: [100002044211310,110430122111140,104012302104014,102320221000230,1323100312100112,242022202122014,103014004000240,1140000400200300,101141224002302,111101144404022], + 101014020002002: [114020000020001,1302101004142102,110001001100001,201014000241421,110400102312140,114223013001001,1002000010441103,100111204004442,1300011022000001,401400200400300], + 114000140411200: [111110232242220,100121104300001,110002041102000,103032040110110,100110001201401,112000042002001,100200130430232,103022101412303,103011044000000,100101124002120], + 233020400311200: [110414402020021,101000034000220,114312012300300,101012104210042,101430001010032,112402012020000,103322241400404,103210120100143,101010024213100,100040000123130], + 1124242430341002: [114400214140002,114024022241001,111342314121314,100102014230000,103410004001234,100402022200304,102242024030234,114012434103044,110001001320030,114222010210204], + 111202040214200: [100240000032004,102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,114420232314210,100301004321221,100020000410313,101220200040320], + 103312000220111: [102141401343022,114131304142010,102110314002123,101100020300101,100111121000000,111131124100300,101020204010401,102040111124412,102113100203200,112310231134114], + 1020111021110122: [102343230224321,102112231020231,102320000240102,100042144200000,114201104111034,102310140240012,102030304001101,100020420121003,103020004011414,102102201340311], + 1013402100221003: [100000014102130,100022044344000,140104013031303,101101001020004,110010404413302,100011144312002,110004001104031,100013001214140,110002000040202,110110424221134], + 100002202300342: [102021001132040,110201201211024,110402420402001,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412,110123004401121], + 101322213042004: [114024312212020,103104001440422,114220302314020,112030101110231,103200024030232,111014024112203,102013434000000,101102411114421,110000020042112,110231004242101], + 1022004104121240: [111400124420002,110020402002000,101033124000402,102401000201121,103310421404111,103000020120303,111013232200403,100112044024030,101202024231020,114100042311200], + 1041110400020423: [100200024104410,104100402102320,104133012103021,102200011100420,110020231100021,102102304004203,104132311242210,101040210312111,102210244040143,101100224000200], + 130033111010012: [103012011434022,114103402201140,101313004232122,100001004301400,100031001020001,102111420210110,102104131414203,102203314011321,102000204001042,101231220300123], + 103012141104024: [102113300230021,100010044310002,130000420243230,100232104120201,114221000004311], + 1240030323000021: [114031022302044,102031011441221,102021201410011,114103020221100,102002024000132,100401001011010,100212221002300,102400004021004,102240021302000,103202140103403], + 1143132040003030: [114030110041300,103112004030003,102300001002144,103132424000410,112013102004422,100400220013232,110010002000100], + 1010001102001304: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,114002002300201,111012002200101,102102211140013,100311314310000], + 212130202420022: [100313030142202,101221020300020,102013401100100,112210102030020,102043030202102,102300014110023,114230024111000,100402120031033,102103422004103,100010024202200], + 101014002002031: [112000001123004,103400100131022,101004141000312,100010014313003,114100212210001,100022230100202,110100020004310,114143200211211,102002001101211,110112022120231], + 240100123042024: [101042104010000,114000122301411,102111002001230,110410000002004,111424002101030,100414231011020,114121110030203,100110044301024,111100040001003,100042404100401], + 1424233242210312: [102041310200042,110320202023400,111431110000042,110301030010140,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022], + 311001100230040: [114040102210432,100034004211240,102140121410131,112040200233002,102113111343110,103234100101221,114002220010031,103103311424020,101030010320024,100001010412000], + 122322003230020: [110141104201032,103200000101342,100021000101421,102103034000310,110011042100122,102001231131043,112000000212221,143304200441210,101022134002430,112031020230410], + 1000020340012002: [112124004022322,111300210014020,102103201320411,100100031043410,101033214211000,114001100024243,114100012204104,110141112044000,100034244303010,102003104000032], + 1000002031024030: [110202012100020,102303010241010,111342020011220,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144,100001221021031], + 121212143303410: [104130242103012,100002131024210,102000101132400,102412101112121,112023140212112,112313301100030,102110244000130,102101031412121,102313310224103,114000312301300], + 1012030100120121: [102301004011202,102000201100400,110034120023130,102101004002000,100110010410230,112121040200102,103000101240211,114221040210200,100134044003303,110220010010120], + 102303023001302: [100032041021210,110004301222000,110414300030001,100030020011022,114310000001232,111202012222402,102040041320010,103203401400132,103142111441040,110104002010100], + 1000100140043210: [114443330001442,103101041421200,102222321000301,102040244010100,101204444040122,114031030041040,102114240204013,112104222012023,102031021133300,100011301043341], + 1000000230032042: [110102224201130,102104131412412,114020312300021,102400204043012,100000000200102,101011011000320,114420200001202,102100200233123,101012421000011,114023004031001], + 224400120211044: [100002030102221,110414000032411,100120301022212,112203100201021,110000142000203,100013220400031,100200000430401,112203424001001,110310322100124,114000010010203], + 1010240040002121: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1400101021431000: [102000001132113,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,100004410120102,111222214101043,114412142320040,102100044000000], + 101310324040001: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 110013423010002: [101041310301004,110021122100000,103001224014142,114431224113420,114033012202420,111211002241330,102012000213011,112040004000012,112410214043412,102113201401300], + 1100423401003000: [100004221020020,100013214101120,103321300144024,103241114031030,100143001000202,112040222001200,102010304012020,103131032021030,100004124302203,110200231314311], + 101000020211200: [103111401420301,110124010031144,102140230210111,100011210412002,112004431132202,114130202311020,112120402013111,100434444323300,110230112032040,114031400042021], + 120011030120000: [110204034240010,104102030012121,110000011100204,102110231441040,101021111000022,102100111413012,100113214302002,103442014000100,103021000144000,103132014002131], + 1032020012230112: [110230000000002,110220301202400,100004414101224,101003140322000,110401001002400,102002001130001,103012000100400,114201142324042,102213401111223,100040120000031], + 1110112230110132: [102323304112342,114003222201103,110240020100212,100022204300000,112012211120102,100101040400110,114221002340120,101002204001310,114220200000002,102324004112400], + 1002112332100123: [110301011234204,114211102321011,103330421400224,102000200201422,102412004022002,103220124034124,100032204200023,100023211030203,102104301004310,112000132302101], + 1040000021224110: [114040100030400,102301011002321,101012011022300,110003301213002,103412224020402,112033311122000,100210001002210,102110120202141,114241032332313,112120201101200], + 101122020023011: [103122114004113,102242301122200,110030110122402,101344140314114,102100201400122,100011111022300,114032300011302,100234004033234,101222221020440,100230020410200], + 121012011002001: [101210144014403,102111420233012,110000020022324,100020231201012,102210424042300,100101101020002,110030420410024,111002012202324,402104002030100,101032040320334], + 1004000430310231: [110213002132000,100311221002322,102022420220121,102401214020202,112102204024002,101000131030120,100001301214030,111140000012120,100410040430220,101041404002020], + 1021311102043111: [104110212100123,101200140044000,102214014010030,100021230411014,110024000412302,102331104110040,100002134300030,100130414300000,112310002020302,102002201413004], + 240011130320214: [101042411000122,112041402312040,103023021244000,110104434402221,100224210432130,101002024012004,101421210302410,112030022300112,103100020122200,110241130013040], + 133402201020122: [103140014002031,112003020220120,100043024210301,102014001130100,103400201200000,114021200012000,102422131400024,103210304000030,102340101000041,111201000013222], + 300134100002212: [110224314430000,102203301123001,103100134001001,103210400110122,114030314123101,101201124013202,111322012202310,100400201010000,100010321043134,111220020010043], + 300010200313412: [110202210102120,114001004100003,100041014102004,110320022101120,102131421000411,101412030302001,102222021124112,114000040031021,102400001110113,100404201012020], + 1030111104004221: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 100341200042220: [110000202003120,100130220400000,102312300220000,112221024002232,101020111140040,102041111130300,101042200303012,110401202021231,100240204101020,113020012400412], + 133102000010222: [111130224102101,102322020212020,114403304140021,102103021340120,100031131042030,112201422040000,114021040001000,114024130031020,101220201000030,114022300011000], + 130044324004400: [102303110220130,100124120011100,114003004031430,100220304220004,114110000214110,113004001021230,102411000200112,110332432020400,100120120402022,112110322044020], + 124021132014040: [114021000012310,101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,112143144020012], + 141004020022004: [104140321242022,110020004422304,110310000104014,103204301200000,110122022041331,103010311410024,103403411212300,111102412112040,102230002023220,103012041241100], + 223001001300404: [102000140200220,114233210000201,100002001024100,102103130221330,110011002100114,114102220033034,114004020020313,102022421132024,103303041402240,100002121021022], + 101211101320010: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,114004142244000,111212114131222,102140001441301,111012030022123,110000011220204], + 1003120112012004: [103220000100202,103122224034122,100142011002402,114004200021000,101302331000221,101111440324120,102302221002020,102101114000401,110102002120401,102124301120200], + 1114204043000300: [110312332102012,101404204001310,101003100302100,103000331422023,101400101100001,100100020401310,101040234210040,102003424021402,110021330033102,101002034003411], + 1120100200003322: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1124101002002300: [102001404012100,112004202302034,103300004021200,102122214131011,100023031000024,103230134011412,100020004101012,102402000201011,102311011000200,102021021101204], + 123002100034100: [102422001400000,100301224310100,103002104012101,103220130211414,101020220323012,100012324202240,112101102012030,110003410100312,114000022300301,114000000021100], + 1003011202213222: [101011004212201,110032022002020,100214230430124,103031234000122,103230011412301,101042001021012,101100104002023,100400000010020,100124021201021,100102001000000], + 100130000013301: [114020024120310,121021032342113,110220210110004,1122204031101014,100003204214031,1100220200041014], + 1001121021323132: [110112102211042,114200022300033,101400220303133,110431442110400,114011120021012,100100111041320,101420010300310,110000004210112,102334001004100,104100001240034], + 1012100044011013: [111101010010203,110110212010011,103120101441202,110011000022102,101002121003112,100004104210221,102202410240103,400014404414011,100030211040004,100000010101402], + 133020140000230: [111102110012000,101001400301113,103101024004200,101000344010212,103300021402104,102100431342023,102102024000001,100104400021023,114003104032034,102020304000321], + 1140232120001101: [102000144014000,102100104002302,102120010230031,111202300010010,102020304000242,101232321020000,110002400023342,100120044233220,103402201212100,113031010134002], + 132103142201004: [102300324010203,102100142002204,102040011121100,110113004402201,100030024303023,102042204000300,100001134100120,114023214101310,110301232000100,110102400013020], + 1100412112100411: [100041200010000,110111001300044,111000002202324,104132100011024,111211010001300,100113434301241,114030020020301,111014014401303,103210001422303,100100000022131], + 124031212031103: [102110104004031,110130100010331,114004004100022,142100000024013,110022000022202,114300402320043,103110214004242,120002222420113,110404044220000,101010211033230], + 1140002323210032: [114000102240100,103200021401030,230222010240012,112102121020220,130300100333301,100020120024010,112042042001002,114102002344100,100011204340230,100202400002411], + 1141001143204003: [103210400110122,101112020300011,114104302341000,100400201010000,100010321043134,111220020010043,102100021342024,102244400201444,101010001000121,101232104040130], + 1030021010204101: [102020044000030,100002001022412,111202320012012,100003001020010,102442004020131,101011124210300,112101422301001,101301220311200,110040014213300,100320421002220], + 1020112001300220: [102000020223013,114040102301100,112121032014014,102310111001210,100020241043022,114413232320000,100100001040134,102100121341102,100002004130101,100301024310020], + 110100401302202: [100103200020313,110000431213211,100414024102342,101120120330222], + 1003232100422034: [110104231221040,100042110122000,114400322311044,101021021002110,103224401422304,112112122012022,100401140033104,102120100212020,100020114200220,102411130201102], + 1004201300020013: [100001300102001,100220101204311,112033124022002,101013114001130,110022134210202,110110102042312,110440211340302,100001300000022,101004104010020,102001014003100], + 102012021000021: [111101122102222,110034004420011,103000114001000,102242024030234,110141201000200,100003344214000,114400300000221,110314014422011,111022214113044,103104024000023], + 243300413202000: [110041030411301,110001041213031,103301210142043,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002,111202012222402], + 243103020000241: [110020402002000,102042221101230,101033124000402,103310421404111,102101134004010,103000020120303,100112044024030,103240100102101,101202024231020,114100042311200], + 224044330400040: [103102101422031,102130124130100,112404002023002,102022020204430,103214021400010,114003422304142,100012401020212,110100022010014,102042231130200,103144220102102], + 110124302311002: [102010011411233,101030114211022,110033124420110,112002142310023,100040101020201,102102240210310,114231220004002,112020300241320,110410012020110,100004424230021], + 1100013010001240: [111020044112020,102004404000111,100020040101021,110100312012040,101104312040120,114044400021021,111412122101012,100003200100331,100000124200111,112220434011000], + 130010402030010: [111102440020002,101202001024340,100004000102302,103312010113222,110130022140122,112002304004203,100034110413403,101030040320021,114104000002301,102232110201100], + 1000102120101030: [103442110132330,102111310313001,100203010434220,102140322001242,114023044020211,112013124020300,102202321114004,110401214221203,200200133341004,100242001200000], + 1141200320010130: [114213002340022,101400104042212,100000021022400,144200203310100,1003022312322100,102001244001224,114030214020000,102023422000000,120101041020020,102330204110410], + 1010204301300213: [110200400000020,110203131211112,102301004110004,110021100023210,103122000100403,100002204340200,114103412201420,111140000000000,110014300041302,110020041310021], + 200340341310214: [102130124130100,101002121000111,100000201024213,102022020204430,114003422304142,100012401020212,111001404112102,101400031014311,102110230200201,101240404011020], + 310020203111444: [114120030223400,114423312314004,100340100424220,101202014010412,102144031403200,100041004202111,342003122142040,100243404101011,110421104220200,102322124112422], + 1000221100000124: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 120242012440140: [100111334330000,110023240021020,100300433210004,102240100011000,100400213242110,100020201002004,120021202100230,102320120240200,100000012221111,110102301010411], + 1140023440311401: [100430211011410,110010340040012,111010124402202,110211020121140,100020244310231,101000030321102,102110320210011,114221234002100,100033100101240,102420001110301], + 212102030132222: [103312010113213,110020240022142,114401212310021,110131022111320,112000401132020,111302014120120,110013034211021,103001214042003,101020241021030,110020001300000], + 140241400202022: [103010021422042,101110000010122,102100404000021,110323002022000,104123302100200,100103414300020,110010121333141,102402034020001,111202324134000,101433201010200], + 130002021100101: [103003001400110,102143011343003,112022001120410,100341410422102,111002012200131,101400040330021,112210001102424,110101321301120,110001032002011,114102012344003], + 1000300014100040: [101020044011003,100021014100124,100122040012210,101040000300110,114202124000200,112041432030144,114000120020004,114241110000102,102140214001144,110200202121001], + 1142021241010010: [103000011402201,110210134244100,102121041441000,114102022200000,110233010002020,111203034103022,102101304000012,114020202241323,110004402131000,102132421000100], + 1121140022033000: [100121230031032,112000431120410,103042024040104,102304104110001,102000200200301,100104211044110,110200101200402,101342300314204,114241222321321,114013124030022], + 124402000221041: [100000044204004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414,101212214011134,100001121023210,100012101020002,114204120000200], + 1040033030201302: [101230111024130,1112100200412130,1320100232411004,100121120102303,1020024112001010,120100010104132,423203002400042], + 210001020023030: [111102104100334,111210014102030,110401100001104,111440000000202,111200344442041,103141001240021,100001401034130,101220200304110,110420014242010,110403102222001], + 1101432000001304: [110230000000002,110220301202400,101003140322000,110401001002400,103012000100400,110210024220020,100401424300314,100040120000031,114200142324000,112100322040040], + 214414123000031: [104132340011314,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441,102022411412401], + 1002100411213122: [100422000031421,101214104041040,110104231221040,100102000010243,112410034040040,103031410122401,103101000100022,100040021031201,103000300120001,100020141044111], + 1002400232420012: [102004300220000,102010212000134,102110021341422,114241022332104,101403020334021,100010001040104,110141020400341,114133102311014,102341204111304,103211001422023], + 144212103223430: [110011414240022,111142010020301,102100104000040,100000144104100,100010044300003,112120224040040,103301410110110,112114324040000,102124031023100,100204104320231], + 221340140432000: [101220111020012,111401200000040,102300122004231,101041204222101,100024024211001,102110001342114,102042444010014,102330311004110,114032110040320,111203012221030], + 202331013000002: [110100100031014,114001002300430,110411130100013,100021044210012,102212034044212,111341300011434,100401304302243,114101212202230,100420001001112,102140400210434], + 1000223001223311: [114041400010321,101002234002002,100000310102011,102220130204110,102331020242011,102012030220314,100244244322120,100220034341000,102101134030334,102103202002232], + 120022010300020: [101121211101004,101114101012020,101001304001101,103000110142041,102002112041034,102041111020030,110022001201023,103101124003110,112401144042000,101222044204000], + 1100030000444204: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 222201234100023: [100002001013012,114120220214130,100002200001011,100120001204102], + 112310442004211: [111030124112220,110000230010221,110202110113000,100324114310222,114001020022140,110002242100100,114012004020230,110000104211010,101022221002220,110220400401033], + 130013314023140: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 1010224102021001: [101240220300022,100011000202214,102200130202201,102002020220000,100102120422002,100002010014040,100001300012442,100022000410041,103020000102011,103001031420203], + 122430102020402: [220212211200433,110002144411414,100003024303000,101204110411102,102142302000411,103222440102000,102440420200031,110002241012102,100131100001021,100000100422002], + 204103001102322: [100440031001120,102020200223310,103220011420242,102032012000101,101001400301113,101004201001232,112102102302000,102141231343401,101231104200000,100002120200101], + 211130330201010: [101221414041100,100032424312011,101110301040312,102204010204023,103041020101400,111300402200003,114141024004011,110022341300320,100210301002021,103040000000212], + 1113002200100201: [110041030411301,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,110033041200104,102000221442214], + 1010010411302200: [101010241003223,102000020220000,114412142320040,100003044100101,114012402332300,102220211122102,114420022314022,102234004010003,110204314402021,103121004002210], + 1044002110020220: [100400224300040,111144042240304,102000131131100,110201002043201,102400021401101,102141201342300,102140210230000,102131211411102,101001004012413,102024244002012], + 1201222201213002: [100110000410200,110120200030233,100132040031022,102442004020131,110031010430100,100432431000310,100004000014032,101014121024142,101001201022304,102104004002400], + 1041121212311212: [102000221101002,102000431130020,103102314001204,103120004004010,103222120102031,111104404100200,114432224142000,100202234320210,102112400210210,114001332210232], + 100040011201012: [101230002122040,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,102430121110340,102020121102120,112141104020201,102000024000002], + 1100100120201300: [100301301000024,102020111324200,101044400300030,100100310024040,101024024002120,103212010100200,132224022200202,100231004331011,110203002102023,103442121212103], + 202310400211312: [114200212322001,100401210020002,112210322040121,100402042200000,110001440041003,100010111022102,100220300410430,101402010301000,100000220111021,103140120112001], + 101300043401010: [110101200032041,113402202420020,100000012212010,110041002000220,100040111030202,101142410330304,103110001242101,103431011210021,111132304100420,110433222223310], + 1120000022102114: [100321004011041,110002342100014,110021312002040,111101042244210,110441010002400,110124002040002,103110314000100,110023410122402,114203104001000,114302200014241], + 1002022101340120: [103203224022224,100143200421104,110213010400012,100123221201001,112313000202012,114022114010220,100010001043004,100011410400320,101112020330001,110102101002040], + 1020421022112102: [112010032340022,114120304000212,100141410402200,114111202313213,101042041021001,101211414040000,100010031232443,100242024100000,100114020414244,100012404203210], + 1400020342002003: [112012000220043,102414000203000,111101400022211,111320100000001,112002202000010,114001102301101,101010041003004,102000121442001,114011020020242,114030100040000], + 1021420024210010: [110431442110400,114011120021012,100100111041320,101420010300310,110000004210112,102334001004100,111321424123422,100004000002200,100001140411014,101312014234200], + 1410343201224101: [102242304042410,112032012004300,101001034002001,102000201131020,1010120030012200,101024411001024,221104221024023,100010410420002,102123332000002,112000034000041], + 1021212301002021: [114104200220022,102010244010000,114430412322343,100000430014301,114010134021022,114102224104002,100040240003341,114422404110312,112140134003231,102403144000120], + 111012320010012: [102000034011002,103204000110000,100001014340021,100000034312214,102103001340022,112032000211000,134402411001001,110032020020001,100002110000131,112021020220112], + 132234122213020: [103040014000114,110012040030401,111020142230010], + 1040111100100000: [111122010010414,102040404041112,114140030222402,103331304032010,100121311021322,112301120200041,111003302200334,101000200321321,102440000234100,103030100144420], + 1130210231004021: [120402022102021,114400210002021,102010002000402,114201402332241,114211030021301,210412232040000,114030214020000,114022000013011,111232232222210,102230104030012], + 1003220132012024: [100030204300220,101021334000222,114010122330030,100011024201101,111222442222413,110030122102303,103044001412002,102211124032000,110400200000240,110101301000001], + 1444200133302110: [100101024303332,100013201020230,112300101101010,114301302323032,114200304000002,1300040101002020,123310121130130,1001210043013022,143442111023013,1022003020311200], + 1022120000030130: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 101000000200420: [110020301220324,103040020122332,102020100243032,102012200202303,101110404021211,103110041442122,114042014102321,112003110242131,102112222001200,100011114300032], + 1040030020032021: [101004200304221,111203102223243,114221334111220,100010034310013,114311400000224,100040101001132,112211132040204,102113232001100,101110044000400,102102021002000], + 1123032011000000: [111001000020034,112011041110422,101410014021040,110001032010100,102242210200010,114422214113202,1100020120011024,112411210202004,110002421122010,102001200200221], + 1024034310220010: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1120120243000100: [120101012430440,103102124000030,111000324110232,103402001200000,100400120022020,102120300203403,110323300004120,111102204403003,111401114423000,110010120020200], + 112100410221222: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,100020124204330,110200320000000,100001424102041], + 1000100012210014: [103134014000340,104103100010141,101440004041120,111101222240010,100040210411102,101031214000041,100110004102034,114112020212203,102040140220220,114300132321233], + 1142300113030404: [100022041030000,102202000200010,100010430202422,112340020203003,102443011400041,100010430022021,103032441431121,111300030040030,111003000041302,112434400204320], + 1022042041011200: [111110214100223,100012000414010,101200020300410,100110224304220,102330211001002,114002110022030,112211110200310,102212141112000,100023020200332,114020204100242], + 121221003240413: [101211201202134,103120104030100,102020030220200,110100440400010,110003434410403,111110000014401,100000004130010,101300204230000,114002004100140,102311020240020], + 110300322300102: [102130411411444,103103204000110,100441301014410,102404004001203,114001024010010,102101224000013,111212204420203,114230020000033,101012004002440,103110400120002], + 131134004004000: [110110010022302,103000431240102,114011004114100,110101140002212,110420000104020,110410140000110,100000401031111,102004101410420,110204242124012,110022301301002], + 130232344011120: [110011011212100,101134030011000,103220211421421,110123230124040,131000001020102,100044130000101,110420001000202,100102110402220,110412310030001,114012022302022], + 122201020003224: [110441234224400,103100014031411,110000300424304,100032121024110,110013122130200,114020204102020,103121221400012,102022400211311,110030400004330,102004204001111], + 132444244300220: [102140014000020,103011020140013,110030002102021,112200401102102,110304200001120,110022042000121,111122104100001,110402324221020,102412021114100,102110004030420], + 100240020000010: [100001044201401,103022120100401,112411042012210,100110444302011,102142140210001,102000202041211,100211004220330,100000304104221,101002104004003,114124004001310], + 1023120202043100: [102104002004301,102144002001232,110000221223422,102002104001004,101440001104012,102441140234014,100411130430221,102344004014110,101120121103012,111032102202040], + 1004324022323001: [111000000010022,102040001123104,100210414104124,110403022010001,112110001103200,100204004123220,114300202300030,103401140121121,112100122010004,100100240010030], + 100230002202140: [104102202102142,100000401022041,101012310301211,101204234044003,122002011010101,103014134000300,112001002030020,112030200241011,112034002002000,114100202203044], + 1422202204201044: [100310304310342,100010041031020,100042400001023,112402000200101,100020201221000,101010020301243,111010130022401,112140214000020,101310000314110,100013111020021], + 101000000100031: [114210100002014,114440140000234,100021100420321,100400000020412,112230002033202,100401222201402,110000001012100,102101011123100,101440001100100,111210200002411], + 1023401013100200: [101230002122040,111124004101012,101210241204043,104102040011120,114103220220104,102120004001310,102430121110340,102020121102120,112141104020201,101200111020111], + 122041001000441: [111320012221132,102302144110440,102143202000400,111020002202333,101321311004010,102110241342210,100002320411400,100143034304100,114021002331014,100100104102112], + 1020020021012120: [102001404012100,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,100023014313010,114021040010311,100020004101012,102402000201011], + 100202040412040: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,103414101212410,100424030024330,100123021223100,112302011102312,102400041110112], + 1003022434000120: [100200101000000,103110431441100,102101324130010,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 130220041030320: [102200001120020,100004400410040,100004210400203,100002431220022,110300102021320,102301221102000,101012004001204,111411000030222,100040011020200,101414411104011], + 103103120201012: [103000004012003,114000014014332,112303041103203,102101024022111,102020231440400,114030304122412,100023041030400,102014011102400,100020410124020,101013200321014], + 1004022310201032: [110004301222000,110221000111302,110022140120012,110024140142000,100321001001010,110321302022203,100002204310140,110110210011002,110221322123012,100020320002000], + 1120011002410001: [100034204311021,101121024024120,100102204231301,112201104011200,103020420121211,110341024422102,111031030040220,110024120430323,101403200302022,111400102104003], + 122013003210012: [103102011422101,102412201400413,102201102000000,110022000442031,112140202302210,110001042012030,100200104102011,110432132110010,101420304041030,110040222132423], + 111110310130240: [102231130213210,103214010102022,102000402041014,100043324210140,100023024211011,102404021403141,100003201021001,100122020011232,110002021121023,111102042213043], + 102331242012033: [100104341010424,103142210104020,114400240003003,112203001103411,101022001002030,100212024121000,101104040302120,100010001032200,100221110101420,102441030231300], + 1002301200031033: [102340221000300,101000130320340,112401314040311,100110020031042,102011004013000,110422102110221,100220124221000,100402002201002,111110004402021,101011014002032], + 1120212202013102: [101201000300102,100100034002202,103102111210103,103420240124040,100120110111021,112121011101002,103111010120121,111134204101221,110241211302001,110140300034040], + 1021003340101023: [110002302010012,114444044140220,101212001204031,112100232040011,100242011002002,112032410212442,110021233042220,102002200222041,102404414041110,102144044001000], + 110141003140201: [110124012142001,103110044002000,100000000413211,103024214000000,100403110022202,100021031020121,100001104100010,101013004000002,103131021420001,111200230002002], + 1024120002020144: [111104102242110,102210011101414,100002200410230,100044010200300,100003010413400,103334120114003,114032124013234,110112131124012,102143020230411,100440221001232], + 242303322114230: [111001440020003,102020204001132,110200020010003,100002214100100,102120104003011,102100144001112,120020201100121,102000041441002,102120402000014,102000200210032], + 1010342240120403: [102001404012100,1010400230221020,102302200210010,102340120222440,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 1144043310022002: [100042301001230,110002240134040,100040014310020,114000014100101,110031324200020,101110310331140,100300001003012,101430021010144,111210412213001,110000022201310], + 1120001001311304: [110100120400020,102113200210140,100031021033010,114030000030012,100000010202201,100012024210210,100120004300001,111140214103110,100010201030330,114022232303310], + 1403112003023002: [114400022321400,101302340312230,101000034000203,100200321200200,112044200243000,100002300421000,100202140430012,110200301210031,110000420020100,114304212302401], + 302212402010210: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,114113104123200,102030304001101,100020420121003,102300040221403,100114021040000], + 312003244021002: [103301210142043,101110044200100,102411000200000,100400014321101,112012020230301,100010101020023,102000221442214,103142111441040,102140101343110,102242000200420], + 114400102222313: [111100114401014,110003112130100,110103011302220,102020440242023,101230000302304,100030021041110,103222010114132,102300121004102,100042024100140,100110004332200], + 132420000000431: [112020200242131,110240024241203,102020204010103,112432120204400,103130044003012,100022214101010,110001340112402,100142221013104,103040421244210,111111014402340], + 103200001210003: [100000241020300,111021030042411,110131011000142,100201134320102,110000302122001,103302031401001,110202012020000,110043414212400,111110004101041,100402000010424], + 220414040300300: [100202030140400,101024130300401,110010321011300,142011423130201,102000401130243,114031212300003,100442230030000,114002132240212,111001122224141,100000220000220], + 1044310320020000: [102144201343034,100430010431044,111020122230001,110111221000100,102100204000340,110330221300223,112020442310202,100023001030212,114344200014300,102240001302103], + 1420020302042323: [110141201302122,100000411231000,100023001222000,101002124002220,100101004230030,102103012004030,114034000012210,101044004000132,114114004140010,101010241113102], + 1012010000131300: [100122220023132,110204002043423,100032101220041,112003011121310,110110110133103,100130101220012,100400030022020,114302144020021,111012414402104,114122020031041], + 1000202200021220: [100000144201001,114202202322132,100000011032020,102022201320204,100002111020330,114432200001322,101040404000121,110300230102002,110103032012200,100010004340042], + 1040004023000010: [114200402332011,103240411403020,100020101031131,101010000323030,114200202330330,103101101440200,102142221401140,100000101031020,114000002302313,103012201401210], + 1010223022000012: [103110020210000,101420200304000,114024102212214,102102000212010,100233404320202,102210004110000,101142420012223,100000004204012,112214024003000,114001410022014], + 1120114042002241: [100020001044100,1340120100441224,1301223001003430,232020104433104,102330042000001], + 132302002220112: [114110200030200,101012130310043,114001310043110,114102344121242,110110104204000,102010021132200,102011001411100,100001410411142,111010020021202,114003300023020], + 100000120212142: [110021040020010,100001140020000,111011030004021,110013030020121,102001221100211,102100132000411,100121104300201,101220330300003,110132000024420,100011014130012], + 1042404102220010: [110034300021014,101042401000112,110230010000000,100112440013034,100011014101313,110104140001020,102011114000320,100041001211002,114200134110042,100204304122112], + 131110144032023: [111000024110140,102230100201001,110000401221440,102410104040240,112314301103022,100020004210021,102000222003200,100001040020122,110104101220110,110112211000311], + 1010220000431300: [100321004011041,110002342100014,111101042244210,110124002040002,110023410122402,111204200002001,111200020004203,100141101040300,103000104042400,110000011012202], + 1020310100100200: [111000022202402,100430211011410,110010340040012,110014032101430,104421312102244,114131014101010,102240214041033,114200322333401,103010021422042,100000001022401], + 130012120011424: [110010130000004,100000331040124,102122022000230,101011200324311,102301011004011,112030040242300,112400002021310,114030310030022,112224304041202,111103044400100], + 1024000412011400: [100031300002022,110210020002243,110210022120040,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 200000201004010: [114010200011100,100102110412002,100000204214001,102013024000211,102022000220004,100012001042030,102000404000400,102004004004200,101002134011001,103440411210000], + 124002021321013: [110412220102021,100300004310110,102002400430000,101200124200010,102143120210003,114310012300020,110003212104043,111011022203010,100001000100020,103211021423243], + 100230411103001: [104100202101022,101131141042121,100440000031023,110012012004102,101320244221142,103100401421202,100002211221402,100103301000402,114101022341020,110340122100210], + 1101210003102202: [100032041021210,110414300030001,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,114142044120310,110220410000040,100012000022003], + 100034000004222: [110001422030011,102144314002302,114200112340002,102343014022001,100211000430431,101213240301002,102240320200212,100140200410200,100020020120200,110210001214000], + 1101441010123430: [102021001132040,110201201211024,100032201024101,110221022101104,110023100402320,110123004401121,102032020214001,100040341020133,111101344104210,100410220030300], + 1024401021240112: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1004230232322310: [103212014020132,100102101000203,114111200034310,102231301122300,103230040101112,102001004000100,111121104100004,100010041032043,102441311400421,112030004021010], + 1011344010300421: [101214200300004,114330120000222,110001440004103,110010022202202,100003030202011,1000301003020410,1014111023013000,110320044420300,1003300020121100,110201430400400], + 1122011114203300: [100000041040000,103004104003011,100101234301300,102331104110040,102300010242203,100020410410021,102144002000300,101233320302120,101421000304101,102011204023300], + 134041034223422: [102334004110232,103013000104404,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041,111300202200414], + 1121000000204032: [102210011101414,102102011401410,114032124013234,102143020230411,100102014301210,100001000410200,101023134002011,101000131030300,114241402320044,102334040242404], + 1004201441103122: [114014112300100,114030034013101,100000044204004,101013004001421,103000014011004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414], + 1003040030421401: [103011424002021,111121204404010,114210000000224,111202112220003,102311110211420,122210101023210,101044111022300,110302241332230,110002004410314,101012000311412], + 1111110100002020: [110122120100022,111100424100021,110111121011004,103001020104102,100242444300104,110002202001202,110200422113400,110022300021012,112000000223310,100002214210110], + 1000000010122041: [102304340220231,102103440200402,101014424224002,100043000200103,100142401040042,114001032302222,101013404210010,110230000002324,101401304040214,112003011110221], + 1411020222201202: [112002110220340,114040210021100,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,100010031222001,110020200001031,100034021034000], + 1410002000001121: [114211010000210,110200020110120,100003040101420,101440004020212,102234400200230,100000004210012,110202102231202,102112000204313,100224120001302,101000330304200], + 1030012012011004: [100010400022200,102300001002144,102302444110110,103001000142003,110310004424232,100402012200112], + 1042202003423010: [110303120102044,100131031020002,102323304112342,114003222201103,110002022030224,100204011002001,102013301320044,100022204300000,112012211120102,112300000204010], + 1141404023020000: [100004001021111,101021004214202,103022021431010,100003000104203,102101220214011,102114320203000,114001112300001,101003104212220,102120231343021,102311110240101], + 1041400120014300: [110220202124002,102030024010020,104100212101210,111320000001004,101101021110401,101004204211203,110002012000001,110201002040204,110010402102122,100300024313211], + 122420402014110: [102000421131000,114404020003022,103100114000000,100421242201010,114410212320200,112020011110100,102030000221301,103300010110424,103020011430001,112000002000112], + 1023021104102301: [100001201220014,100210000032400,110200422121211,101213311020021,110040411222022,100041120200010,102303001003004,114010312213204,100400020022321,103211000211000], + 1100040012201200: [102020000204032,110000000003200,111401200000040,111202004100121,103230104003200,101041204222101,100024024211001,114031000012100,102110001342114,100222220001202], + 123003311204111: [101222321200012,103211144033404,103103240104001,102123040212103,100204104322122,102100011341012,114130000220023,102314224010213,100000120000202,111100230023321], + 1033101124442100: [100313324320240,100001310421201,110000110021420,110100410011143,112000221133021,100130000010204,102443324020000,101134004004013,110401020100113,101214311020403], + 1024102010130120: [102020000204032,110000000003200,111202004100121,114031000012100,102110001342114,100222220001202,110200000004322,114342044032200,111110020000001,100200024323300], + 214432414421000: [102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102140121410131,102310400240000,101201340300430,111320312222220], + 223412000312023: [102100004130301,102113020210120,102201101122100,100102114100420,101012310342300,102321320224101,100002404310212,114012212302132,100430324300003,114230222331120], + 211012410102104: [114404220000142,101100214003002,100021231022220,102410420230111,102301220210011,102120004001102,102323210221002,103211001400330,102410220200400,103020210143120], + 1002023202310442: [400004112102010,1200020030443142], + 100100002221212: [110231434430114,102340144111123,100140010100100,130011204200020,140243003020120,100120014301440,112020240233004,102144311342041,120422012013021,101040400300024], + 1044010413203120: [103130021444021,100022001040322,101400004022210,110020030024004,102112204131410,102312301104422,100000411002023,102303200241200,100022021041122,114120140000100], + 1400100210120201: [104100012102004,110000010120043,102102011413000,102403404004110,102031024013013,110044020020202,102122410220401,110301311303102,110021232000021,100001140000010], + 1040312010102100: [100004211221210,110201001212001,110200134240420,110403221000002,101201304200320,114022042302201,112002320212232,103310101401010,103140021401211,102404042001400], + 1000300001000101: [100003011041040,103200141404212,114001112300222,100203141001002,114122440000024,103000020103121,101200024010043,101044211032201,100011111032203,103021440122032], + 201034002100400: [110003004410041,100000444104204,100014420000000,102012004013201,100104004230031,100021000021202,101400000302113,112211030201201,110432304221110,110410212110111], + 101101331204020: [110112012140003,112110220202020,112002012030102,111003410011000,100400100022002,110300200044430,110401422114111,112020021110112,112120020220421,110220244403201], + 1122221100001000: [112023022001022,103122221240032,110310022220010,102001000202131,101020401034111,111012400040302,110140021322121,110120202212130,110013140003302,110220002040001], + 1020000002421121: [100200011001220,111202014132111,100003141022321,110201434240143,111030044110010,110041304201404,100040211022000,114000134102201,100420104301012,102110001401111], + 201022410220300: [102020410220200,100013014101040,400204300024034,100402010420301,102022110202024,102010140220011,1002102003210222,1130420100342202,102120000210110,140020100011012], + 1001100100001221: [114203000004300,103140044032100,110322100104010,100032021041010,114100004121121,100040214102023,103033044023040,102403101400210,101000001001104,102100330231011], + 1424104010001321: [114213002340022,120402022102021,102120140212001,114400210002021,103103221421013,102010002000402,100240011000013,114233112330324,100000021022400,144200203310100], + 1403010413000123: [103142100103020,100100014033224,101002204213002,112001002300102,110002402130200,103144111211103,112202002030000,110100001014012,112243034012420,110010344204120], + 1022030220022102: [114022300022421,111210044410020,111420230003130,111310004122000,101221000312044,100400240013333,111001314111000,103100040210040,100210001002200,100001210100102], + 1104301030300303: [111220002220100,100000241020022,101133410300302,132200010004401,100030044202001,110114410003233,140200430112430,110012030002010,110000040024442,101410044021332], + 131420104131100: [110230000000002,110220301202400,101003140322000,110401001002400,103012000100400,110210024220020,114201142324042,100401424300314,102213401111223,100040120000031], + 202204411100110: [114231202331202,100003021234044,111102032220111,110200204224211,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203], + 1111100011232413: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,114100124002210,111122200021102,112400034040002,101041100300001,100000020201032], + 1002000201011131: [114200302320443,103100420210210,102132004132023,102040240242204,103224020100300,110030012000101,100403220022142,101001240310031,100000101022200,114030000024010], + 1004104010000220: [102231130213210,114113104123200,101210210300031,110002021121023,102300040221403,102201100200430,100114021040000,114121300224141,102301100241002,100021020412110], + 1421021020110001: [103132204001001,110003404411303,114410010001200,111211232220002,100112301000311,114000142301404,111301032200412,100210011201011,113030011000324,110100120120001], + 200021104204110: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,102023021321020,102114020210202,114040204014042,114001010044120,101010111033143], + 1120310000031004: [110411324240311,101011034000230], + 1112021100202003: [114031004020241,102430321112030,112101432300231,110213042222211,100320224314301,114202032320004,100040014101440,110321100100401,112200102033440,110100000101440], + 1102000220103034: [110011414240022,112004202302034,100042001020203,100010044300003,114130210231020,112120224040040,103301410110110,102124031023100,100204104320231,114002104020100], + 1440232013001100: [103012024004312,101040040300223,114234004000210,100100001040410], + 1110140020111223: [100321004011041,110002342100014,110021312002040,111101042244210,110124002040002,103110314000100,110023410122402,114302200014241,111204200002001,100002300411002], + 1222102001102032: [110200321303322,100010030100011,103002041402004,102022024000100,102103030210003,114120034123300,100040001230110,103010011401200,100020014210002,114010112332112], + 102121400201014: [111124004101012,104102040011120,114103220220104,102120004001310,102430121110340,101021204000200,102020121102120,112141104020201,101200111020111,110001200422320], + 102010300001011: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 110101402310010: [114011302301400,102304034110400,102100220210000,112000022000300,100003214102204,102430300201034,112030122000001,101102104020404,111222024104240,112000102000001], + 1013400111031002: [110300222104222,100002040410130,100440001000012,100403011002204,110202414214022,111002420031340,112432142020024,101103012130233,102320304030000,101112241010002], + 102003130120100: [100001230201101,101101131132022,100010100000042,104120211242040,112220104002000,102223004042102,110410312121010,110330130010041,100030034303012,102422200201100], + 122040420010323: [114203042330220,102102231400111,100032421040120,101004201001232,100000400412200,100002020101023,111100232241200,100011234202334,102111024004010,103343010113030], + 1031013022303011: [110000322130121,100200001210021,103204230111030,100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110], + 221002402022003: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,103303000112122,102100014132110,100021304103002], + 1001100210002400: [110322104424202,102112201020000,102102220312102,103004204021310,112220102043102,110012310020200,103030120100220,100232224340041,112400002011010,112011001113222], + 212002400114144: [100032041021210,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,102042204000300,100001134100120,110303401230040,110024140142000], + 1120324010000221: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 101031020122412: [100000210100030,110001440041003,100000220111021,101000430320220,100401022201110,101100001110030,102210011101110,112100302012023,100102410403204,110042021100041], + 200422320010040: [100000210410212,100202021212012,102000032003002,104003410010031,103020201401104,110020030011011,100100000012334], + 213123000110000: [103010010104000,102330030243120,102100100210033,100002200014412,102140142001210,100141004030100,104130442103041,110000012124020,100022201040213,110221320111003], + 1002203431222130: [103241000112010,100034114100102,110330002104200,114000000030300,114101012201420,101114420310142,102112100210100,110011111104432,101300000340401,100011301210241], + 140000130120401: [101000211032200,104100001242022,101210000300320,102120022000224,100204000410301,111213130001022,101030120340201,102121444003011,102240121302011,100401400022202], + 1020020030010202: [102202204040010,103333040110114,101022200343023,102000000221222,102011014001111,102331201001140,102101001342004,102103001414002,102022011101012,103222024031400], + 1000120402321010: [101010400300001,110002211302010,100040004310211,111101144403004], + 1111020032213240: [100404210032112,100121010022020,112100322040040,100112134030041,102000000224001,102013314023030,102103111403000,102004044000100,110030121201003,102110030210103], + 204240141002041: [101022000322012,110123000122000,110212010000000,100200020144110,100230421212431,100101201021044,112400000200011,102112400224210,100400230020212,110440401003310], + 111403302134022: [102001144013040,100012111020031,112203400410130,100302320420012,102000404001103,100022211040222,112012220214324,110030400140000,102242022004100,103043001412001], + 1004010321040430: [100104100022200,101010020320410,101120201100110,102304021004012,110120001121422,120000042021310,100100030402102,100300414022102,102100234022140,101024124000000], + 140113212104010: [110211002121001,101442031012013,103202000101303,110020232002103,114101004000301,110012311001312,100241100430000,102102400314222,111022022233042,100120020401013], + 1103120200120021: [110134044242442,100002302213022,101030020022301,110120400022300,100041044101100,104032420010121,100121104031022,103004030121000,103212210100022,110144200000122], + 120101001020342: [110210400114203,100001100104021,101101300010301,101122200300011,112210201100012,102120200221403,112001122302311,101001211004233,102303011002000,102314100240010], + 1002132023000020: [114001204020002,114230000001013,100022211001110,112000002310000,100010201030300,112420104040020,100403430013124,101002100322211,112004000230002,110220111110412], + 100000200014040: [101242011000124,100202340430142,114420242311240,110141001301302,101200200300310,114011402303024,112124000203110,101011000320010,102020004000040,102110201342301], + 1004311210021102: [100114004100001,102012030213014,102003320200411,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,101100120334014,114233002340141], + 1240000303230010: [103204424022010,110304304420001,102110402001413,102131334020220,114210024001201,1031024222000122,200003020011141,100020111230000,114102010224000,114301012300202], + 1001310301020000: [111201000013222,114004104012300,114211202324143,101203211010000,101200314040213,103302140112020,114003200023323,100012014300020,114110024000020,102213214110012], + 202000424030110: [101020000300112,100002020410020,101000001111200,102012220241003,111120214102000,102113200210140,103130020213032,101430211012120,102323204113210,102403031110014], + 120121341000001: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102401200230234,102241230200120,110201111200204,110400104222012,103302024010240], + 1400200011214220: [100002101021120,102102012003220,102313114114000,103030304021102,100000101001431,100104100422041,100001044241012,102030420223110,102120200201042,100200011000020], + 101332113114042: [110144240011020,110011011212100,101134030011000,112000244001222,114441114123013,103220211421421,110123230124040,114000012334102,101000014012442,131000001020102], + 1000030222202004: [110221204243141,100400220010240,102300221002020,111010204401023,100000010004124,110312300040010,103120000104021,101220200040320,102102001402012,100124221021011], + 1144441010000220: [112002204004403,103013001430040,100402021000101,101104121111112,102141032001100,100100220024041,114000000023404,103030200142241,103010040123432,102112322004011], + 240201020200121: [111133110023322,100400024103122,102000021101201,112024200220201,101001440303020,102000124010400,103002224002043,110140141201202,112012030233024,114201004001120], + 121221411100014: [100012320001320,102000331120104,100232214222204,110203111111000,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 1010044020430310: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,114032234033303,112400034040002], + 1020000200222300: [110402402020010,112421302011301,101023431001040,110001210120320,110300404422030,111024100022301,110200310012010,110102110124010,100000404341421,110000022100112], + 110302143030000: [101201004044021,102422122000001,100040204202102,100200124341000,110021212130000,103230324024140,112120022010120,102113111410044,101042130310010,111202014413200], + 1031222012302021: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,102001014013004,114113014000010,114022100010000,114321004030021], + 124203022000303: [103100221440010,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,114201104114111,101041001003300,100001100411302,114012444020220], + 220102220004103: [102342110212020,100024024200032,221123404200214,100021024100301,1101210010010223,102042000211301,1300004102024404,100421001000020,1300102043130042,1333020210312100], + 1113300400421010: [110021000410432,100042304102210,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000], + 1130010120120310: [104130242103012,100002131024210,102410001402210,102000101132400,110000102100012,112023140212112,114000312301300,102120214001422,102400231404200,114200422324023], + 1000412130010144: [114042102330002,100014001041000,204020131034103,114113404003030,102310030240210,102100204001030,102200400234000,103001324012043,102110222004041,100102240020100], + 1400220101000132: [102023000220003,101004204212040,112130030422202,102202014030001,100444021001102,100020404302120,112013400220104,101022424011430,112112002014120,112321041130330], + 1000141214101410: [102101320220430,110100010000102,114020444100202,114020232302203,100111120012323,100014044200222,101001000321032,101124021110021,100023100104410,110100112141141], + 200000101104221: [104132340011314,102203304123030,114012040020310,110000212104130,110200200004002,101000040320021,114131040224332,114002210021300,103230114000201,100123020032031], + 204143214033312: [110000212101040,100014401210011,110021410020203,110411044221200,112024232302040,102423031402210,114013022304040,102021311100042,100201020140421,100004001002300], + }, +) diff --git a/.vim/bundle/black/profiling/mix_huge.py b/.vim/bundle/black/profiling/mix_huge.py new file mode 100644 index 0000000..0d21755 --- /dev/null +++ b/.vim/bundle/black/profiling/mix_huge.py @@ -0,0 +1,7692 @@ +config = some.Structure( + globalMap = { + 103310322020340: [100000031211103,101042000320420,100100001202021,112320301100420,110101024402203,112001202000203,112101112010031,102130400200010,100401014300441,103000401422033], + 110040120003212: [114413100031332,102101001412002,100210000032130,214000110100040,103031420121210,112114222301010,110133330100020,100001001203011,102210220202130,102200120234012], + 244402003102200: [110212012114431,100001140020000,100012101223021,110031301200114,114002020044120,100021004302202,102202200240222,114102010220042,102021301441201,104103102103201], + 122013242003223: [100014100100001,102100004130301,111120004100414,101034024000101,100021424301033,102003004003400,103340410140122,100102114100420,111012202111021,100103144302200], + 1120010021223330: [110332202020000,104120130021200,112421004012141,111100220022101,100021104201130,102224410201003,110030021010001,101300401002320,112001321113132,101110434020010], + 214100003030021: [102122000214201,100242141004122,102024240221040,110320011200230,100011114300334,102303004110022,100110201042101,110134201140010,112101044000202,100040024340013], + 1000220132200020: [102231130213210,103214010102022,102000402041014,100043324210140,100023024211011,102404021403141,100010004313001,100003201021001,100122020011232,100121031014040], + 1200041022422001: [100021300101110,103010301402112,100011401031000,100020034100101,100122214300222,103134021420204,102042210220100,100103200021130,103204214043011,103020320102002], + 1000232101122040: [110011414240022,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231], + 110002000000001: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,111243002222100], + 200211022142211: [102231130213210,103214010102022,100043324210140,102324014112020,102022004012201,100023024211011,111130210020000,102404021403141,100003201021001,100122020011232], + 114121130201204: [100040031020241,101100104000222,102324141000002,101010234004042,102041224010012,100411400030100,100002000102100,114340102322021,112033124022002,102120221120200], + 104101002123040: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,103022000123142], + 241101103112120: [110333404433042,112240002043300,110021100132240,103104221443021,101100304000101,100202210410011,114402212310021,102411011111011,103020141414101,100113001040420], + 1004020030320422: [100022214203010,110310011234031,110123111300000,100020031041304,102120004000101,102020002000420,110100302010110,100422020030044,101220100303222,100002220411002], + 1041010100001110: [111124004101012,114103220220104,102120004001310,102430121110340,101021204000200,112141104020201,101200111020111,110001200422320,103210114021430,114223242332100], + 121103011132000: [110021104200001,110441140102024,111140124100100,110310020040401,100002024303323,110030002130201,102103320232241,110302000400221,110111001302000,110210304220000], + 1042022101004111: [110021104200001,111140124100100,110031301200114,102103320232241,110302000400221,110111001302000,110210304220000,102033124000111,111000212204213,110010324410130], + 102220010222003: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 1442130103121040: [114413100031332,112121020204344,102211030203010,100210000032130,214000110100040,103031420121210,112114222301010,100001001203011,114214404142034,102210220202130], + 110204013021024: [110301402000211,103030201402004,110420104221220,103200004030020,100320014310021,102000110221110,110240214432004,102122141142000,103041204010000,114432234113040], + 100001440133234: [102111040210242,114110000002430,102010011412143,100424220032043,114013422300032,102021004001004,100131414303044,100201010110320,100000221030033,110101101120302], + 114002033000020: [100001121002141,102000040201003,101132131221321,100004440004031,102002011033030,110310300003402,110220022132003,101001000302103,110044112100220,100010120031210], + 112123022000131: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,100002100124101,102304100210334,100403210010142,112003100241220,102204304000304], + 1143001230040001: [101033124003122,100313144100202,103201004024412,114014222302011,103011020110211,110203420111140,111003412201430,101411214000203,110222422042203], + 1002403200000231: [100122004300410,102140014001101,102000104012232,112400202020003,102000224000011,114122134140002,102101010202004,114400202310210,100042030201341,112233332034000], + 1003123041101031: [110043132100300,102220120203200,100002004201122,110132031134031,1320303202002000,1321200010022312,110130330012140,114102134002330,140403400240000,100003230110201], + 242220101103400: [111130112100210,102202200240222,110131044200121,100100004102234,110223332120231,100001024301322,114013044102010,114220114140122,101023021034304,110200210110130], + 121030040400021: [110011011212100,101134030011000,103220211421421,110123230124040,131000001020102,112200412033030,110420001000202,100102110402220,110412310030001,114012022302022], + 100104011300401: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 1004003211220032: [102400100230000,101100300302102,114120420223002,100002210201212,102302020212101,112410424012010,100030004104210,103030201434002,110232110004010,103021201430000], + 223011102020040: [110012420131001,100132040031022,100020310000200,100220004030002,110020002003334,110014000442004,101441204020001,102014201411102,103231320100042,104121201242032], + 100200110422111: [103100221440010,114003344011001,100021101000000,102140000212141,101014201030204,101203001010111,102424114020143,100031201030102,101041001003300,114012444020220], + 134300111030221: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,100021014100124,100130244302034,100122040012210,100014010104404,101020104000001], + 114001000330100: [401142101000022,400114001102410,102100000012031,431232000323104,1012100023110102,232023302143031,120200122422404,1040100003200241,111414004440203,1020220210340010], + 211222012120321: [112000112000031,100121214300000,102123214020000,102022124012030,114002320022312], + 1122000200402140: [102401141113031,103042420143020,102304314110202,110210400002012,113032012204012,112310002020302,100204311000400,100403012200201,112002111121013,114211100001224], + 332000024200013: [102120010220042,110103312142034,102210210312302,101120100320100,114140014100000,102110004002301,100130020001030,112022100213011,100101231202322,111210020001013], + 120041442412123: [102133011413110,111001200041102,101223020300040,102034324000220,100210000032400,101230020303000,111340130010314,110200422121211,110214220002020,112220414010040], + 1011011320300100: [100102024301030,100111134302041,100112234000041,110004244214343,101002101020003,102214021120301,114221224100022,101330210310300,112003021111000,102012141134211], + 220020021000101: [100301001000202,104101112102403,100023121223031,114201432320014,120000002023011,102133120200123,101014020301201,102000031130401,101010111002141,114123124143310], + 1024011342000021: [102001001130100,111204203012002,124020002020003,122222120003214,133332002141010,144000013213001,124010030100142,112310202021010,110014020020011,100140044020011], + 1131011002310011: [102230040200031,110122001010214,114043140010022,102101204000010,110022300420031,100100401040001,114230230000123,100222024320003,103323001400013,114013012300240], + 1142024120224002: [102203344011410,100021324100000,102103430210003,100012014300120,102414014022212,102012220241003,101004411032102,101430211012120,100204021000012,103242044020102], + 1100004410231120: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1440220030001122: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 121414301110004: [110144240011020,110413401240204,112000244001222,114441114123013,103220211421421,114000012334102,101000014012442,100312401002102,111022210021013,103110001420121], + 130004004220120: [111240340004003,102021024000010,111101222244030,112011012004300,102300010242330,102000401120420,102004012043122,114011102210402,100120001014040,114300100000041], + 1013303000401020: [101000024004442,100002100000100,110130030020000], + 220041302111231: [100002014200331,100034244210020,102012004000003,100411000030110,102041201121230,103011014042120,100000030120242,102110400210023,101012204221200,111212422222300], + 1000031031200013: [101302134233230,100000130010033,101030404212000,114102224000201,100022021041122,100020001042002,100013011020311,100120041020012,102012204000242,114143024003322], + 1000303301100221: [111333104124202,101000304014100,100040011023101,110301030010140,104100002101431,101123232010002,114421242204443,110100222001100,103102000121300,110010331230210], + 1410211342331412: [111002100000102,114021010040140,114222302321101,102101024002121,110014024202014,110220130100010,100020011030330,102404221402210,110203022032320,101222014230110], + 1411020122202044: [100141401021003,102010000231120,101000400320211,101001010300214,103010020142023,110132002212113,110010100040100,102101002002002,111020302232033,110224030114311], + 101010042001102: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,102020004000014,100000211023014,114144014122041,100201111002224,101410304041000], + 204204011102020: [100212030414010,101400004022210,102031021441200,101200020303202,102301324112020,111340300010010,102013224003020,103013020123142,102240344041020,102140202001100], + 240000420312002: [110002004410202,102103114000024,102240221000001,112041002002124,114000024101102,140343100002103,400200234320200,100020124204330,100001424102041,100100021040230], + 1030000001422430: [102343230224321,103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,100001104301200], + 1104234221030010: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,111201100011141], + 121341130003000: [111102004100101,102021100220101,114000040010421,112042110220004,100000214240410,100433201004014,102301102004413,102003000220111,102010100204023,102414040230400], + 100101220022002: [100010024102110,101041200320012,114303400002201,110204211000331,112121014003422,114430102311021,100240444100022,103004411424400,111014002140322], + 1023303420422001: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,112030010234104,103414101212410,100123021223100,112302011102312,101020030343002], + 101114102124321: [110403244220202,103113014002100,110120400402324,100402340010310,112010020211000,100102200000211,103030201240100,102300210210222,114100332340213,111031030024010], + 1422302020100030: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1121202400231120: [101211201202134,103120104030100,100004000100101,102020030220200,110031404423144,110003434410403,111110000014401,100000204312321,101004000304012,110300121220201], + 1042001221000013: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,102021241324040], + 1102433033042110: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421], + 100103201011144: [110102401201204,102400100230000,100212030414010,101200020303202,114120420223002,102013224003020,100002210201212,103013020123142,102302020212101,114303340000001], + 240343043023011: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 1020301032424304: [101302134233230,100000130010033,101030404212000,114102224000201,100431000032001,100020001042002,100013011020311,102103331400000,100120041020012,100020001041231], + 114200022220040: [100014100100001,102100004130301,111120004100414,101034024000101,101243024011000,103340410140122,100010021221221,111012202111021,100103144302200,101414100300221], + 142041243300010: [102102002002242,101130104022002,101230331020012,100004244210201,102420124024204,122312222240401,102041014011340,110200130004300,100140101012000,101400000302141], + 1002203102111022: [100434000032200,110004020020022,114032412303041,112000301122111,102020130212402,100010001020000,200000020021022,114321212322303,112302112002211,114202002333330], + 1110102121041413: [101012310301211,103112200123144,114242304004011,102302200241241,110001420021023,110201040003402,112301421130130,110020012100302,114412202320010,110021030030202], + 114020200220012: [102010114022011,103340041403223,114002200000421,101020321002002,114302210010001,114030004104220,100104004301000,102443211401140,102301041000014,100001111201214], + 202011212123200: [102203301123001,103210400110122,101112020300011,114104302341000,100400201010000,102244400201444,101010001000121,102304000220032,102002131132000,100000031024222], + 201032103003132: [110212041114210,113210300100002,112404024011000,102131034000220,111212124130140,101002014013010,103402020120010,112110100230023,112003044002004,103020200102200], + 120222032001012: [110121100004131,111400214442024,111122200021102,101041100300001,102140011440001,101011220342010,110200004221020,103114211441300,110000222010004,100114000101041], + 1100013040001020: [100003031030034,101001044211204,102100010233022,102120400212001,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,111120034400000], + 1001031021300022: [102000020220000,101020104000040,114412142320040,100003044100101,114012402332300,102220211122102,101010110302010,100032121020101,100013224313301,100012244240030], + 124000010122242: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,102002204001140], + 1121211020204132: [110020301320101,102014001130210,110401041140300,110002302201420,102202001120002,110200010003201,102421004041011,102240040202421,101001110300111,100130004300103], + 121320202004301: [111014240041102,101100004200110,112021221130424,112200041103002,110400040402041,112001011112202,100112004304314,100232041001122,100223030001010,100104231000300], + 1024242230240244: [110322104424202,101202421002031,102102220312102,103004204021310,112220102043102,110012310020200,102030130241300,103030120100220,100232224340041,112400002011010], + 1002100010130110: [101400001011042,100002011020211,100100110010010,111110002213142,100002131030310,111102214100400,103220201402330,102321000221140,103113124030200,102110300311400], + 200010402222410: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 112300020202111: [103141411420221,122102400312000,110002100110002,1340024302404122,100002001043010,113110330121030,410020013004430,1002300040412102,1210020204140003,123211320000102], + 100102203210034: [102023021100022,111200302222011,112040241120204,111000022200000,100010011232324,110220030000133,110000330430311,101211221014003,103111230120100,102221220200021], + 1021001032000012: [102020010203200,100011144312020,102011204001010,102001410221023,110130201302200,103041021430301,101100440320434,114000402211404,101000100302003,110000030430422], + 1031102424140120: [100011010414200,111121102240240,102002121101110,102403100202003,110000100041101,100400000010033,100101211001320,101141020321000,103224101400400,102000002043020], + 102001021434201: [110131122012210,114010200040441,110032014420232,100000344100100,111304022202211,102302011002003,102011021121200,100012441030002,110222042022111,103131004002200], + 220100132400104: [1010400230221020,111320012221132,102302144110440,114140004123122,102143202000400,111020002202333,101321311004010,102110241342210,114122302311011,100002320411400], + 1110121023020002: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 1042030001044121: [101230040301234,110033032100000,102303014024221,100100224304110,100400432200321,100020200012311,114140144122230,101400201102014,100000020004004,101040040303102], + 1100100224104011: [111130112100210,102202200240222,110131044200121,100100004102234,101023014004000,110223332120231,100001024301322,114013044102010,114220114140122,110200210110130], + 212002042300000: [100030220100110,110011202100142,112400102013231,114012002212100,100002114314022,114203110001031,112030122000211,111004012200210,100413131013301,110001102103432], + 221001240043040: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,100111221011100,100023104101340], + 1040021200420124: [100042111220111,112220100202000,100042041220010,100403211010100,103240301400123,114102210214041,100021300103041,101010204000242,111334004121414,114101000213410], + 1101110030041022: [112013300240132,114303044030300,102340044111034,100110021021010,120003030010112,114200212320001,101020240313001,102330220242002,121400042034110,100033201030040], + 1030000302042203: [102110231441040,100113214302002,110000002133140,101233341022410,103021000144000,100100124100031,100040204240000,114100012313002,114440440000034,120240000020201], + 1403121230220020: [110200400000020,100324140141402,100002204340200,110000410001034,111140000000000,103102224034002,110022002120332,111110230014001,110020041310021,110001001200323], + 203110414022010: [111240220002100,110030344201413,101001014001021,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200,102202111110404], + 133032004200001: [110314100012011,111020422203010,103121124002320,102240300202212,114140422203401,110210420000001,102210331401030,101102104000100,102031010200122,111104202112001], + 1120000102422014: [102140211342044,110020301220411,110100200004404,110131142010001,101032441003040,112004400210201,110004102230402,112021004020000,101012004001204,110420001344420], + 1000030222010034: [100320031001240,102104320220212,102100200232044,102434104021201,102300004022020,103003301240122,100210024101140,112220011101022,101000130304001,103020024043010], + 300210002300114: [112100021100243,101123001100112,112003002001002,111000200012220,102120100230203,100111124101112,112001010233001,103313021401232,110430034224001,114110200221240], + 1421020010140012: [110010002014100,112030001120220,114231034004040,100100301202103,110301021331320,112001100232420,114020244023001,110342014420100,110200402220240,100114200402104], + 300310000040102: [110301222101110,102023301102400,102012204010044,104120110010402,111010214402000,110401440001204,110204310112224,110303104423010,110340022023321,114010200012200], + 101010002031100: [110324020012330,100001134302201,102100011402012,100020221031000,102032220220223,114042004020130,114030400021223,102022021100102,103301304031211,102000004013440], + 1032221241200404: [104120011242011,110020002104100,102000301101102,111122200021102,114032234033303,100000020201032,112011204004112,100003000002034,110102022000200,102200034040443], + 1131211404001020: [110200100002031,101420310301020,100020330100100,1002443410030003,111103224103001,100011231042030,102100141413100,102110021342213,112002310211210,100010031020102], + 132013120010104: [111300232202103,102301401002404,110122120100022,102012004010000,102400100220000,102001104012021,100242444300104,102002104014323,100401241010122,100010010102122], + 130000310202012: [114200044114004,102202010204130,100220101204311,100002000102100,102100430233212,103003210141014,110421222011222,100201000410010,112110202014400,100400030013200], + 1111023010042112: [100000201220420,114000030021040,101002011020001,113141112413242,102021111130104,110401030101001,102201214011331,100013011043231,102031114002042,112302012020342], + 121010001111310: [101400220300033,100012021032040,102001130224032,100012021040320,102130224023220,102100401143124,100010001030140,102110101410144,114142204121324,112102421102022], + 1113001011001223: [110202400003213,114112014140000,110001012101334,114200124000134,100001114302424,101222134011002,100003011231420,103230231200010,100431031014023,100120120401041], + 142034000000112: [100310304310342,100010041031020,100042400001023,112402000200101,100020201221000,101010020301243,102030001103000,100040021031201,111010130022401,112140214000020], + 1012401424032042: [102401121113302,111201210000103,100101101010100,101320040302031,114010102300010,102321044112101,102000014002000,101034014011332,101203011023020,100021231020200], + 1103400010414230: [102010114022011,103340041403223,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,100010031222001,103001114001210,100001111201214], + 1400000301203010: [114122134140002,103012011434022,101032010342004,102322330243202,103101411424112,100100114103001,102134131144121,114030222300123,102102301021403,114103402201140], + 214024214401412: [102220242000201,103010021410203,101000304214111,102120040200200,103202220100114,111100132103413,112203220204012,100113040003021,100010204200010,102410134022300], + 1221011020200210: [110041030411301,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,110033041200104,102000221442214], + 1000120020110040: [110200411140130,110114120120100,103124210100201,111014200024034,102301002004242,112020014000340,110021404214210,101003014210212,100130220400031,100210024300001], + 201001342101001: [102001444000222,101400134043222,100010400013202,114340312301134,114310242320310,102110021401100,100113201011032,102230000204000,103102044031002,100011421002120], + 1000000133120020: [110230000000002,110220301202400,101003140322000,110401001002400,110210024220020,114201142324042,100401424300314,102213401111223,100040120000031,102002104011244], + 101400102142302: [100004211221210,110201001212001,110200134240420,110403221000002,101201304200320,114022042302201,112002320212232,100002210413202,103140021401211,102404042001400], + 100203202010202: [101000114000402,100043100123004,102014014000100,112212042024100,112410322024122,102300110221100,110002332102000,112001111111212,100020104300430,112041020221402], + 1011401013024410: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101004411032102,101000020302400,102021014012210,102244221114031,112400000200011], + 131012202321232: [110041030411301,110001041213031,103301210142043,100002024200142,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002], + 100303010210441: [102304034110400,100043010120010,102101124001310,110030110122402,102430300201034,100004121030301,102143432000102,101031001004201,114001110033210,110120011014412], + 1111011030001020: [100032041021210,110001041213031,101110044200100,110414300030001,100030020011022,111202012222402,102000221442214,102040041320010,102402104022000,103203401400132], + 1420144022031000: [101240220300022,102200130202201,100002010014040,100022000410041,103020000102011,103001031420203,102301324112020,101040421033204,103130011441212,102240344041020], + 104012440012200: [103000001432331,110131110401120,103000004011102,100120041014034,112111110422120,102130300200301,100121100002240,110224032100120,101104220322100,100001001201301], + 120311002000121: [101220014012231,100104024303320,114422004110130,112210132031001,102010310213001,103244320114100,103422430124013,100121424231222], + 1002120002022122: [101201220300012,101232104042101,101220404012304,101000304000400,102020204010341,112020100202034,100140410020232,101221004040204,100412414304143,102110404001401], + 1040331220001000: [102041310200042,110301030010140,104100002101431,110221000111302,101010001002000,110022140120012,111330020002213,102011440201423,114011212320331,100002204310140], + 142030323441430: [110020120023302,100043120003103,110002000410040,100433001014104,100000004102121,101022411030002,102000021442024,100030314100004,100404130020000,110400302114103], + 1020000001100400: [110001202000032,100024204211200,114200004110244,114230412332011,101210101010023,114422114140221,100001211042341,114032104123010,114303122321110,114330204034200], + 1001130242231402: [100042320001030,110024001010110,100100014300230,102043104010014,100001004300242,111120044100110,102200201110443,114240314000100,101002411030000,102002324011002], + 1014202010302102: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,101022440300020,101402010301000,100000220111021], + 144100013100013: [114020200020222,114330002323002,110213022100021,102202000240014,114424424144210,101224321014333,102100121342000,102204321003224,111222002224302,114100104030132], + 101213002101214: [114014104033302,102120200221403,110323110104120,102110314001121,101020104000300,114003402300102,111202104100014,112402102021111,103344224020241,101002114000424], + 1012442110402240: [104310001300102,114021132202032,112012004004324,103001314001021,114122220031004,103040024041111,101004004213014,111124002211203,112034420220403,101211231023001], + 1002210200000101: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,100414004300100,112102232300222], + 102400210400022: [110010334200041,100001024102001,321114010100340,102322101000200,102110100322014,110413131000201,100000100000432,101020021114310,114200104110001,100010314202003], + 1043003020000104: [114101024120020,102004011440212,100000001021013,100011204300012,100101234330123,110024000432310,102012101443110,110032220022103,102102104000102,101210031201114], + 1243002022101103: [110203120112002,110000002100100,102221410200012,110213401202110,102300104113403,102213224110010,102300004112300,102420024020120,100040020001022,102141140210200], + 1421204200010112: [100140101044224,101120004023340,103040031403031,101030014001004,102012421412000,100010044300131,111010130002222,110200300000010,110144102001321,100020304102100], + 1003013101233010: [102400111402142,100040240004024,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,120020211120020,110230010010142,101002041000124], + 101432210141203: [100310120141002,102324014112020,100301421002002,102404021403141,103022021431010,103200020111014,100010004313001,103104200210410,100002200410030,100121031014040], + 1104003002031130: [102420020200202,1023413000203201], + 112011130023123: [101020014011102], + 1102310021242142: [100022041001002,111240340004003,102021024000010,111101222244030,114032424122040,112011012004300,101021401003220,102000401120420,102010410213111,102004012043122], + 1002120410241114: [100222000144103,101240000310400,114022002211402,102311020240221,110211000004002,114101402200030,100000034200300,100010124300001,114200022322000,103133001441320], + 1022312211002000: [102123140310122,110101214402023,110400014224001,101410030330122,111000144410222,100040001022000,100222404342030,112204022020043,112320100202120,110222241300101], + 1402011002013421: [101043042401310,104001222102120,111412020003222,101113012101010,111212022200012,110023132100402,102022102010211,110231202040203,112112410232001,100021220002020], + 1010121032032211: [100002024340032,110000011220401,102112340210300,114100214000010,100000104201200,103000304010211,100010000002132,114100042311312,101000014001020,103014141222013], + 1020030002101022: [102040431121110,100400002201113,114111100021420,112024212301420,100300310140241,100240134323001,102111024000402,102001011100100,114402104142102,103312241402001], + 1010240311230422: [110200400000020,110203131211112,102301004110004,110021100023210,110402420402001,103122000100403,110000112100402,100002204340200,114103412201420,111140000000000], + 1401004204000003: [102102011412000,114204030210041,110033101044200,114440120000030,101002004014401,100400224323100,102112112004300,102010014001001,102000001440004,110321100402021], + 244331203200002: [101221422120021,100001000002210,100400320033201,100004130002301,101210300302302,102020131413423,110020204200342,100000220011133,102144012001113,114431110001011], + 1130301120301001: [100401140034220,114002002300222,101242004043300,101013111000000,102102131340404,102420041111041,112004312310301,100040121030000,102000404003020,103111020223101], + 1002000403000204: [103343014022202,102003104011000,102220330202001,100022200120040,103002020110334,101021134012211,102140200310400,110010002103002,100220034341000,110200002121242], + 221400100111330: [102031100200300,114102134122020,110024102010002,103010034004303,102023032000000,102101440201242,103000204003200,100021044343014,111433000002144,110001002002424], + 112133300441020: [110120101220000,101040014002010,112001001133213,102000144014000,124204212002003,102311101002242,102110210210004,100000100412410,100012441220104,111032320020122], + 133313202104310: [110013334202122,103330104030103,111200002220003,112043421121002,102212030201100,100111401011110,102010341440030,100001120100002,114001000024011,101021024012041], + 100143040212102: [100422314300200,101210241204043,100123011004113,100420001002101,101134224001001,101021204000200,102321234111310,101200111020111,102000024000002,111122222240232], + 1432344120130401: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 1100030203241342: [100440104303400,102122000214201,102220241100202,102024240221040,110320011200230,100342024100204,101422034042201,100011114300334,102300001002140,110040122000002], + 1011102003042024: [104110021244203,102224101113104,102103022002001,102102224000012,102100102001032,100142431013000,101000031001011,101100001102230,101010130321200,114004322330012], + 300210041431432: [103114001441122,100422004320024,114211110023303,111000302230100,114044144020400,103001101422012,4000113102314022,100022204104123,1400100000042343,1002411322210040], + 241241343121111: [102021001132040,100032201024101,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320], + 1100142404020120: [101210144014403,102111420233012,110000020022324,100020231201012,102210424042300,110220032120121,102130240221020,100101101020002,114442102312001,100030201024402], + 110001043032202: [114240012324120,101022011003022,101240101000020,100003101003001,102313100240202,102000014002101,102110422004402,102100411340400,101300414221100,114020210020424], + 1100103200140000: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 212420003003124: [103000001432331,110131110401120,112111110422120,100121100002240,110011010001020,100001004340202,100220100432201,101000140200002,110140001201040,110001041310202], + 1041144140041401: [111120214100003,100014131222022,103110114004210,113002020130400,112012112001000,102101404000324,101142141144040,100101231202210,100003001223010,103142204001221], + 201023043021424: [103001024002110,100231114320100,100001000002210,101210300302302,110100012120201,102020131413423,110020204200342,100000220011133,114013012240011,100010104312120], + 1011412300010442: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231,114022400020320], + 1130200034001002: [112010102000041,103210304032003,102130224131022,100000201034001,110400011140402,112011220222001,111230204100010,110023022130322,110022222231002,103110100210212], + 101001320111143: [114000044020204,102320000221020,110142020400012,103131420221204,102120141343312,114321114032200,100142011022211,114230344103210,100030020104423,100102011010000], + 241102301203043: [111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,100104100412020,101020031030240,111204000003031,100012004110024,102142000210040], + 100021101400201: [110000101304203,104121412100011,110040020001022,101104020300301,102101004000011,101401001010021,101200200300020,102011200213421,102011021411140,100000001020100], + 1041203303120002: [110010334200041,100001024102001,102110100322014,110413131000201,110020104210120,101020021114310,114203002330010,114200104110001,100010314202003,101013220301033], + 122400010411021: [103100221440010,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,101041001003300,114012444020220,101414214021020,114412010002302], + 1143000322124010: [110041042000232,101002400343001,100032400410212,101202321024330,102303000241003,101000001002320,101310201000040,102004341420021,100012101001312,102010334000140], + 1040230013042024: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 222004201002140: [110313002103302,112424204040112,101000014000004,101142310014123,101430401010120,110102410400023,102120220310102,101010200311020,111211214133000,110304102022001], + 1042000233033310: [101000004000241,100120000410020,102311000240202], + 1000002141204230: [111240220002100,110030344201413,101001014001021,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200,102202111110404], + 134224341021441: [101210320301302,100440024301100,100114104101001,101023221000031,101400014040400,102012034000402,103341124011404,102100122002001,101000011021414,114101000221221], + 212200220320113: [114423002314000,114040002210432,100010040122204,103314044033003,114102224104002,102001420220112,114422404110312,102403144000120,101033041032041,101010010300020], + 110100002004320: [101000040320021,114002210021300,101401300300011,100032001041230,100141120014242,113000201000000,100142114304120,103031014003010,101001021032110,114400404121002], + 1411200112202131: [110030002000422,103100014031411,110000300424304,100032121024110,100011004343022,110401140004202,110040002034100,102402330230011,102022400211311,110203210002230], + 330234311421104: [110443010102111,111320004131241,102020101324002,102401030202031,100210031004220,114140304122040,111321012222400,102000104002003,101223000300000,114201100210120], + 210040200410202: [110010000111020,100430014323000,102011041320000,112100021100243,101240110302200,100012121040101,111243002222100,100020411020310,102121401402131,114030012302003], + 100000040042044: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 1224441200202014: [111320012221132,102302144110440,102143202000400,111020002202333,101321311004010,102110241342210,100002320411400,114201000004122,100143034304100,114021002331014], + 140222000310233: [104111102100000,102012201321104,101021004000000,110130042014110,103012301401041,100022130100210,100001020002400,103042224001110,111000230041031,112204300204013], + 130101221040100: [110410412110241,100130124030404,101021121112112,110101002012003,111131132101000,102300131102042,111121230030002], + 1033022310023442: [104120001244220,102202300114223,102310000240000,110301034241300,120440001302100,122032310023401,110113002140210,114331204032013,112042402000000,100002010000241], + 100204342220311: [100010014100021,110403241001010,100101334233020,103120110111300,103202420103102,103004330103000,102002424001223], + 100044003200110: [100021400101221,102241341113010,102300020241001,114100124100413,104130301242304,101001114012114,101141400302200,100002044101122,103342424024214,100100021040420], + 1002131022022212: [110200400000020,100324140141402,100002204340200,110000410001034,111140000000000,110022002120332,111110230014001,100210200034304,102032020214001,100301101000021], + 122003200104101: [110033000022043,110100200030100,104412212102010,101230004040022,100000411231000,103140021211010,110132020031210,100020140121034,102340211000200,102300231000210], + 112200012414342: [140400400201014,110001212100204,103220130211414,120020020010400,101100211042114,121022000104032,112101102012030,111201122241213,142100040004101,100002244100310], + 1014202212322031: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 130211322041021: [110311022103222,110302002100013,100210240412200,100000104343000,101140211100200,112301000204230,112202101100120,100000110412000,100034010000110,110402404222022], + 132200002220122: [102100441341013,101440004042202,114201102342110,100100204101010,114101200210030,100104004100400,102002331440012,101223301020130,112100002302240,101430001014014], + 110230202100302: [102012001130022,110040322000012,100331124310011,114102222344020,101042020300000,101220201204012,110042104411102,102142101121010,103200211200414,102111111121420], + 1100244431221122: [100032000002120,102313234112000,102000000220040,111101100020030,102014024011240,112022330222011,100030201220012,100203401002120,100404024103100,103144000112000], + 112120203210001: [101241200300411,110111001300001,110200012120122,114000102330022,114021104100400,110000430001014,101214400301420,112420200202001,110122201304044,112000004001011], + 1010021212012040: [110101114200020,102144201343034,112132120202010,110002201320001,100430010431044,111020122230001,103040201222041,110111221000100,102341131103201,102100204000340], + 1101003002401011: [100000041032002,141000211410012,110101322000312,103002420100102,114000204013024,110101221001401,111044114411101,103423300120104,110412140000033,103021100002140], + 302220212000441: [110023342101220,101001421031220,100021004310222,112220322030220,110202222043022,110313312021120,102223400201104,100220214333200,110330234422000,111000034110311], + 120200310232204: [112000210212000,100112001014144,103310140140002,101310340314200,142012003022120,111130114102040,100111100000100,102322104114020,100010131001221,100013201220121], + 1020004042003403: [100110400404220,114221032331220,103200104032220,100212031002000,112002004002011,103100024001400,112400014020404,102000020201240,101012004044003,102021010212032], + 1114040203024320: [110020120040121,110000100022040,111021030042411,114004142244000,110131011000142,102401010202301,110202012020000,114240000001020,111110004101041,114132022312030], + 1141211203210210: [110301301232014,121202234011000,102140002000000,102124021023300,112444304040204,122022100000222,100003024211200,102102402003021,114302402321024,110202020004003], + 132004224340023: [102002120203400,102000221101002,102000431130020,103120004004010,102143000210010,111104404100200,114432224142000,100202234320210,102330124110411,102112400210210], + 124200241310040: [110001121012020,114244444114012,110404002114232,110032330032030,110032230140020,112224000203234,100404112201001,114141112324244,100111040404120,113431040101200], + 130014011300003: [110310044430300,101010021020013,110200020001000,100420104100222,100401022201011,100030111042110,110032110010141,103302000142020,102010321104413,100102210402003], + 134414300403411: [100002021021021,102200000200300,100000101040020,100110040013320,114023012303230,102402000202120,112442220201020,110002100012000,103211400100200,102132300233002], + 140221020202033: [100003104342121,100400414321103,102132204131302,110020034203040,100032304202003,101420300301103,101010231112144,111000100003022,100113020400211,100022030414220], + 1002220010000302: [103112010213010,112200410200142,101212000301013,111400002102112,100034100124302,1320102201231021,100000211020034,100000040413022,101000000323000,100011221224211], + 103201211120304: [110441234224400,110030002000422,103100014031411,110000300424304,100032121024110,100011004343022,110013122130200,110401140004202,114020204102020,102402330230011], + 1000304403212210: [103122020213112,114101100211240,114122134140002,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112], + 1001320110010041: [110011011212100,110123230124040,131000001020102,110420001000202,110412310030001,114012022302022,101042024210020,102202144030004,102141111100102,111030340040341], + 1002002040323201: [102100224000210,102400100230000,102114022004023,102031001411010,102030000223420,102031021441200,102300031004340,100213310112333,101200020303202,102013224003020], + 1022232012234013: [101011010320431,103041414001042,102441324022342,100002004344013,103220000104122,101401030302440,102040124010141,102314221101100,114240004002100,103131401421331], + 1040202023040201: [104132340011314,102203304123030,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441], + 1002440332021113: [102004010220020,111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,111204000003031,100012004110024,102142000210040,102320214110001], + 111301001000030: [110204004430204,110300011230013,102100400222242,102122114003140,100002021032001,102011404010000,100000011220004,114111002340233,110000210004001,102100324001200], + 232110121020324: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 210031213113040: [103242420100012,101400004022112,100100210000011,103002221400000,102022030241032,102200000200201,110020402004210,103110020210000,102120124004021,100022141030334], + 1040100401210131: [102420101111121,102101244022242,103222000100010,102013131134030,102004004010011,114101042313041,121211001014412,111012222200402,103300221402010,114021004010042], + 1000130012301000: [102021001132040,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412], + 210104220300403: [100023114341301,111000020010011,110101302141002,110114102004120,103212121402022,103330410111310,110201001200101,100102014001304,102030120200010,101030441032022], + 222012013140120: [110004202003210,100424220032043,102021004001004,100000221030033,110210402031211,112032220240044,111220100010101,101012400340400,100020330410000,112043101112100], + 1011000044400003: [110413304221020,100440000030040,112130010202041,102012404000211,102141010230441,100100341010111,100110214103200,101030320322101,102322121000140,114140002313010], + 1003200020100003: [100442024301200,411231400122100,100400414321103,101024000322432,110302030412400,100110020000040,102132204131302,100010100000320,110020034203040,102014031440442], + 1204020342100023: [110001332120300,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 1221300430001000: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,100030024303023], + 114320100101321: [100031300002022,110210020002243,110210022120040,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 112000242020101: [102304341100321,110010202103141,112003234002022], + 1011020202100000: [111443032100000,100010314103002,100240240430022,110310321232001,103221100112240,112000000211220,114022300002101,102323131000021,102020304012021,101020024210020], + 140022010210210: [112300421134001,110321031234422,103021004014220,102023001440404,101023014004000,100020010101201,102312344020020,103210404010101,110124411120222,110100242012000], + 1420302200420011: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102401200230234,102241230200120,110201111200204,110400104222012,110104004202014], + 104210020310230: [101004010304203,114104204002313,114300000002130,131204100021112,121200013012000,102122210230200,103110411212041,110421410100301,110244400212004,113003221014312], + 1011022012144233: [110241142024233,110021104200001,110441140102024,110310020040401,100413311002132,100002024303323,110210301200101,102033124000111,110400241240242,102210101121104], + 1114132034120400: [100441204302021,102100101340232,100011320001003,100000221020200,100200000030010,100200010431000,100003421040000,101012400320022,101332004231001,103300004030100], + 1100123300430003: [102002040220110,102141220210212,111320022200100,102232004040004,111202024134001,100000014100202,111302120011012,102203001120342,101012104001020,103101031440430], + 111031040332200: [100040031020241,101100104000222,102324141000002,101010234004042,102041224010012,114340102322021,110311011330111,103040044010112,102310001100113,102000114010020], + 312000003010222: [100030324200410,102110202001010,100040041020102,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044,100140004102001,114101024122320], + 1201001101040412: [102101004000411,114221312340014,102434121112224,101200210300413,100311204312442,101211204201231,103210021401223,111110014101210,100323140143012,111130412210000], + 120444122021322: [111030212113431,103222004032000,102233034000002,110123011200000,112130004021000,100100200021431,112101202012010,114240004000000,101100304021321,111212024101031], + 1140403033012140: [101214104041040,110104231221040,102012204010044,103101000100022,100020141044111,114200000002420,110401440001204,110204310112224,100042110122000,101021021002110], + 1400100200041100: [100131031020002,102031401100332,100014201021012,110030441223002,103010400120230,114120212310000,102424010230103,114200020210110,103110230210201,101403004020323], + 200111121232200: [102110142004430,114310100014104,102001020200310,110211244400301,102040214001410,111101002240300,112411002010104,110400031142011,103000324042100,101101000300000], + 100124214220001: [100010101043200,100030100004000,102311210221101,100401320020240,110201222120421,101000011020103,114121202312210,110010402103240,102403004020021,110040421210032], + 310304311200040: [102410001402210,110000102100012,102010020223010,102120214001422,100020201221000,114201200004112,101400201100022,102141431343320,110010444410200,102010101130000], + 1100201114304220: [112004300230022,110202001000101,102202101300230,114000102304201,114221124140000], + 1411020200331011: [110200002031302,102002020243020,102040021121030,100311314310000,100000204130001,102041130200101,100412441010422,100220031001210,101010200312020,101040204210210], + 1044022301110402: [114000000032100,110140102142200,100122124300010,100110034101010,110410224241010,111300402201232,111011100022010,100400444100202,102004000201030,112020401130100], + 1040020040030020: [112113214020100,102010202004402,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004,103113010102100], + 1032310201201331: [110413304221020,112130010202041,102012404000211,100110214103200,112020112300102,101030320322101,102322121000140,114140002313010,114040124102130,100002001021101], + 122031421042034: [103130314001202,102143314000241,100244210034300,101100322120020,101133040012001,103302320110042,110112324202034,100020321212233,114042324104012,100001101222001], + 1000100024120002: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 1120432001140211: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 111402030002020: [100200301002001,114303120004402,100444004302301,101030224211010,112200002010004,102000101410021,112034222002010,103020404002111,112010230210110,100201040012000], + 1010031002102240: [102022000210010,111201240001232,100020301020413,110421202220142,100204314320400,104121410021020,100220004311122,101230130041001,101042034041342,110404034223424], + 110021013020313: [100022010100002,100004100410134,100102014301210,102430144043230,103100130102014,101023321002102,100012030122000,100020200120000,102020024003420,103111230210043], + 132033102211110: [102020221411320,231011321002242,110001332002010,101421101011202,101143201101212,100021341042001,110400131001004,110411200000004,114041104100241,111044212143023], + 131132404101202: [102110141401203,100003021041343,102040034000131,114111302203401,112040041120040,100341001003013,110002341300120,101010011000121,101022140300332,110140412011321], + 1412234223200101: [100020021042003,112404212020403,102100021341110,100002000100120,103031041400001,102022412000010,102300341002000,114002304100240,100100201020222,101000011003244], + 100210020000001: [110011414240022,100000200202012,111142010020301,112114324040000,102124031023100,100204104320231,114002104020100,111222214101043,100010021034000,103132004002020], + 1401424102220030: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 1000002322230111: [100040301042132,101021104212100,102102241341004,103031000121000,103002020101431,102020300220201,102020431101132,100000041020230,102041021121210,101404104000404], + 1410043040014040: [103104401244021,112031202003020,104114400011000,140402143000011,132344004001203,100210134104040,110422001144121,110000031031240,102110224004010,100022024300010], + 101000122104200: [102041310200042,101000304014100,100040011023101,110301030010140,104100002101431,110221000111302,114101420030202,101123232010002,114421242204443,110100222001100], + 110203202020302: [110041400410001,111010002232002,102402104001124,103210300212001,102023111131000,100000441022011,102012010200010,110441042222033,100040224101210,110320300011130], + 1144000100040220: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,100000301221024,101224322120022,110104422010121,110302204433321], + 1032023214001301: [100002100100210,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100102020411200,114221030000011,114200302341234,103002110100200], + 1104101020020230: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,111112204404021], + 1100032122422030: [100220034322312,100203104322011,100021101021200,112002224004011,103240321400010,102010134012140,111102002240013,102110000210014,111101142110100,101002114000002], + 1141000001411102: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 200220014302300: [110300100100200,101000224003200,102110140224010,100024101020044,103140024002140,100103240011013,101020120322020,102020011103400,110222000000130,110120021324222], + 1021241323320104: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 1140020120203220: [101111140300020,101240301000140,103100014000001,103034130144031,102140200212214,113013120103104,100200241000143,102010031101223,112401102020023,114101320030004], + 1403231230440022: [100223000012020,101123031111011,110014300001402,110120424221121,101022011140403,101031411140420,101030114013043,101042301120010,114423312201001,100104044230000], + 201134111400004: [110113314221413,112004310224204,102304420211002,110403042110030,101221414041100,100032424312011,114112132313033,101110301040312,102204010204023,100220000432400], + 1013111302201242: [103300344012201,100122200012014,102313204114304,100011200201400,100201104224131,100002100204114,102203001300000,102101004001020], + 1001001423001101: [110330400010040,100101231004020,110010100022010,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 120112010202304: [100010104331200,110010104201022,100012031032234,101000204210021,110100121224222,110002142120000,102011011321024,111132300020000,100022301030201,110100100030303], + 201020143002010: [110020100042220,114200302320443,100401111000221,103302010140122,102113101400001,100010001001122,104240202023232,101003114010200,114030204021200,114000022210140], + 123431202011002: [114330014002002,114020024104430,101040214213002,102010210200102,112002040214231,102100222002040,100011004312001,102033041412332,101014240302113,100011021000412], + 1240321040221010: [111311002203000,103301000140120,100332111004200,101033220300404,101440410300202,110013002101010,114401020031002,114020204104030,103243024023000,103232031411102], + 1121243200030001: [110200002031302,102040021121030,100000204130001,100412441010422,101040204210210,100000201034001,112020024000010,102004014011022,100101234002000,101420244021100], + 1021120022012002: [114031102200100,110003010010401,103010010104000,102330030243120,102100100210033,234131201024402,100002200014412,110040311213342,110010102234002,102003144000043], + 1220040022001023: [102000001132113,100041000010302,112004202302034,100042001020203,102002320220202,111321314133000,101131024020440,102432101112141,102100044000000,102104442004300], + 1043404120000203: [101004100331003,112131222010010,103001011400102,102000011102134,100002121032011,114122224003201,112034022311032,111001420021111,111100214400041,112020102002024], + 104301030210000: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,112301312020123,100042001020203,112023032000020,102000201101332,102231041120104], + 1210000221304320: [114200110001402], + 1002203002000004: [114022300022421,114401200000003,100241001003002,111310004122000,101221000312044,100400240013333,102030300224002,112010022000304,103100040210040,100210001002200], + 130402220300213: [111231002242010,114042034104243,114000214012010,103232114040140,114010002240111,101020401034001,101440104002230,102440214020040,110004124203400,110102032010323], + 131310204030240: [110212301300020,110210422110113,111322300013200,102202001300342,110010222000110,110433011310111,100210434020011,111212224100024,102030104012411,114200002321340], + 223002002023302: [102231130213210,100043324210140,114113104123200,100020420121003,110002021121023,102300040221403,100001104301200,114121300224141,102301100241002,112002104003412], + 1140102113002221: [100000431020101,100244100032320,111102420023101,110010212101240,104104001243020,100032040000331,104124102100301,110002010440412,110111420033313,103100200103020], + 121211122030300: [101211201202134,103120104030100,100004000100101,102020030220200,110031404423144,110003434410403,111110000014401,101004000304012,114002004100140,100022210410130], + 114010032200111: [102003004000040,102011101131021,100021100013401,111010110042210,100114200020220,114401004122120,110023031204100,102431411400001,114023202330100,102041114040102], + 100000001100202: [100021230411014,110024000412302,111201024101100,100203141001002,102123020230114,114102204121201,114401204141201,101124000330204,114043422212002,100000304310200], + 1043020200022002: [100020220410142,110000412003001,102011331131302,114000230023300,120202201010210,102021204013000,112042024000020,110022100044100,114400200004310,110003000024101], + 132001114401013: [100030200102434,101101230010000,101422401012100,114103204100320,114020012300203,102112410222200,101141041022031,102000044000420,112300001103204,100001001021223], + 1004004102101101: [101100120330110,114141302341111,112400020200104,112212220223012,101002014013300,102100030222104,114113002340212,111203010002220,114104120220323,112134100421303], + 203100022301203: [102401141113031,103042420143020,110210400002012,113032012204012,100204311000400,100403012200201,102011001002000,112002111121013,114211100001224,102112004004002], + 1032011304303210: [112300020201040,111200400003200,100002001003103,110200010000103,100020324204012,102021011130413,102022001131012,102302214110042,112220020202300,111222002220000], + 201102440003011: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1003010041242224: [110230000000002,100004414101224,101003140322000,102002001130001,114201142324042,102213401111223,103211104021300,100011200101113,110112030121310,100000100412021], + 101210210122022: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 112020211002020: [110041030411301,103301210142043,100002024200142,101110044200100,102411000200000,100400014321101,114100122342002,112012020230301,100010101020023,110033041200104], + 1412022323211302: [111120002211010,101201200310001,102023120241131,102020000201200,104103101240204,114241000002004,111232000010230,100424200020200,101020320323422,114220200214400], + 1021100100102111: [112001232000034,102100021341223,114112434000040,121000041000010,114001002304222,110142032004410,102113232001100,100122210400030,101140114002200,110113211003124], + 1101220000020110: [103204214040130,114113104123200,101210210300031,110002021121023,102201100200430,100114021040000,114121300224141,100021020412110,103110000223000,103000210120000], + 132134404311000: [101020100300420,100200021000412,110330000400112,110000000130104,110103041012020,111233314101101,112101100221122,114000212301112,110000020124221,101000200300221], + 111004200220243: [100000210100030,100402042200000,110001440041003,100000220111021,101000430320220,100401022201110,101100001110030,102210011101110,112100302012023,100402000010203], + 1141002203100003: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 220211320214200: [102121201340001,110400242110410,111302204123234,100030020423044,103013104002044,114211004004210,100034204310001,110011340001104,101023011142204,110034220114031], + 130002321403110: [103020031403100,102200401111200,114003104031111,114200302341234,103202430100244,102302331003300,102320000221020,112131004020212,102003211120021,100033001020140], + 1000212024422033: [100140201011204,104010100010424,103010014013304,102103030201001,101203104200224,100010221031023,100140000024021,101223024200014,112240404012020,101201024203004], + 113101010422232: [114130012310000,102112432004423,100243120430140,112214431102032,100400120013011,102211241120212,110120032013303,102101230310000,102323011101210,114420000000420], + 1101303000341000: [110124010031144,100021100013401,110311312000001,110010320023302,114130202311020,110002042130032,110244000000020,100003021032001,421432000003000,102210221121044], + 1004102042113300: [111100214100402,110021130004103,114041302322043,103204324031320,112430002022342,114220212340004,100241004324000,111102310012110,103200011404234,103140244030030], + 112004341000001: [102300324010203,102100142002204,110113004402201,100001134100120,114023214101310,110301232000100,110102400013020,114110340004414,110303401230040,110011200020114], + 133011200040220: [100002400100121,114022444101022,100004440012400,100001000413102,114100044004101,120222000002200,110001002130011,102202014020040,110001344200402,142402303420001], + 1010411020110302: [100041200010000,110111001300044,111000002202324,104132100011024,111211010001300,100113434301241,111014014401303,103210001422303,100100000022131,112042111120340], + 1120204111221101: [111420012101422,110444144241024,114120030020202,110201002010420,102001101130120,101004020342000,100230410112111,114224012330022,1000310103100002,101240010310200], + 104003013104100: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,112301312020123,112023032000020,102000201101332,102231041120104,100111304300020], + 103010421110403: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,101302121004422,100000010011430,100114420000140,102022300241201,110200100001242], + 110223002344104: [110400010031401,114112002313010,114022200031221,110100022040022,102100401410022,104440000012304,130430101032200,111024240404104,101001004012010,100113120033040], + 1100103312223300: [102222320200001,102024101321401,101100021101232,100000321040000,101010001000432,100134101022112,102402004041120,103310200110020,100020031030323,103101200100001], + 1122320140101221: [100203344301100,101000110300300,103420104020200,110131411300312,110200124240014,103100000124010,110030414202400,110032040000332,100011011200212,114200024101400], + 132213141012022: [111113202211020,102000100202041,101021041001434,111200024131220,112004030241132,111203034440323,100232004221200,100201000011432,101042144010200,100112401020300], + 1230000101040111: [102440001113120,114311204002010,110004221040341,103200204031212,102313114114000,114004102201202,100000101001431,101010014001032,100222014121024,102340140222011], + 1003024441100101: [101220111020012,100004024202000,114200020003000,102112430210103,103000114012224,100033131043244,103000024040413,111102002220124,114423100000411,100014201030221], + 124002102002000: [110041030411301,110001041213031,103301210142043,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002,111202012222402], + 131043001013100: [103301210142043,101110044200100,102411000200000,110414300030001,100400014321101,112012020230301,100010101020023,102000221442214,103142111441040,102140101343110], + 1140102323000314: [110200002101020,114104032211214,102410400233132,103101011210300,114213002320124,102200200240031,110011212030112,102101114021130,102012410213213,102002010240020], + 1042032223340200: [110340014422102,101022400300001,102140004000100,103202130122102,100021000010213,100004101033223,100231004220242,112430010114123,130020100202200,120002101133400], + 1104300420300020: [110301012022220,100000130410014,102303414113320,103401344004004,110010114200400,102201001122034,100132431021202,103122110400104,101001211002201,102100234001041], + 1010123300040300: [103222100212012,114010112201001,101224244040310,111323210000204,102001030240003,121102200401021,101001324214240,102301010242231,121244120211020,121100000400034], + 132041000031014: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 201022320130011: [110433012110300,110440201342022,112101414041022,112243340202002,111103412240000,101000204003420,110101240024120,110300310011030,100230101001020,112021300220021], + 101114041010101: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414], + 122430010030030: [110403302023130,110001004204310,100010311020030,100020000200000,100141230020203,101031121003021,100200120030203,103111201443022,110101214400030,114104040220130], + 200110400021200: [100300041001121,101240004011021,101011001103200,101002244012322,102302210210322,100012401020212,100003131040012,103004044010300,111210004101111,114004130020232], + 130021140213331: [114402404141241,110212022133311,101041210311410,110022004211030,102104101122100,112230240412241,110000204203220,100034141030202,101000300312123,102204141300100], + 1410110013004410: [102102000233342,103302220110131,110100111121002], + 121212010020410: [110330400010040,111000100012002,110022140120012,111102010012102,111300030012334,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 200013001002114: [110442104221030,101224001202324,111211144101202,100002001024100,102103130221330,110000300140010,103102134001111,102011310202304,100003114100011,100002314204210], + 312124010300220: [104100012102004,110030002000422,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110021232000021,100001140000010], + 1000212113420430: [102002040220110,102141220210212,111202024134001,100000014100202,111302120011012,101012104001020,100002314210021,103101031440430,102022001101234,111422202210212], + 120221011100303: [102001404012100,1010400230221020,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311], + 101004101220212: [102023104002000,111114010020011,100001204302200,100310111001140,100000004204201,114002104011010,110001221101201,102000031442000,102400014020400,110301011230230], + 1011110400240232: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 1102202110002002: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110022100044100,114400200004310,110003000024101,100010024302100,100000011020412], + 131110002301301: [102224101113104,114202144102100,103000214012040,100034140011211,102333204110024,102103002002000,102402001403121,114114300221122,100044334102300,112332301100223], + 1034021200100143: [110300221220031,110201220000032,100021214313034,114300200000110,102000021133001,102301434110030,122011001202102,102100301400242,202023004201110,101001021001033], + 1100003040100031: [101030000320122,100310301000321,102001002000000,102300010221100,110020004413300,100121320401222,110021200040000,100301124210103,112211024013040,100040014310010], + 1124201010140100: [100111011011011,100030040101021,114310102300021,114014112300100,114030034013101,102400124020001,100102224234101,101013004001421,103000014011004,102010321411140], + 1022210110130021: [1300422220310121,100422321032021,120032010212320,411001103222300,411311131413022,1220101103414143,320440200013001,410000244003240], + 1120110020011410: [100304201000221,100112021020320,114212104110100,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,100301104104210,111022134112141], + 113022000112320: [102300000221114,114301000002344,114212310002312,102104014001023,110200442120120,102020031123000,100022101040044,100024000102402,110043301220422,110022400021000], + 1100100020220202: [100102204300424,110102221014102,102002010224011,114000030042240,100200020320224,100011010022200,101403144040010,104133020011042,110031132130311,102022001440012], + 200311014111000: [110301120404342,102113304130002,103124420221210,114032024012040,110100000100220,112000210210301,102012124012120,103431021204400,100031341030021,101014004001312], + 1010300002120034: [111102420023101,102102244000330,102140140210323,102001004012322,100004001041301,210202011010122,110420104220202,102320420240300,102222131120032,100203101000022], + 1211000020003020: [110230000000002,110220301202400,101003140322000,110401001002400,102002001130001,103012000100400,114201142324042,102213401111223,100040120000031,100040030122003], + 104130311211041: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 1101112101300324: [102000001132113,100042001020203,102002320220202,100120010421220,100000201041300,114011200003102,101020104000040,102432101112141,114412142320040,102100044000000], + 213143030122200: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300], + 120024032114020: [100102004300104,101020004011302,114212100023341,102300021103201,102410101112322,102121041340000,110010140011021,100123014103104,100001011120400,120131201313314], + 303013014000413: [100022041030000,110100104403201,102202000200010,102214204040420,100010430202422,112340020203003,102443011400041,100010430022021,100002021031032,100403022201202], + 1020203111100020: [100131424302300,101212040011001,110201344402000,111011242233002,102320001000230,111110223004100,110020212130021,101422404040210,111040224110141,100120041224204], + 222010011014131: [111001440020003,110200020010003,114121000002140,100002214100100,102120104003011,102100144001112,102000041441002,102120402000014,102000200210032,100041000100422], + 1430130300002324: [102100201440001,110400011311001,103300120141130,110040002132020,111144202220301,100000000120200,102304011004310,103101410212231,102120044002231,100002404210001], + 322400301320302: [111321220003002,100332104310222,100003201212143,112000014000303,110120200000111,102000010204312,103220434021030,110211200101114,102122001402410,110430001110403], + 1020312101344012: [102011114002011,102042100242012,102144201402040,100014201021012,110000214214420,114021212301131,112010112000311,110030441223002,110440002111230,103002044010020], + 1122122000102011: [102202010240210,102203101120000,100010204102001,100002010102040,112104000200322,102140201401023,100414000433302,114120000000300,103032224000200,102103200210010], + 202213212001411: [114001024011334,102312144114200,120012102310332,101022220320012,103023404040213,114211000210320,112103000204401,103100004001120,101201114041014,102101034001100], + 320214120004400: [110204034240010,104102030012121,110000011100204,102420001110401,101021111000022,102100111413012,101422021012014,103442014000100,103132014002131,122120120140231], + 1040010003012010: [100220034322312,100203104322011,100430020001120,112002224004011,111102002240013,102110000210014,111101142110100,102000411410342,102310314114031,130200211400203], + 1121100230120400: [101222101202341,110301442021010,110001332103022,100010024302100,112041000220020,102022400210202,111304202202230,111300000001323,110000002001040,110101000121214], + 1000110011013122: [100002104204000], + 1022200103210210: [110010020020011,100000001221100,110240242120033,103141100120000,101200400303000,112400002013000,100120440000022,100010314313000,114310424030011,101001134014021], + 103001300220211: [110111001300044,111000002202324,111211010001300,114030020020301,111014014401303,103210001422303,100100000022131,112042111120340,100101141042243,100101100022012], + 100122244200330: [102130020200000,101104020300301,102004204001111,102101004000011,100002040102100,110023330004130,100001104303411,100224204323201,110201124211431,103004240101010], + 1200204124402002: [111302020010000,101300221003002,100000121020303,102403004020102,110200220010220,101000001001114,110020004203240,103303021404201,100020010420242,100100204232000], + 142002102104021: [101000411030013,103012004020122,101322310313010,100000000410101,114403020000214,100003341020020,114110104121414,101313000312100,100040424212200,114040414102120], + 102411011130240: [100011010414200,110430000400002,111121102240240,111320022200100,114000100020002,114104332310202,114410102310421,103131121421321,102101331342000,102010321131241], + 202304002020040: [100000220100001,100122230031414,210303212040010,100000014200104,114011120024030,100101121010100,103002011240201,102440024021100,103231014021201,110110420034120], + 102204104000000: [114201204111222,100104001041200,103300004021200,102004204041000,114210400000112,103230134011412,100012004101221,114122112202230,102301101004100,110432112111103], + 310404203100341: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 1122001024210202: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 221134213203000: [100121230031032,112000431120410,103042024040104,102304104110001,101342300314204,114013124030022,100013200100011,114104200220022,100021221021201,110001244204302], + 320031312101204: [100020001044100,1340120100441224,1301223001003430,102330042000001,232020104433104], + 102241201232300: [101413321300222,110304111230123,100031004101000,102003011120001,104101420011121,114200224001003,110010141221420,102201201002010,114310224030143,111214003022100], + 1043331100042020: [100021204100204,110211020000002,111230214102412,100113410410320,111201442222420,114012000022010,114222440003300,111022120023311,110041341300041,100031144310241], + 1000404012003420: [102301000220000,100024114340002,110101231300241,110000140132110,102402010221231,100304100140104,100213444314000,104132100010310,100241000440432,110411200400010], + 212123200410100: [110002320424340,102031100200300,114102134122020,103010034004303,102023032000000,103000204003200,112300020200242,100021044343014,110001002002424,111100404100043], + 140000222031301: [110301042101400,112423414042122,100400320020104,110001404210000,102012201100202,100220021000001,102011210242012,100114330414120,102121314001202,101010001030001], + 111112010310012: [111333104124202,101000304014100,100040011023101,101123232010002,114421242204443,110100222001100,103102000121300,110010331230210,102030020224102,102430014020010], + 1012000440233031: [110041240000013,110131122012210,101021000341001,114010200040441,110032014420232,100012044101230,111304022202211,111021212200430,112010034020230,102100010222101], + 1100112304402303: [102001000212142,114121000002140,110024042103114,110123042010000,100041000100422,114020002303212,102223231121242,102103132002023,100024121030022,100000020001022], + 300100043121010: [103130314001202,102143314000241,100244210034300,114001102211300,101100322120020,103302320110042,110112324202034,110031422000002,100020321212233,114042324104012], + 122431102040020: [102021001132040,110201201211024,110402420402001,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412,110123004401121], + 202011242024002: [103114204002100,114230004110101,102122101023020,100001101033010,102142002000030,102023110221011,100100114302030,100100014302013,102020121130000,101204031024110], + 200012020220101: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1414410110001200: [101230114202200,100400000020230,114300124030100,102211020204231,112011204004112,100202031002101,111000004401312,101000034212001,100121114230123,102321014111202], + 1114201310030110: [110132010032031,100200044102003,102210430233001,100110231000142,102420210200041,101003204003100,101312004211100,110010030101400,111022114120310,114003422242201], + 1101002041041001: [102402434020211,114103002311110,101004344002124,114020024120011,100001001032400,102402030203003,103022011400040,102011011133120,101011411002311,114220102331110], + 221241002003004: [102014130241422,110001002203134,111001002201122,103232040100100,110212020100040], + 221000241023300: [111201000013222,114004104012300,100021014100123,101203211010000,101200314040213,112032020220030,102320120240012,100003021030220,103101324001100,102123021022412], + 110004430041000: [111132230010402,110000400023242,114000004102010,100110014032131,110113041303100,110100314401022,111301102204130,103010104011202,101020220310112,110000421320024], + 114103210330002: [102440104021410,102012214041011,110411344210012,102010214000220,100100014322200,101042134014101,111141022224102,103004030120101,112221404014110,101032011143223], + 1000004213102000: [110443000000102,102430100200123,100040214102300,100002214202010,101424010303040,114042244102400,100034400410112,111020012203011,100100111043114,100000044241022], + 143210020000210: [101210331023020,102021111412201,101201000011000,102322124114210,101011211002010,104110411304420,101401221011342,103200004024040,114220000002123,100010214302012], + 1010222200110100: [110323344422123,110011010021004,111220002202002,110112001343021,100002101020204,114212000211041,100431204320300,110001040020213,110112121200203,110300200013040], + 201113000120214: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,112002104003412,114201204111002], + 1011213312000014: [111200212223002,114141044000340,114020444100202,114020232302203,102320014112013,114402000003130,101004001001201,101001000321032,100023100104410,100024000010031], + 200200022302040: [110140201222000,114112232313023,100102001000010,112032200230231,112312420202020,114130004004200,103000031240330,101020304002132,112220004010404,112102400202324], + 141201040004004: [100034304101213,114002014100310,112023140212112,112313301100030,102101031412121,100020020121132,102102010220401,100001020100030,100021120201020,111000024404021], + 220320200002034: [102100010233022,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,114000030014400,111120034400000], + 102201300004002: [144131233204044,120130001004000,101001131032132,110102030010210,102220211120002,114014010033321,101400104042212,1003022312322100,102001244001224,103441112000230], + 1403121024040210: [101020024212042,100041204212120,100410110420202,112423424042102,100320431000002,411200101402221,100120214230002,103204200103440,100210004104001,101410201111300], + 220300201301120: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 122303001300104: [114211440211420,102200024042003,114320004030033,100231411001200,111010000022022,102112200321043,101000021140240,100001011040221,110221102221300,101021311001001], + 111203120100014: [102044104002014,102022000220004,110210001310230,103001220104301,100010144303000,100102434300310,100421200001003,114024200040223,100133404030004,102240001100210], + 220020202243103: [114003010024040,123102202010320,101020211140102,102104120200134,100120230012241,104210140212241,101112240323103,110203232020010,110043200023212,103441014002310], + 130230234000404: [140420100400012,111001202231001,122012440110401,202220202402001], + 1124221120201422: [100040201012040,114100222310230,114131002342130,110002022003101,110224130002014,100403122201202,100100220403100,102303304020122,100310210142030,114132012200110], + 131344111020111: [100001024201214,103433121201311,103404001214121,110113211301114,122004120000100,102300002103012,113030410122021,111400202101243,101012114000111,101020211140102], + 1040302200342312: [402000401204030,114124020222032,102121221343020,100140201000222,110110000004210,101400010303002,104200202141001,112104424022201,130030220200012,112200110000221], + 200002300140211: [101021014002020,112000404000001,110320332022210,102230040200111,111241000001011,100240034101400,100220304100400,102102004000001,111000412203041,102400121110000], + 134200201020210: [114021412213020,110030002000422,100032121024110,100402431012022,110040002034100,102031024013013,102402330230011,110044020020202,102022400211311,102324410243220], + 112120200100343: [110130102010010,110100030123401,110001010030000,110102202013213,110021404214210,100003110022310,100000400100142,114102000003021,102220314013103,102002034001310], + 1000144202110034: [103033004011100,111320122204241,110132212010200,101000024000022,100000204310440,110110100033221,110000224410201,110100400020121,110011304200020,102030021102211], + 1004033332023033: [103214010102022,100043324210140,102324014112020,100023024211011,102404021403141,100010004313001,100003201021001,100122020011232,100002200410030,100121031014040], + 130220204001330: [101400004021110,100000241120103,114232000002310,100402000000101,101000114003100,102202301300240,110010044203000,111010014400030,112211030204411,110210102120000], + 210002202200000: [103211144033404,102123040212103,100041301021020,102314224010213,112113012010000,100000120000202,111000030043110,100002314203420,102001121134000,114220414000310], + 101220020001403: [102342014111202,114040002330341,411010033020221,114102020422002,1224320120024001,200002003223300,1000412032200202,300204110434340,111100001002113,132220124203004], + 102120012021134: [110400000002213,114132100210100], + 114000223000041: [100011200121231,100102004100201,114040020021023,111230114102201,101400300300111,101220200301400,100001101021134,102122302000300,100000300202000,101022031034002], + 101110430324122: [110200002031302,101403220331230,102040021121030,100000204130001,100412441010422,101010200312020,101040204210210,100000201034001,110000324412304,110000201230100], + 102113104000201: [102041310200042,110320202023400,111431110000042,110301030010140,114101420030202,114421242204443,110104422010121,110100222001100,110302204433321,101010001002000], + 1000302330420004: [100000020004101,110130014400011,110011232100412,100220040142222,110232002101410,110200021210212,110131021240303,103100101442233,100424331001120,100000031220100], + 300220113110120: [114021000012310,101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,101000100340001], + 1004301013110120: [103310020140014,112000204002100,110210030100111,100041200002402,100000000411240,102030021443010,112300220202122,114010000024012,103100421422110,112120002302004], + 212044320041421: [100244104101010,100200011002201,100211310140340,100200024104410,100220011004202,100000101232030,102101200200034,102243201302244,104430421104102,104100402102320], + 1030202410202120: [102222111120010,103200224033413,102300440221022,104120201242031,102320110240231,100100101011200,100133001220421,100122204301312,101022220322100,100114113200203], + 110020300043342: [102112020222030,110320022101120,100022431030100,100022004301043,102214101120310,114000040031021,102400001110113,102002224011000,101030204214013,100004201211032], + 120220023043020: [110024404211001,110100022010010,100120001040202,102140140210112,100004220412010,101222020304402,101201130302002,111020400044101,411120024124200,114202102321131], + 130300014233341: [100102211021000,114203142321301,103141011240230], + 1113010112422040: [101012131000024,102120221022200,102110141410402,101044001032114,114221104114000,100001111032112], + 110020210041024: [100020400410010,102103441142340,101211210304010,102100001004041,110000403400000,100000414104102,100001020044101,410310420012412,101000020100020,403002310120143], + 1003113220430003: [102422114040010,102020004001311,100101101010100,114103212312012,102321044112101,100022024100041,114231212342200,100020011043020,100021231020200,114201112322020], + 1101000402201400: [102000004002101,110202000000310,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,112100000200031,110003032000041], + 101002121200031: [101203231002222,111430032210010,100000204100040,101003030304240,112113224020012,103002211240301,100220120432010,100004014202422,110411232110220,110220042121003], + 1141011011423232: [100012014341003,101100411104001,112111010201220,112222122032004,110100134403210,102300210242404,114300432300422,114101144001040,100040414212104,100000424304010], + 1410200232000002: [102422114040010,100022041001002,101204400304011,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,102002202000000], + 1042200002202040: [111223402220443,110430000400002,114033000032021,102401004043011,111320022200100,100300001002041,103000200122014,102203001120342,103133004002010,101202330304024], + 213021140040011: [102230040200031,102101204000010,114230230000123,104121001242101,102024400223212,110040004411003,110211110001322,100014110201012,102200310201220,110300014422013], + 1003112022201200: [111000022202402,100430211011410,110010340040012,110014032101430,104421312102244,114131014101010,102240214041033,114200322333401,103010021422042,100000001022401], + 1001031040033013: [110023401320200,102301224110000,110000312001020,102133211401043,102010214000003,114032204104044,103002010100104,100220310430010,102124011340031,102410110232000], + 1020014220203011: [100012320001320,102000331120104,114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101], + 130003010203330: [102211220201114,103000021411202,102101004030220,102003001132213,102100204030012,111432000004311], + 220210100042200: [102102430310202,101020030332430,101022004214304,100020101031131,101010000323030,101001414212120,103310220113140,114200202330330,103101101440200,100000101031020], + 1003010414041111: [111200200000232,111410210001002,100101001011114,101430004040203,103122104002013,101020404210020,114040414014202,100000024301031,112022140234004,100143440001301], + 312040323040010: [101211104040023,103042004001000,114233024034201,114030002301220,100221100432104,112003120220142,114010430040320,114303222301000,110001022011241,113423202410240], + 1400412203240330: [101020341034234,102113101342000,100212304243333,100431001010310,110002010042440,102022401412124,100121210402002,102212004030221,100030404311202,101410010330014], + 1024110200120012: [111300232202103,102301401002404,110122120100022,102012004010000,102400100220000,102001104012021,100242444300104,102002104014323,100401241010122,100010010102122], + 1040202023020134: [100000020004101,110130014400011,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300,114200444140203,100000124211001], + 1100220301211442: [101240210310204,100000021023020,100100220423210,100231020112302,102000111441024,101110204004210,114240000000041,110004010004010,102210220202001,100110040020104], + 1222211202201004: [103111004004410,114220012340000,110102141201112,103112024030310,112210222040000,111100002220221,114011014010300,100000020413022,102244101111124,104103031240201], + 1201104001013221: [102000324040000,110222200103041,112411400202001,110212311111030,110000110022002,140143400110002,102042211100202,102010000200240,114000002302204,112431244044400], + 221100201100100: [112030004004130,101340041000104,104100212101403,112001102000201,110404212112030,110104220400022,100040020000313,110211130002000,110134310404210,101420000330441], + 1114122030000002: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231,114022400020320], + 100142421420401: [102002212000021,102013201320403,101134004004013,112230122032000,114300300000020,100020001040312,102203011002032,101000324011134,114302022300311,102220301302413], + 212100201001020: [100200101000000,103110431441100,100011004340114,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 1400100010000112: [110230400000202,102012314004200,102112304002110,100432014100103,100104220412020], + 102430101140002: [102310000222133,114104310000002,102100011413420,100001001034141,112123102010143,102130201140012,100010204202202,101101404003003,112422320200210,112100211100021], + 1102202210214234: [102104101340301,101033011001100,110014010012200,100100004230402,102110304020201,110202420004101,100021220010031,100000014211030,100000200100141,111303012201100], + 200012204110023: [111011304114002,103000001402120,100020314304002,102120400200003,101020300320020,101220301020130,111012310000204,101222200301130,112340340203340,103203314020144], + 1101000220032204: [100000031211103,114210424101200,100420110312244,101420014021400,112230324002000,112320301100420,110101024402203,112001202000203,111034200010244,101122000320210], + 1002114144412000: [114202012340131,110322034430002,102323131001211,112023102003010,101010104011313,102000002041020,100320021000000,102034100223241,102020014021021,102240234121424], + 132032202211121: [110232022123020,103140044032100,100010240101221,102100010213413,101024011034002,100032224101400,103033044023040,102403101400210,101021410320100,102430010202411], + 1441300113003204: [110000021202100,100420014301410,100010101020403,110302030011010,100101300011010,100020111001344,100022121024103,114401032320120,101201124013202,114223002333020], + 212100103212123: [110120200032000,102140011140002,101211001023004,102204024011121,101012100320111,110311100001210,100214200000020,100000012212010,112122034022100,111230102222200], + 132114221021100: [100002010413410,101433010300204,114310100000110,112002020214003,102010231121200,100140301000432,114400022311400,110010220410220,114040010022000,101133104002112], + 222223344212101: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,111001224121320,104042022102100,104030002100140,102104120200021], + 201140431200121: [100114234102203,102030000223410,111101312240400,100231124320130,114000010012243,103040424010400,101141111100022,100000404100021,101332011001000,102103000310202], + 102004443030100: [111302204133040,110300000011120,100000221020004,101213020304210,111020010022310,114011302300101,102420021400002,103221200100302,100432211002022,100424444303100], + 212024120403302: [110240301111040,111123014100000,114200000003241,103103404004112,100110120023012,101042044010040,112021014022022,112002322032030,101040401030013,111300002204430], + 1122013000001010: [103313111402304,102031212011001,100010044312000,110213220000201,101204034200001,101002200021030,100031011012000,102000141010102,110304220100002], + 1140001000214020: [101221020040220,114022412330004,100103104302044,101041030320401,102141212000200,101203121020430,102100104002224,102020004000014,100000211023014,100400001001300], + 1130320404222410: [103111001422000,111244302220204,100042100102211,102110030200120,100202140000111,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 201121430001102: [100030324200410,114202244112111,102110202001010,100031021033010,114011404103142,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044], + 1001220024010440: [102011201101012,102300304110030,114412000003141,103020041420212,100112011040011,100401024300321,100102030423010,102101004022104,101432240300300,101232104042101], + 112220043001024: [101221422120021,103001024002110,100231114320100,100001000002210,100400320033201,110011402100202,101210300302302,110100012120201,102020131413423,110020204200342], + 200402011402220: [110341200403110,101130034000022,100120004230130,102030041134220,110000400142301,114414014142230,100000004302210,111001404111020,100024041230002,102000104044004], + 1003110001234320: [104132340011314,102203304123030,114012040020310,110000212104130,110200200004002,101000040320021,114131040224332,114002210021300,103230114000201,100123020032031], + 1203102204020140: [100000010202003,114234324112000,103200101401010,100002231021012,102400001110102,120413040002400,112410024040000,102300234110002,101221001202021,102111134001302], + 1000430300020111: [102021001132040,110203131211112,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320], + 202100013022332: [111134204102000,110422200000213,101020031000300,110000400000233,112000112030300,110240010002041,110021040001310,102120001120141,101003044001244,100131121222212], + 212101100440000: [100031300002022,110210022120040,110000021221134,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 1040003320021143: [110010000111020,100430014323000,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101], + 1141001103140230: [103000024014022,103010000100410,100040404102010,102203240202202,110002110021301,114231020001120,100100211012004,102340202000001,110020402100200,102023210221301], + 1000030000032103: [100102000022402,100000001033001,100124100031200,101010200321022,103304014010000,103123041444340,102200231120202,103342100110221,101021220300001,113023341020302], + 104023223104010: [100323401000042,110103020011001,110210410123112,101100004000244,101000014211204,101011204004013,114422004142011,110022010002210], + 1002220100110100: [100122420031012,114200334112132,100210204343141,100000104300130,102202401114113,102140201342144,101021001031113,100100124234311,100022004310010,100010114310001], + 132310100001031: [144131233204044,120130001004000,101001131032132,110102030010210,102220211120002,114014010033321,101400104042212,1003022312322100,102001244001224,103441112000230], + 1001303020002020: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 300211300011104: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 1041044202311111: [110401004221204,111112000011222,100322444314002,101003301020022,100102431021300,110200212041001,100001030100030,112012004004000,112044204000441,103141100104002], + 1020202240114112: [110200321303322,100010030100011,102012124012120,103002041402004,114120034123300,114010112332112,114204202332300,114121304121000,102221024044110,102030004000400], + 124300110101232: [102000004002101,110202000000310,110000010120043,100422314300200,102403404004110,110301311303102,102141410230020,100042030120422,110020001224021,110103111120042], + 300412012111013: [100040240004024,100010000002400,112000013244041,114020100001120,101002041000124,102100000231232,102030034011211,102000400221230,102122001404300,110441342010200], + 1021041112002002: [114020200020222,114330002323002,114001020042001,102202000240014,103014101432000,100003014100041,102100121342000,112404410204002,111222002224302,102214011120002], + 102334000202111: [100424331001120,111040300024044,111020232200302,103124000104424,102100102002012,110201014241230,102110431342142,114201410004440,100040331221012,114442130003110], + 102211130414013: [110310001202220,111131224100212,112000112001400,112111412011211,101240000302141,103414034000124,100002020110200,112410024043011,100003200400110,101222201020020], + 124001011241420: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,104101201240100,110000011012202,112102112301130,101244324043222], + 104220142130201: [100040201012040,112021004003303,114100222310230,100011120000004,114131002342130,110002022003101,110224130002014,100403122201202,102303304020122,100310210142030], + 1000013140040000: [102311004012010,101020401033332,100012001023022,101104414002010,102112012004120,111112242211204,110422020000111,100004020021344,100100000000042,100000041201200], + 1041120100004010: [102224420201000,103013034012221,110302311302101,100000120002200], + 134202314303143: [110102401201204,103020200141000,102400100230000,102414034040100,100212030414010,101200020303202,102020041321410,111340300010010,114120420223002,102013224003020], + 1001420010000230: [1020102021344321,101030301001232,100104302001300,1001102321230101,1002001200441033,220200021120010,100021204230002,1401214001003110,1023121121030343], + 132200000042020: [101211214040304,110412001213211,102040234002003,100100021013214,110420202110040,101301204220200,102304422004020,100000110400321,114011120033402,110020330014410], + 103032204302020: [103110044003033,100123041001320,110310010113001,114414120002440,100221101003010,100300314101444,101130430331440,100002120004202,102200002021022,112123104020101], + 1131304130122001: [103010231401402,101011400302300,112003012002211,112002414002043,112442004040022,114140222200101,111104232241021,110013232131112,113022341002031,100013411042212], + 1114320030021030: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102223400201104,102342120222031,102221010201113], + 121002010411143: [103102300102243,102113020210120,111202004100121,100020004310022,100222220001202,100003100122232,102000414010131,110410300402321,110020014410200,110320100400100], + 1040211400101414: [110233012120121,100000241030333,100020011020010,101000204002210,102000131130020,110112210000002,100001204130442,102100321410122,114024004020023,1014400221004004], + 210200000101402: [100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110,100002044200330,101213110310042,101424044043122], + 1400413220404104: [100003030003020,110410000104042,100000040413000,100001034310012,121310232003222,110011300143002,100220021000033,112011312002001,102110201023020,101344331000033], + 100003101320110: [100010104331200,110342022000001,101000204210021,110100121224222,110002142120000,102011011321024,112311212021024,110100100030303,100043100103044,110302030004323], + 124100012022014: [101032111230411,103010110120020,110100032122000,101020210301131,103201004020101,110200001314040], + 103140020100202: [100023421041402,103101224000011,101144134001102,102200042000104,103002000104400,110114021000012,103002144042123,110012220002021,102304204110040,112020004002110], + 100021323044101: [110400000002213,101101230331040], + 102330100031011: [110120102041110,114002242304240,102100111341030,110213131203122,101203440304221,112114004043430,100002334340000,110010432000001,102111044004101,100121101023404], + 123000400311001: [101002204212400,114041204104222,102112300201410,100100121043010,100323120143000,110432111241204,114200200002223,112123142010120,101002321032002,101121100013002], + 221041130130032: [111120002211010,101201200310001,102023120241131,102020000201200,114241000002004,111232000010230,100424200020200,101020320323422,114220200214400,102010001104000], + 1100202311010001: [101010001000031,100021020104221,111120024101141,103201214021013,110310304430141,102113304130002,102000131131100,103124420221210,110201002043201,100011034302423], + 103000100303220: [110111222040014,110100000123402,103003024001001,102004204000422,103010000120000,114211324100034,102440234021012,100240011000000,100002030413101,103000310141142], + 1403120024024100: [103123004002102,101020000320220,110111140011114,114131304142010,110132011002023,101100020300101,114423210001210,101040024002000,114020024010020,102040111124412], + 1200302124321320: [101230002122040,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,102430121110340,102020121102120,112141104020201,102000024000002], + 241120112010000: [102000001132113,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,111321314133000,100004410120102,111222214101043,102100044000000], + 1041302012300000: [100002014200331,102012004000003,100411000030110,102041201121230,101000210303342,103000121424330,101012204221200,100300114310112,100202004324322,100143244100101], + 1040120000222002: [100024234201100,100010234114300,100010044310002,100331200141014,130000420243230,100232104120201,110112204224100,102212234021233,110224102230230,100120411200320], + 1003040010110001: [100032401030200,100021420120102,100014014210044,100022214101010,112434200202302,100310410140021,102001000221230,103221100211210,112400040102210,111110244102101], + 1003020101210132: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101004411032102,101000020302400,102021014012210,102244221114031,112400000200011], + 1140002103000201: [102001130220001,101410211021400,100004214100234,103000011400001,102104241412223,102002421442002,111131214422402,103100000210002,100000004200324,100013001031000], + 130122010311204: [102030111100022,102120000310301,100200040430313,100010021220004,112040021112102,100010000000131,101034124001203,100000311031000,100220124220140,100011101020000], + 321330000144224: [101000004210011,111230342220010,114010024011000,102000101410201,100004111024200,103302100140200,121103000144034,100211044311141,100111104002300,103002011432010], + 120221230002203: [111222202220021,111432124443120,103423201200020,110332111334020,111042000000020,110000001012000], + 132002410000033: [110243234240200,101301014221122,114110200212210,102041220200010,102130000312121,100400122201222,110231210001113,110012130410040,103210034021301,100104101200201], + 101101010210344: [110201201211024,110202000000310,110000010120043,100422314300200,102403404004110,102141410230020,110020001224021,101110020013040,101012410301010,112100000200031], + 202300121000400: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 222100300214200: [110223010013204,102230400202000,100000121040140,102241330244410,100330041000221,100342011001201,114102100034220,100044000103202,102023020203230,114110200004041], + 1100013000421002: [103100030100010,102013110201200,100042000102010,112000230220102,102013000202010,100200001210240,112010022302321,101040224003400,102304111101041,103204101402321], + 103000012020402: [100404000022030,102301121100200,111131004101000,102010300200001,113003022402221,114400242311000,102201102021043], + 1000201230301400: [100021104340400,100003000410404,100230404343341,102002301442023,114200322333401,102403001400101,112000134002211,100000001020020,101221022120042,102034200222010], + 1023410200200310: [100040300102020,100012230204000,110131214220303,110143101120300,101101200311102,112401402023020,103142104001331,100200204123011,100301400040120,103031120143010], + 1102103311313110: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,103421124042304,104000102100004,104021021224211,100100134300302], + 120200232204041: [111441300003100,111211414134201,114200044000012,100140101203122,101000121143120,100411310430002,112401102010230,111003000021043,101020030300010,102242011301200], + 133101010301002: [110101231202300,102023324010020,100130444102110,114000004103003,100001204342232,111131002212014,103010304012101,102210044010110,112000404000001,112000001121002], + 1002032043002014: [100004101032202,112100002011214,114401022311200,114020004020300,110114130114210,100004321021120,102300420220003,101400211012100,110012112003243,102104000213123], + 210300102002144: [104244002023000,120133001040211,112200431102021,111320124130040,110000110000231,100142041012023,110000000411120,110302100010342,101301030313022,111440222100012], + 1000100104404124: [112213000200301,100003224334120,100404224300012,110204130004030,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440,102410434000220], + 1042412021024000: [101240220300022,103011431401300,100022000410041,102040300241403,103020000102011,100013011020311,114021004100210,103000310100320,102103331400000,101040421033204], + 1421000230400442: [102200004120034,101000024002230,111001200003214,102100021410210,110012020021204,101001420312100,100022201044101,102200010204000,100031000413030,100130241010201], + 1404022130033110: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,100002021033103], + 1210000442011122: [100000044240301,101140021101302,111120224100101,114440120000030,101023041001203,100211400140102,101010040320111,103023101420104,114300014030021,114000010041302], + 1040120310344430: [100004214303020,131001224202110,100100400113040,131100001014001,102211122121042,114020420021403,111000014110301,110000012130411,102213244002203,114340224031221], + 1001130310002130: [102001404012100,102340120222440,102122214131011,114223204100010,111041202200140,100023031000024,111300400002313,100023014313010,114021040010311,100020004101012], + 1020001131220331: [100020331001310,100402010022123,110200131102200,100430204220020,104110241240001,110011242202000,102201012022300,110000421302031,112131442302432,103202111411203], + 1040212410000200: [101033101002303,102001104010010,112002030210041,110002102003311,100041130040040,111000030042302,111013004412334,110402410002301,110023032002000,101201010301001], + 1111013232224020: [103011041410132,100102134031030,110233000100021,100112104301200,100021242211014,101001210201440,101110040002210,110211104432213,111401304441341], + 1000010210231030: [103114204002100,100112011040011,100401024300321,114230004110101,102101004022104,101232104042101,100001101033010,100000201022420,103000011403101,100100014302013], + 1100010300003000: [111121100010021,110310034424102,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000,100010020101222], + 304410010232404: [100114004100001,114102300004024,112102201102030,103222244003021,102420011111224,100340114211043,110232020002221,100033001220020,101100120334014,114233002340141], + 1020040001002013: [100214104301120,101002000321201,114300014030310,100130004300103,100040004331010,102320234112041,112420030202242,101001424004240,112321101102000,101401201013110], + 1102020022034142: [110400010001201,112012002002332,110412010002312,101004414000144,100143221000221,102000214001143,100312104100320,101002224000124,101022110304020,100104104002111], + 240012020420010: [110013030403023,103010204010010,112003002030002,110401231001202,101031211140304,114230110212040,100000034301140,102111011142022,114132142312022,111210404410344], + 140132113010222: [110330400010040,100101231004020,110010100022010,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 100301020102120: [110202102121414,100110014103210,100041204331000,114012032240012,102130004002131,110143020121321,101413001100003,110130020003201,102414231403301,101402211011032], + 1031020022320001: [102021001132040,110200400000020,100032201024101,110203131211112,102301004110004,110402420402001,110000112100402,100002204340200,111140000000000,110020041310021], + 1102000101201030: [103124001420200,100220210034042,102401001110000,112011300223041,102002001133122,100204011000221,100040020103014,100000201032240,102031010200002,101240204232402], + 1120222011041100: [101321001000010,101010424210144,102203011120021,100130014300042,114034400040402,100010100102032,112010344023013,114002002300222,102104000210330,101401300301000], + 110010000102200: [110102401201204,100222004320102,100110004103122,102200130202201,103020200141000,102414034040100,100212030414010,100000111034100,103132114002002,100412200002013], + 1000202000424040: [112102202040000,110100104404110,102110042001043,114100002204212,102003000212104,102000100220240,102030204000041,102110021341014,100210120430200,110203221112042], + 1023200020002101: [102010011411233,114004322320200,101030114211022,100403220020024,110033124420110,103102100122414,100121034230014,114322002322044,112040200210223,112002142310023], + 1021000100401030: [114000222211300,102130040230200,114030034013200,102303214031001,100001010101032,102212241110430,101124314020402,110130402140002,114432002322240,101402104020302], + 100113200442214: [103310001400000,110042014203200,100033304311022,111001210040344,100122401023041,100131014232113,100221000430010,100400302201222,110204020000322,101104301110011], + 1020310211300232: [110441234224400,103100014031411,110000300424304,100032121024110,110013122130200,114020204102020,103121221400012,102022400211311,110030400004330,102004204001111], + 122011330001240: [103000004012003,112303041103203,102101024022111,102020231440400,102144200210031,114030304122412,102121104130242,114104220000003,100112011040312,101013200321014], + 1044033110002024: [102010244010000,114430412322343,114200034110031,100000430014301,114423002314000,114040002210432,102214020242110,114010134021022,100010040122204,103314044033003], + 1103102304021202: [110000222102001,114400012323303,100100400412043,111000000020420,114320132322101,114320010000123,100021044312310,113200212430221,100010020023102,100000210000040], + 200231242112001: [102202310203222,114404010003320,100042001020203,114130210231020,112114324040000,100004410120102,111222214101043,101011211003002,100000241000002,101001040304214], + 200331011000030: [100100331000022,114222040214020,102000111441024,114240000000041,102032000223300,101013024000102,101000441140230,111300214121201,100100030402001,102400400200100], + 1022000100401212: [110010302000004,110410000104042,100014014203233,111422100034314,100102001013034,100000040413000,102030414003000,101342020314000,121310232003222,141000013100220], + 1001041002002004: [110002302010012,101212001204031,112100232040011,100132034104220,112032410212442,110021233042220,102002200222041,102404414041110,102144044001000,101013211000001], + 221102021000012: [100000430122100,101200100304010,100000001033001,102020200220310,100124100031200,101010200321022,102000231122032,103304014010000,114020002212200,112402002010210], + 1004212300002131: [114000024100022,101022004214304,101001231032003,100043420411130,101001020322010,114112244122013,103310220113140,112144232304210,102443421400110,100043041020120], + 240012400200230: [100140200020242,100004120021240,111201022223123,100131101201030,110001020030002,111421014442003,100100244002230,101010001000241,102000221100240,110120014401401], + 302210220143200: [102123220230210,101110004021320,102201230200104,103012101401220,103001334010240,100214324104012,101333201002122,103200021404423,102003114002001,102013010220212], + 1102200224120041: [114012304010103,101232404040100,100044000201201,103320304021024,102102020203131,100000301041003,114401322310000,101110404001000,100000000101012,100043204100144], + 121014100100044: [100020011041102,103022004000010,112110201100113,100412131010010,100130024000300,101411201111042,112122234040200,114122100211000,101101001110221,102302400213001], + 1013221232224201: [100203321001221,102310400244210,112111040230130,100004101023023,103010041241404,110333010011034,110423301004320,114000300011121,110401321340320,101110140302324], + 1121100201201012: [110202032123210,111122004100020,110412244220110,102411314024401,114001002300430,110101230100001,102200034024120,104102130014402,110314042102142,111120122242010], + 141021101412421: [111302020010000,114213222330042,101300221003002,104100212101311,100000121020303,102403004020102,110200220010220,101000001001114,103303021404201,100020010420242], + 1040412113004002: [100014100100001,102100004130301,111120004100414,102201101122100,101034024000101,103340410140122,100102114100420,111012202111021,100103144302200,101414100300221], + 1123140233130000: [100121230031032,112000431120410,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,114013124030022,100013200100011,114104200220022], + 110020043303032: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411], + 220141021000201: [110442104221030,101224001202324,103102134001111,102011310202304,100002301040000,112000132001414,111124402243200,102001331441012,100203014121400,110042002002040], + 121044040131204: [102133011413110,111001200041102,114022424102243,101223020300040,103111420110210,102034324000220,102022400203211,101230020303000,111340130010314,101214240300041], + 223222211002011: [110040102001121,110200321303322,114032024012040,103002041402004,102103030210003,103010011401200,114121134124014,103013224034023,100020014210002,100001421042312], + 1010002004220233: [100004101032202,112100002011214,114401022311200,114020004020300,102420400200000,110114130114210,104200200001200,100004321021120,140243003020120,100003040102022], + 100002100000004: [111030212113431,110001030120020,103222004032000,102233034000002,112130004021000,100100200021431,112101202012010,111212024101031,101013040300032,102112314002011], + 100000201101100: [103012034041202,100100204100022,103130031241103,103234031200401,114011320024214,100233001000010,110322311300120,100204431000210,112100204000103,110022040140021], + 1022102240321112: [103034010121101,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,100023014313010,114021040010311,114140004123122,100002301021040], + 121312113301020: [112311011101001,100210201001001,101100001101401,110100124402042,111120402212201,100101021021114,102120404134413,100210010430242,101411001011011,110040212000010], + 133122111020100: [110021000410432,100042304102210,100013030100002,101010010320112,112000021122010,100021111043012,110124041140000,100010044101002,100001000100403,100020124100010], + 230330000200020: [114002104014300,102000311102212,102010004040000,112433112020200,102231041120104,114132420004104,114100110220013,101431304024200,103004021430003,100040404202000], + 1420420332402401: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 130022024022302: [101001400301113,103101024004200,103024000103302,103300021402104,102014111102023,102102024000001,101301014220002,101012044004042,112410300200001,102020304000321], + 220002202343040: [102114340204022,101000011030111,1303043020124234,114403402311003,111143400421100,110221310000130,100223331020012,120313211020000,1013001120112020,1311314200100310], + 1143000013403000: [101020204214020,100131144232400,101001004220021,110232241101002,102104101340430,111333020000020,112233010221200,114020020001014,102201401001104,101003200300401], + 231323022320340: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102223400201104,102342120222031,102221010201113], + 212311220313403: [103300121401234,100122200020013,100004004210020,102331104112002,110121112010004,114132002200241,102330144110211,100404000020300,110214202124100,101200004233120], + 120040001042420: [114343002322014,114100022342130,100013024312024,111012002200101,102102211140013,110020220022010,110210020002243,110121220000022,103400100130300,112400434040004], + 1420010032000210: [110000212101040,110301011234204,110021410020203,111120002100412,103330421400224,112024232302040,114013022304040,101023410321122,102021311100042,111000304400311], + 240402440400100: [110111032140220,100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,114200022343003,100024101022010], + 111100013020240: [101000201031101,131204100021112,113003221014312,103440324001431,123400040222113,103102104003010,132220204100102,131202200011113,102044400022000,112120140231000], + 1004040110002100: [101221121202421,110020102000133,100000204342022,100001020012120,111042022141200,101441101010020,100100241020020,100002004342004,103010330100320,110113042000320], + 1120212202100110: [112342210200100,101021020331240,100020400003003,114100234000201], + 100000000140300: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 102301020111410: [101022014222024,110100120400020,100032000101014,114000024101202,111311002224001,114030000030012,100032134101100,112010024023002,114231032340010,100000010202201], + 200000200033000: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,102040021121030,102102211140013], + 1001304001303142: [100000431020101,100244100032320,110010212101240,104104001243020,100032040000331,104124102100301,110002010440412,110111420033313,100201310000404,103100200103020], + 241003123120040: [100422040021304,102000024011300,100021320123031,100014041042003,100002010413410,101011210300000,101433010300204,102114321401000,100002414201103,101002221140440], + 130210200223122: [102020314012030,101002100323042,114110000002010,102110300210002,100010200101222,114004000020012,101031001032010,114442102310324,102324400243001,100440000030010], + 121021240400431: [101043224001442,110041100141020,101001004002100,110300214430000,110002001220310,111331104131204,101040204002221,112200004001330,102300121100001,110421102110004], + 141422230020000: [102230004030112,100100221012100,1002022012411300,214021333002200,112102000202302,103013200104400,100130401022113,112001421111242,1011001024420302,114112402340003], + 1110103102004001: [103204424022010,110304304420001,102110402001413,102131334020220,114210024001201,1031024222000122,200003020011141,100020111230000,114102010224000,114301012300202], + 200000010033000: [111320012221132,102302144110440,102143202000400,111020002202333,111130224102101,101321311004010,102110241342210,100002320411400,114201000004122,100143034304100], + 1102030130400422: [100000044301222,111012034402110,114221004034110,111100104104202,101223041020020,102002204000124,100011230120014,101104024002242,110133120011001,100400010013033], + 103242023022021: [100013400423030,100033100421220,100032221044041,112210034000434,110131142113202,100030011041024,100011114313403,111010234110022], + 213010221032130: [114410024110002,111200210001023,101101401020424,114030220011120,100002200100100,112410110201010,100020000120134,112422100200404,110202001212002,110001014204010], + 1022203112204104: [102000101130132,100402412200004,112040100210110,111201210000411,102204311100014,110213331312003], + 103324010102300: [110114001202122,103034031400131,100001010100220,114002114012041,102000004012011,110101100012002,110001002004240,103322000112244,100030220002102,111010024401332], + 1030020201140321: [100032004200002,100020241021124,112342201131331,100010200414111,100121044230002,112003442002011,110010022132422,111000042200101,110043130440321,100244341003000], + 1000112000102220: [100400210010032,110022030110040,102011211321000,102124210200120,112112004042000,110010144200414,102010112000301,101023324003111,102330021000022,100000021221004], + 140131110100120: [102231102020200,102120201140110,100331200141014,110112204224100,100200011002042,102212234021233,110224102230230,100120411200320,112401344040043], + 240420400202110: [102212300202110,100012120201211,100024414212001,100000014310020,100022204300002,101014014211233,100412120433120,101010100312002], + 1012000100224014: [112003001133011,101002240304011,100201134100140,110034100040021,102000221032102,110213002132000,103010000110210,102022201020004,100100424030003,101000131030120], + 1014301024113321: [110212012114431,100001140020000,100012101223021,110031301200114,114002020044120,100021004302202,102202200240222,114102010220042,102021301441201,104103102103201], + 1000200001222201: [110003000042343,100020341001100,110110414402000,101100001100404,110011000043131,100121214300203,100022221044012,110312300010200,110001120021021,1020110000101002], + 302000010323001: [102143124001400,100011011020440,101002121000111,114023314013200,100000201024213,114003422304142,111001404112102,102010201122000,114011042300202,101400031014311], + 213000402300202: [102142221342202,103043404000202,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420], + 114002013020030: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 1104000001201040: [103142021211011,313040122221220,102121030212020,114411024142133,103004201240410,100022024340200,110230142122333,110010002002000,110204012111004,112311411133302], + 111001000401004: [110002212130403,101042411000122,114101002311013,100133004000124,112440104042121,114200124000134,100224210432130,100120204234213,100003011231420,100222200002003], + 100021020102200: [100113220020101,114031000022030,102014002000401,103103241421322,114121012340044,102104304023201,103310300140324,100002224244002,114310200002400,103211220100010], + 1003012121103120: [110332202020000,112421004012141,102224410201003,110030021010001,112001321113132,114224034000310,102332101001000,114002100024002,114424214144024,103101440121101], + 210212004000200: [110002420020000,100002210401034,112011340213224,101013011030413,111301042202102,101421041100223,102000111122140,100001210000030,101034231002130,114220204031100], + 1031042010002130: [102004004002321,102001010240202,111301022200213,110310012024144,114213002341424,112031000230000,112012240221124,100440310030003,102344100222410,110431020000020], + 1041440213142030: [102301401002404,100232214222204,102012004010000,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 110310001230122: [102311004012010,101020401033332,100012001023022,102112012004120,111321000002001,101210011042021,100042100003104,100004020021344,112420044040112,100100000000042], + 1002022011231114: [100030010422041,114003014100103,112421112010232,102010420200220,112234001100044,102033001100221,100210144220030,100001410012241,101003004000010,101001011002301], + 100041031024132: [102201444044432,114111140220220,114004100011010,114302010000013,100100124003241,100002310120001,100111014231402,110220022111241,114100404000100,100022024100312], + 1100111000121110: [100200011002200,112001112002104,113134002412222,102100311320110,110430002112002,102240030230010,110030010120002,110242024430440,111003212230033,111020404402004], + 100004331000314: [100002044211310,110430122111140,104012302104014,102320221000230,1323100312100112,242022202122014,103014004000240,1140000400200300,101141224002302,111101144404022], + 101014020002002: [114020000020001,1302101004142102,110001001100001,201014000241421,110400102312140,114223013001001,1002000010441103,100111204004442,1300011022000001,401400200400300], + 114000140411200: [111110232242220,100121104300001,110002041102000,103032040110110,100110001201401,112000042002001,100200130430232,103022101412303,103011044000000,100101124002120], + 233020400311200: [110414402020021,101000034000220,114312012300300,101012104210042,101430001010032,112402012020000,103322241400404,103210120100143,101010024213100,100040000123130], + 1124242430341002: [114400214140002,114024022241001,111342314121314,100102014230000,103410004001234,100402022200304,102242024030234,114012434103044,110001001320030,114222010210204], + 111202040214200: [100240000032004,102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,114420232314210,100301004321221,100020000410313,101220200040320], + 103312000220111: [102141401343022,114131304142010,102110314002123,101100020300101,100111121000000,111131124100300,101020204010401,102040111124412,102113100203200,112310231134114], + 1020111021110122: [102343230224321,102112231020231,102320000240102,100042144200000,114201104111034,102310140240012,102030304001101,100020420121003,103020004011414,102102201340311], + 1013402100221003: [100000014102130,100022044344000,140104013031303,101101001020004,110010404413302,100011144312002,110004001104031,100013001214140,110002000040202,110110424221134], + 100002202300342: [102021001132040,110201201211024,110402420402001,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412,110123004401121], + 101322213042004: [114024312212020,103104001440422,114220302314020,112030101110231,103200024030232,111014024112203,102013434000000,101102411114421,110000020042112,110231004242101], + 1022004104121240: [111400124420002,110020402002000,101033124000402,102401000201121,103310421404111,103000020120303,111013232200403,100112044024030,101202024231020,114100042311200], + 1041110400020423: [100200024104410,104100402102320,104133012103021,102200011100420,110020231100021,102102304004203,104132311242210,101040210312111,102210244040143,101100224000200], + 130033111010012: [103012011434022,114103402201140,101313004232122,100001004301400,100031001020001,102111420210110,102104131414203,102203314011321,102000204001042,101231220300123], + 103012141104024: [102113300230021,100010044310002,130000420243230,100232104120201,114221000004311], + 1240030323000021: [114031022302044,102031011441221,102021201410011,114103020221100,102002024000132,100401001011010,100212221002300,102400004021004,102240021302000,103202140103403], + 1143132040003030: [114030110041300,103112004030003,102300001002144,103132424000410,112013102004422,100400220013232,110010002000100], + 1010001102001304: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,114002002300201,111012002200101,102102211140013,100311314310000], + 212130202420022: [100313030142202,101221020300020,102013401100100,112210102030020,102043030202102,102300014110023,114230024111000,100402120031033,102103422004103,100010024202200], + 101014002002031: [112000001123004,103400100131022,101004141000312,100010014313003,114100212210001,100022230100202,110100020004310,114143200211211,102002001101211,110112022120231], + 240100123042024: [101042104010000,114000122301411,102111002001230,110410000002004,111424002101030,100414231011020,114121110030203,100110044301024,111100040001003,100042404100401], + 1424233242210312: [102041310200042,110320202023400,111431110000042,110301030010140,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022], + 311001100230040: [114040102210432,100034004211240,102140121410131,112040200233002,102113111343110,103234100101221,114002220010031,103103311424020,101030010320024,100001010412000], + 122322003230020: [110141104201032,103200000101342,100021000101421,102103034000310,110011042100122,102001231131043,112000000212221,143304200441210,101022134002430,112031020230410], + 1000020340012002: [112124004022322,111300210014020,102103201320411,100100031043410,101033214211000,114001100024243,114100012204104,110141112044000,100034244303010,102003104000032], + 1000002031024030: [110202012100020,102303010241010,111342020011220,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144,100001221021031], + 121212143303410: [104130242103012,100002131024210,102000101132400,102412101112121,112023140212112,112313301100030,102110244000130,102101031412121,102313310224103,114000312301300], + 1012030100120121: [102301004011202,102000201100400,110034120023130,102101004002000,100110010410230,112121040200102,103000101240211,114221040210200,100134044003303,110220010010120], + 102303023001302: [100032041021210,110004301222000,110414300030001,100030020011022,114310000001232,111202012222402,102040041320010,103203401400132,103142111441040,110104002010100], + 1000100140043210: [114443330001442,103101041421200,102222321000301,102040244010100,101204444040122,114031030041040,102114240204013,112104222012023,102031021133300,100011301043341], + 1000000230032042: [110102224201130,102104131412412,114020312300021,102400204043012,100000000200102,101011011000320,114420200001202,102100200233123,101012421000011,114023004031001], + 224400120211044: [100002030102221,110414000032411,100120301022212,112203100201021,110000142000203,100013220400031,100200000430401,112203424001001,110310322100124,114000010010203], + 1010240040002121: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1400101021431000: [102000001132113,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,100004410120102,111222214101043,114412142320040,102100044000000], + 101310324040001: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 110013423010002: [101041310301004,110021122100000,103001224014142,114431224113420,114033012202420,111211002241330,102012000213011,112040004000012,112410214043412,102113201401300], + 1100423401003000: [100004221020020,100013214101120,103321300144024,103241114031030,100143001000202,112040222001200,102010304012020,103131032021030,100004124302203,110200231314311], + 101000020211200: [103111401420301,110124010031144,102140230210111,100011210412002,112004431132202,114130202311020,112120402013111,100434444323300,110230112032040,114031400042021], + 120011030120000: [110204034240010,104102030012121,110000011100204,102110231441040,101021111000022,102100111413012,100113214302002,103442014000100,103021000144000,103132014002131], + 1032020012230112: [110230000000002,110220301202400,100004414101224,101003140322000,110401001002400,102002001130001,103012000100400,114201142324042,102213401111223,100040120000031], + 1110112230110132: [102323304112342,114003222201103,110240020100212,100022204300000,112012211120102,100101040400110,114221002340120,101002204001310,114220200000002,102324004112400], + 1002112332100123: [110301011234204,114211102321011,103330421400224,102000200201422,102412004022002,103220124034124,100032204200023,100023211030203,102104301004310,112000132302101], + 1040000021224110: [114040100030400,102301011002321,101012011022300,110003301213002,103412224020402,112033311122000,100210001002210,102110120202141,114241032332313,112120201101200], + 101122020023011: [103122114004113,102242301122200,110030110122402,101344140314114,102100201400122,100011111022300,114032300011302,100234004033234,101222221020440,100230020410200], + 121012011002001: [101210144014403,102111420233012,110000020022324,100020231201012,102210424042300,100101101020002,110030420410024,111002012202324,402104002030100,101032040320334], + 1004000430310231: [110213002132000,100311221002322,102022420220121,102401214020202,112102204024002,101000131030120,100001301214030,111140000012120,100410040430220,101041404002020], + 1021311102043111: [104110212100123,101200140044000,102214014010030,100021230411014,110024000412302,102331104110040,100002134300030,100130414300000,112310002020302,102002201413004], + 240011130320214: [101042411000122,112041402312040,103023021244000,110104434402221,100224210432130,101002024012004,101421210302410,112030022300112,103100020122200,110241130013040], + 133402201020122: [103140014002031,112003020220120,100043024210301,102014001130100,103400201200000,114021200012000,102422131400024,103210304000030,102340101000041,111201000013222], + 300134100002212: [110224314430000,102203301123001,103100134001001,103210400110122,114030314123101,101201124013202,111322012202310,100400201010000,100010321043134,111220020010043], + 300010200313412: [110202210102120,114001004100003,100041014102004,110320022101120,102131421000411,101412030302001,102222021124112,114000040031021,102400001110113,100404201012020], + 1030111104004221: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 100341200042220: [110000202003120,100130220400000,102312300220000,112221024002232,101020111140040,102041111130300,101042200303012,110401202021231,100240204101020,113020012400412], + 133102000010222: [111130224102101,102322020212020,114403304140021,102103021340120,100031131042030,112201422040000,114021040001000,114024130031020,101220201000030,114022300011000], + 130044324004400: [102303110220130,100124120011100,114003004031430,100220304220004,114110000214110,113004001021230,102411000200112,110332432020400,100120120402022,112110322044020], + 124021132014040: [114021000012310,101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,112143144020012], + 141004020022004: [104140321242022,110020004422304,110310000104014,103204301200000,110122022041331,103010311410024,103403411212300,111102412112040,102230002023220,103012041241100], + 223001001300404: [102000140200220,114233210000201,100002001024100,102103130221330,110011002100114,114102220033034,114004020020313,102022421132024,103303041402240,100002121021022], + 101211101320010: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,114004142244000,111212114131222,102140001441301,111012030022123,110000011220204], + 1003120112012004: [103220000100202,103122224034122,100142011002402,114004200021000,101302331000221,101111440324120,102302221002020,102101114000401,110102002120401,102124301120200], + 1114204043000300: [110312332102012,101404204001310,101003100302100,103000331422023,101400101100001,100100020401310,101040234210040,102003424021402,110021330033102,101002034003411], + 1120100200003322: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1124101002002300: [102001404012100,112004202302034,103300004021200,102122214131011,100023031000024,103230134011412,100020004101012,102402000201011,102311011000200,102021021101204], + 123002100034100: [102422001400000,100301224310100,103002104012101,103220130211414,101020220323012,100012324202240,112101102012030,110003410100312,114000022300301,114000000021100], + 1003011202213222: [101011004212201,110032022002020,100214230430124,103031234000122,103230011412301,101042001021012,101100104002023,100400000010020,100124021201021,100102001000000], + 100130000013301: [114020024120310,121021032342113,110220210110004,1122204031101014,100003204214031,1100220200041014], + 1001121021323132: [110112102211042,114200022300033,101400220303133,110431442110400,114011120021012,100100111041320,101420010300310,110000004210112,102334001004100,104100001240034], + 1012100044011013: [111101010010203,110110212010011,103120101441202,110011000022102,101002121003112,100004104210221,102202410240103,400014404414011,100030211040004,100000010101402], + 133020140000230: [111102110012000,101001400301113,103101024004200,101000344010212,103300021402104,102100431342023,102102024000001,100104400021023,114003104032034,102020304000321], + 1140232120001101: [102000144014000,102100104002302,102120010230031,111202300010010,102020304000242,101232321020000,110002400023342,100120044233220,103402201212100,113031010134002], + 132103142201004: [102300324010203,102100142002204,102040011121100,110113004402201,100030024303023,102042204000300,100001134100120,114023214101310,110301232000100,110102400013020], + 1100412112100411: [100041200010000,110111001300044,111000002202324,104132100011024,111211010001300,100113434301241,114030020020301,111014014401303,103210001422303,100100000022131], + 124031212031103: [102110104004031,110130100010331,114004004100022,142100000024013,110022000022202,114300402320043,103110214004242,120002222420113,110404044220000,101010211033230], + 1140002323210032: [114000102240100,103200021401030,230222010240012,112102121020220,130300100333301,100020120024010,112042042001002,114102002344100,100011204340230,100202400002411], + 1141001143204003: [103210400110122,101112020300011,114104302341000,100400201010000,100010321043134,111220020010043,102100021342024,102244400201444,101010001000121,101232104040130], + 1030021010204101: [102020044000030,100002001022412,111202320012012,100003001020010,102442004020131,101011124210300,112101422301001,101301220311200,110040014213300,100320421002220], + 1020112001300220: [102000020223013,114040102301100,112121032014014,102310111001210,100020241043022,114413232320000,100100001040134,102100121341102,100002004130101,100301024310020], + 110100401302202: [100103200020313,110000431213211,100414024102342,101120120330222], + 1003232100422034: [110104231221040,100042110122000,114400322311044,101021021002110,103224401422304,112112122012022,100401140033104,102120100212020,100020114200220,102411130201102], + 1004201300020013: [100001300102001,100220101204311,112033124022002,101013114001130,110022134210202,110110102042312,110440211340302,100001300000022,101004104010020,102001014003100], + 102012021000021: [111101122102222,110034004420011,103000114001000,102242024030234,110141201000200,100003344214000,114400300000221,110314014422011,111022214113044,103104024000023], + 243300413202000: [110041030411301,110001041213031,103301210142043,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002,111202012222402], + 243103020000241: [110020402002000,102042221101230,101033124000402,103310421404111,102101134004010,103000020120303,100112044024030,103240100102101,101202024231020,114100042311200], + 224044330400040: [103102101422031,102130124130100,112404002023002,102022020204430,103214021400010,114003422304142,100012401020212,110100022010014,102042231130200,103144220102102], + 110124302311002: [102010011411233,101030114211022,110033124420110,112002142310023,100040101020201,102102240210310,114231220004002,112020300241320,110410012020110,100004424230021], + 1100013010001240: [111020044112020,102004404000111,100020040101021,110100312012040,101104312040120,114044400021021,111412122101012,100003200100331,100000124200111,112220434011000], + 130010402030010: [111102440020002,101202001024340,100004000102302,103312010113222,110130022140122,112002304004203,100034110413403,101030040320021,114104000002301,102232110201100], + 1000102120101030: [103442110132330,102111310313001,100203010434220,102140322001242,114023044020211,112013124020300,102202321114004,110401214221203,200200133341004,100242001200000], + 1141200320010130: [114213002340022,101400104042212,100000021022400,144200203310100,1003022312322100,102001244001224,114030214020000,102023422000000,120101041020020,102330204110410], + 1010204301300213: [110200400000020,110203131211112,102301004110004,110021100023210,103122000100403,100002204340200,114103412201420,111140000000000,110014300041302,110020041310021], + 200340341310214: [102130124130100,101002121000111,100000201024213,102022020204430,114003422304142,100012401020212,111001404112102,101400031014311,102110230200201,101240404011020], + 310020203111444: [114120030223400,114423312314004,100340100424220,101202014010412,102144031403200,100041004202111,342003122142040,100243404101011,110421104220200,102322124112422], + 1000221100000124: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 120242012440140: [100111334330000,110023240021020,100300433210004,102240100011000,100400213242110,100020201002004,120021202100230,102320120240200,100000012221111,110102301010411], + 1140023440311401: [100430211011410,110010340040012,111010124402202,110211020121140,100020244310231,101000030321102,102110320210011,114221234002100,100033100101240,102420001110301], + 212102030132222: [103312010113213,110020240022142,114401212310021,110131022111320,112000401132020,111302014120120,110013034211021,103001214042003,101020241021030,110020001300000], + 140241400202022: [103010021422042,101110000010122,102100404000021,110323002022000,104123302100200,100103414300020,110010121333141,102402034020001,111202324134000,101433201010200], + 130002021100101: [103003001400110,102143011343003,112022001120410,100341410422102,111002012200131,101400040330021,112210001102424,110101321301120,110001032002011,114102012344003], + 1000300014100040: [101020044011003,100021014100124,100122040012210,101040000300110,114202124000200,112041432030144,114000120020004,114241110000102,102140214001144,110200202121001], + 1142021241010010: [103000011402201,110210134244100,102121041441000,114102022200000,110233010002020,111203034103022,102101304000012,114020202241323,110004402131000,102132421000100], + 1121140022033000: [100121230031032,112000431120410,103042024040104,102304104110001,102000200200301,100104211044110,110200101200402,101342300314204,114241222321321,114013124030022], + 124402000221041: [100000044204004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414,101212214011134,100001121023210,100012101020002,114204120000200], + 1040033030201302: [101230111024130,1112100200412130,1320100232411004,100121120102303,1020024112001010,120100010104132,423203002400042], + 210001020023030: [111102104100334,111210014102030,110401100001104,111440000000202,111200344442041,103141001240021,100001401034130,101220200304110,110420014242010,110403102222001], + 1101432000001304: [110230000000002,110220301202400,101003140322000,110401001002400,103012000100400,110210024220020,100401424300314,100040120000031,114200142324000,112100322040040], + 214414123000031: [104132340011314,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441,102022411412401], + 1002100411213122: [100422000031421,101214104041040,110104231221040,100102000010243,112410034040040,103031410122401,103101000100022,100040021031201,103000300120001,100020141044111], + 1002400232420012: [102004300220000,102010212000134,102110021341422,114241022332104,101403020334021,100010001040104,110141020400341,114133102311014,102341204111304,103211001422023], + 144212103223430: [110011414240022,111142010020301,102100104000040,100000144104100,100010044300003,112120224040040,103301410110110,112114324040000,102124031023100,100204104320231], + 221340140432000: [101220111020012,111401200000040,102300122004231,101041204222101,100024024211001,102110001342114,102042444010014,102330311004110,114032110040320,111203012221030], + 202331013000002: [110100100031014,114001002300430,110411130100013,100021044210012,102212034044212,111341300011434,100401304302243,114101212202230,100420001001112,102140400210434], + 1000223001223311: [114041400010321,101002234002002,100000310102011,102220130204110,102331020242011,102012030220314,100244244322120,100220034341000,102101134030334,102103202002232], + 120022010300020: [101121211101004,101114101012020,101001304001101,103000110142041,102002112041034,102041111020030,110022001201023,103101124003110,112401144042000,101222044204000], + 1100030000444204: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 222201234100023: [100002001013012,114120220214130,100002200001011,100120001204102], + 112310442004211: [111030124112220,110000230010221,110202110113000,100324114310222,114001020022140,110002242100100,114012004020230,110000104211010,101022221002220,110220400401033], + 130013314023140: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 1010224102021001: [101240220300022,100011000202214,102200130202201,102002020220000,100102120422002,100002010014040,100001300012442,100022000410041,103020000102011,103001031420203], + 122430102020402: [220212211200433,110002144411414,100003024303000,101204110411102,102142302000411,103222440102000,102440420200031,110002241012102,100131100001021,100000100422002], + 204103001102322: [100440031001120,102020200223310,103220011420242,102032012000101,101001400301113,101004201001232,112102102302000,102141231343401,101231104200000,100002120200101], + 211130330201010: [101221414041100,100032424312011,101110301040312,102204010204023,103041020101400,111300402200003,114141024004011,110022341300320,100210301002021,103040000000212], + 1113002200100201: [110041030411301,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,110033041200104,102000221442214], + 1010010411302200: [101010241003223,102000020220000,114412142320040,100003044100101,114012402332300,102220211122102,114420022314022,102234004010003,110204314402021,103121004002210], + 1044002110020220: [100400224300040,111144042240304,102000131131100,110201002043201,102400021401101,102141201342300,102140210230000,102131211411102,101001004012413,102024244002012], + 1201222201213002: [100110000410200,110120200030233,100132040031022,102442004020131,110031010430100,100432431000310,100004000014032,101014121024142,101001201022304,102104004002400], + 1041121212311212: [102000221101002,102000431130020,103102314001204,103120004004010,103222120102031,111104404100200,114432224142000,100202234320210,102112400210210,114001332210232], + 100040011201012: [101230002122040,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,102430121110340,102020121102120,112141104020201,102000024000002], + 1100100120201300: [100301301000024,102020111324200,101044400300030,100100310024040,101024024002120,103212010100200,132224022200202,100231004331011,110203002102023,103442121212103], + 202310400211312: [114200212322001,100401210020002,112210322040121,100402042200000,110001440041003,100010111022102,100220300410430,101402010301000,100000220111021,103140120112001], + 101300043401010: [110101200032041,113402202420020,100000012212010,110041002000220,100040111030202,101142410330304,103110001242101,103431011210021,111132304100420,110433222223310], + 1120000022102114: [100321004011041,110002342100014,110021312002040,111101042244210,110441010002400,110124002040002,103110314000100,110023410122402,114203104001000,114302200014241], + 1002022101340120: [103203224022224,100143200421104,110213010400012,100123221201001,112313000202012,114022114010220,100010001043004,100011410400320,101112020330001,110102101002040], + 1020421022112102: [112010032340022,114120304000212,100141410402200,114111202313213,101042041021001,101211414040000,100010031232443,100242024100000,100114020414244,100012404203210], + 1400020342002003: [112012000220043,102414000203000,111101400022211,111320100000001,112002202000010,114001102301101,101010041003004,102000121442001,114011020020242,114030100040000], + 1021420024210010: [110431442110400,114011120021012,100100111041320,101420010300310,110000004210112,102334001004100,111321424123422,100004000002200,100001140411014,101312014234200], + 1410343201224101: [102242304042410,112032012004300,101001034002001,102000201131020,1010120030012200,101024411001024,221104221024023,100010410420002,102123332000002,112000034000041], + 1021212301002021: [114104200220022,102010244010000,114430412322343,100000430014301,114010134021022,114102224104002,100040240003341,114422404110312,112140134003231,102403144000120], + 111012320010012: [102000034011002,103204000110000,100001014340021,100000034312214,102103001340022,112032000211000,134402411001001,110032020020001,100002110000131,112021020220112], + 132234122213020: [103040014000114,110012040030401,111020142230010], + 1040111100100000: [111122010010414,102040404041112,114140030222402,103331304032010,100121311021322,112301120200041,111003302200334,101000200321321,102440000234100,103030100144420], + 1130210231004021: [120402022102021,114400210002021,102010002000402,114201402332241,114211030021301,210412232040000,114030214020000,114022000013011,111232232222210,102230104030012], + 1003220132012024: [100030204300220,101021334000222,114010122330030,100011024201101,111222442222413,110030122102303,103044001412002,102211124032000,110400200000240,110101301000001], + 1444200133302110: [100101024303332,100013201020230,112300101101010,114301302323032,114200304000002,1300040101002020,123310121130130,1001210043013022,143442111023013,1022003020311200], + 1022120000030130: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 101000000200420: [110020301220324,103040020122332,102020100243032,102012200202303,101110404021211,103110041442122,114042014102321,112003110242131,102112222001200,100011114300032], + 1040030020032021: [101004200304221,111203102223243,114221334111220,100010034310013,114311400000224,100040101001132,112211132040204,102113232001100,101110044000400,102102021002000], + 1123032011000000: [111001000020034,112011041110422,101410014021040,110001032010100,102242210200010,114422214113202,1100020120011024,112411210202004,110002421122010,102001200200221], + 1024034310220010: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1120120243000100: [120101012430440,103102124000030,111000324110232,103402001200000,100400120022020,102120300203403,110323300004120,111102204403003,111401114423000,110010120020200], + 112100410221222: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,100020124204330,110200320000000,100001424102041], + 1000100012210014: [103134014000340,104103100010141,101440004041120,111101222240010,100040210411102,101031214000041,100110004102034,114112020212203,102040140220220,114300132321233], + 1142300113030404: [100022041030000,102202000200010,100010430202422,112340020203003,102443011400041,100010430022021,103032441431121,111300030040030,111003000041302,112434400204320], + 1022042041011200: [111110214100223,100012000414010,101200020300410,100110224304220,102330211001002,114002110022030,112211110200310,102212141112000,100023020200332,114020204100242], + 121221003240413: [101211201202134,103120104030100,102020030220200,110100440400010,110003434410403,111110000014401,100000004130010,101300204230000,114002004100140,102311020240020], + 110300322300102: [102130411411444,103103204000110,100441301014410,102404004001203,114001024010010,102101224000013,111212204420203,114230020000033,101012004002440,103110400120002], + 131134004004000: [110110010022302,103000431240102,114011004114100,110101140002212,110420000104020,110410140000110,100000401031111,102004101410420,110204242124012,110022301301002], + 130232344011120: [110011011212100,101134030011000,103220211421421,110123230124040,131000001020102,100044130000101,110420001000202,100102110402220,110412310030001,114012022302022], + 122201020003224: [110441234224400,103100014031411,110000300424304,100032121024110,110013122130200,114020204102020,103121221400012,102022400211311,110030400004330,102004204001111], + 132444244300220: [102140014000020,103011020140013,110030002102021,112200401102102,110304200001120,110022042000121,111122104100001,110402324221020,102412021114100,102110004030420], + 100240020000010: [100001044201401,103022120100401,112411042012210,100110444302011,102142140210001,102000202041211,100211004220330,100000304104221,101002104004003,114124004001310], + 1023120202043100: [102104002004301,102144002001232,110000221223422,102002104001004,101440001104012,102441140234014,100411130430221,102344004014110,101120121103012,111032102202040], + 1004324022323001: [111000000010022,102040001123104,100210414104124,110403022010001,112110001103200,100204004123220,114300202300030,103401140121121,112100122010004,100100240010030], + 100230002202140: [104102202102142,100000401022041,101012310301211,101204234044003,122002011010101,103014134000300,112001002030020,112030200241011,112034002002000,114100202203044], + 1422202204201044: [100310304310342,100010041031020,100042400001023,112402000200101,100020201221000,101010020301243,111010130022401,112140214000020,101310000314110,100013111020021], + 101000000100031: [114210100002014,114440140000234,100021100420321,100400000020412,112230002033202,100401222201402,110000001012100,102101011123100,101440001100100,111210200002411], + 1023401013100200: [101230002122040,111124004101012,101210241204043,104102040011120,114103220220104,102120004001310,102430121110340,102020121102120,112141104020201,101200111020111], + 122041001000441: [111320012221132,102302144110440,102143202000400,111020002202333,101321311004010,102110241342210,100002320411400,100143034304100,114021002331014,100100104102112], + 1020020021012120: [102001404012100,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,100023014313010,114021040010311,100020004101012,102402000201011], + 100202040412040: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,103414101212410,100424030024330,100123021223100,112302011102312,102400041110112], + 1003022434000120: [100200101000000,103110431441100,102101324130010,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 130220041030320: [102200001120020,100004400410040,100004210400203,100002431220022,110300102021320,102301221102000,101012004001204,111411000030222,100040011020200,101414411104011], + 103103120201012: [103000004012003,114000014014332,112303041103203,102101024022111,102020231440400,114030304122412,100023041030400,102014011102400,100020410124020,101013200321014], + 1004022310201032: [110004301222000,110221000111302,110022140120012,110024140142000,100321001001010,110321302022203,100002204310140,110110210011002,110221322123012,100020320002000], + 1120011002410001: [100034204311021,101121024024120,100102204231301,112201104011200,103020420121211,110341024422102,111031030040220,110024120430323,101403200302022,111400102104003], + 122013003210012: [103102011422101,102412201400413,102201102000000,110022000442031,112140202302210,110001042012030,100200104102011,110432132110010,101420304041030,110040222132423], + 111110310130240: [102231130213210,103214010102022,102000402041014,100043324210140,100023024211011,102404021403141,100003201021001,100122020011232,110002021121023,111102042213043], + 102331242012033: [100104341010424,103142210104020,114400240003003,112203001103411,101022001002030,100212024121000,101104040302120,100010001032200,100221110101420,102441030231300], + 1002301200031033: [102340221000300,101000130320340,112401314040311,100110020031042,102011004013000,110422102110221,100220124221000,100402002201002,111110004402021,101011014002032], + 1120212202013102: [101201000300102,100100034002202,103102111210103,103420240124040,100120110111021,112121011101002,103111010120121,111134204101221,110241211302001,110140300034040], + 1021003340101023: [110002302010012,114444044140220,101212001204031,112100232040011,100242011002002,112032410212442,110021233042220,102002200222041,102404414041110,102144044001000], + 110141003140201: [110124012142001,103110044002000,100000000413211,103024214000000,100403110022202,100021031020121,100001104100010,101013004000002,103131021420001,111200230002002], + 1024120002020144: [111104102242110,102210011101414,100002200410230,100044010200300,100003010413400,103334120114003,114032124013234,110112131124012,102143020230411,100440221001232], + 242303322114230: [111001440020003,102020204001132,110200020010003,100002214100100,102120104003011,102100144001112,120020201100121,102000041441002,102120402000014,102000200210032], + 1010342240120403: [102001404012100,1010400230221020,102302200210010,102340120222440,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 1144043310022002: [100042301001230,110002240134040,100040014310020,114000014100101,110031324200020,101110310331140,100300001003012,101430021010144,111210412213001,110000022201310], + 1120001001311304: [110100120400020,102113200210140,100031021033010,114030000030012,100000010202201,100012024210210,100120004300001,111140214103110,100010201030330,114022232303310], + 1403112003023002: [114400022321400,101302340312230,101000034000203,100200321200200,112044200243000,100002300421000,100202140430012,110200301210031,110000420020100,114304212302401], + 302212402010210: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,114113104123200,102030304001101,100020420121003,102300040221403,100114021040000], + 312003244021002: [103301210142043,101110044200100,102411000200000,100400014321101,112012020230301,100010101020023,102000221442214,103142111441040,102140101343110,102242000200420], + 114400102222313: [111100114401014,110003112130100,110103011302220,102020440242023,101230000302304,100030021041110,103222010114132,102300121004102,100042024100140,100110004332200], + 132420000000431: [112020200242131,110240024241203,102020204010103,112432120204400,103130044003012,100022214101010,110001340112402,100142221013104,103040421244210,111111014402340], + 103200001210003: [100000241020300,111021030042411,110131011000142,100201134320102,110000302122001,103302031401001,110202012020000,110043414212400,111110004101041,100402000010424], + 220414040300300: [100202030140400,101024130300401,110010321011300,142011423130201,102000401130243,114031212300003,100442230030000,114002132240212,111001122224141,100000220000220], + 1044310320020000: [102144201343034,100430010431044,111020122230001,110111221000100,102100204000340,110330221300223,112020442310202,100023001030212,114344200014300,102240001302103], + 1420020302042323: [110141201302122,100000411231000,100023001222000,101002124002220,100101004230030,102103012004030,114034000012210,101044004000132,114114004140010,101010241113102], + 1012010000131300: [100122220023132,110204002043423,100032101220041,112003011121310,110110110133103,100130101220012,100400030022020,114302144020021,111012414402104,114122020031041], + 1000202200021220: [100000144201001,114202202322132,100000011032020,102022201320204,100002111020330,114432200001322,101040404000121,110300230102002,110103032012200,100010004340042], + 1040004023000010: [114200402332011,103240411403020,100020101031131,101010000323030,114200202330330,103101101440200,102142221401140,100000101031020,114000002302313,103012201401210], + 1010223022000012: [103110020210000,101420200304000,114024102212214,102102000212010,100233404320202,102210004110000,101142420012223,100000004204012,112214024003000,114001410022014], + 1120114042002241: [100020001044100,1340120100441224,1301223001003430,232020104433104,102330042000001], + 132302002220112: [114110200030200,101012130310043,114001310043110,114102344121242,110110104204000,102010021132200,102011001411100,100001410411142,111010020021202,114003300023020], + 100000120212142: [110021040020010,100001140020000,111011030004021,110013030020121,102001221100211,102100132000411,100121104300201,101220330300003,110132000024420,100011014130012], + 1042404102220010: [110034300021014,101042401000112,110230010000000,100112440013034,100011014101313,110104140001020,102011114000320,100041001211002,114200134110042,100204304122112], + 131110144032023: [111000024110140,102230100201001,110000401221440,102410104040240,112314301103022,100020004210021,102000222003200,100001040020122,110104101220110,110112211000311], + 1010220000431300: [100321004011041,110002342100014,111101042244210,110124002040002,110023410122402,111204200002001,111200020004203,100141101040300,103000104042400,110000011012202], + 1020310100100200: [111000022202402,100430211011410,110010340040012,110014032101430,104421312102244,114131014101010,102240214041033,114200322333401,103010021422042,100000001022401], + 130012120011424: [110010130000004,100000331040124,102122022000230,101011200324311,102301011004011,112030040242300,112400002021310,114030310030022,112224304041202,111103044400100], + 1024000412011400: [100031300002022,110210020002243,110210022120040,103002044002032,100101020402424,102201112000001,112211120202000,114211040011201,100020100423404,110001222202031], + 200000201004010: [114010200011100,100102110412002,100000204214001,102013024000211,102022000220004,100012001042030,102000404000400,102004004004200,101002134011001,103440411210000], + 124002021321013: [110412220102021,100300004310110,102002400430000,101200124200010,102143120210003,114310012300020,110003212104043,111011022203010,100001000100020,103211021423243], + 100230411103001: [104100202101022,101131141042121,100440000031023,110012012004102,101320244221142,103100401421202,100002211221402,100103301000402,114101022341020,110340122100210], + 1101210003102202: [100032041021210,110414300030001,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,114142044120310,110220410000040,100012000022003], + 100034000004222: [110001422030011,102144314002302,114200112340002,102343014022001,100211000430431,101213240301002,102240320200212,100140200410200,100020020120200,110210001214000], + 1101441010123430: [102021001132040,110201201211024,100032201024101,110221022101104,110023100402320,110123004401121,102032020214001,100040341020133,111101344104210,100410220030300], + 1024401021240112: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1004230232322310: [103212014020132,100102101000203,114111200034310,102231301122300,103230040101112,102001004000100,111121104100004,100010041032043,102441311400421,112030004021010], + 1011344010300421: [101214200300004,114330120000222,110001440004103,110010022202202,100003030202011,1000301003020410,1014111023013000,110320044420300,1003300020121100,110201430400400], + 1122011114203300: [100000041040000,103004104003011,100101234301300,102331104110040,102300010242203,100020410410021,102144002000300,101233320302120,101421000304101,102011204023300], + 134041034223422: [102334004110232,103013000104404,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041,111300202200414], + 1121000000204032: [102210011101414,102102011401410,114032124013234,102143020230411,100102014301210,100001000410200,101023134002011,101000131030300,114241402320044,102334040242404], + 1004201441103122: [114014112300100,114030034013101,100000044204004,101013004001421,103000014011004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414], + 1003040030421401: [103011424002021,111121204404010,114210000000224,111202112220003,102311110211420,122210101023210,101044111022300,110302241332230,110002004410314,101012000311412], + 1111110100002020: [110122120100022,111100424100021,110111121011004,103001020104102,100242444300104,110002202001202,110200422113400,110022300021012,112000000223310,100002214210110], + 1000000010122041: [102304340220231,102103440200402,101014424224002,100043000200103,100142401040042,114001032302222,101013404210010,110230000002324,101401304040214,112003011110221], + 1411020222201202: [112002110220340,114040210021100,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,100010031222001,110020200001031,100034021034000], + 1410002000001121: [114211010000210,110200020110120,100003040101420,101440004020212,102234400200230,100000004210012,110202102231202,102112000204313,100224120001302,101000330304200], + 1030012012011004: [100010400022200,102300001002144,102302444110110,103001000142003,110310004424232,100402012200112], + 1042202003423010: [110303120102044,100131031020002,102323304112342,114003222201103,110002022030224,100204011002001,102013301320044,100022204300000,112012211120102,112300000204010], + 1141404023020000: [100004001021111,101021004214202,103022021431010,100003000104203,102101220214011,102114320203000,114001112300001,101003104212220,102120231343021,102311110240101], + 1041400120014300: [110220202124002,102030024010020,104100212101210,111320000001004,101101021110401,101004204211203,110002012000001,110201002040204,110010402102122,100300024313211], + 122420402014110: [102000421131000,114404020003022,103100114000000,100421242201010,114410212320200,112020011110100,102030000221301,103300010110424,103020011430001,112000002000112], + 1023021104102301: [100001201220014,100210000032400,110200422121211,101213311020021,110040411222022,100041120200010,102303001003004,114010312213204,100400020022321,103211000211000], + 1100040012201200: [102020000204032,110000000003200,111401200000040,111202004100121,103230104003200,101041204222101,100024024211001,114031000012100,102110001342114,100222220001202], + 123003311204111: [101222321200012,103211144033404,103103240104001,102123040212103,100204104322122,102100011341012,114130000220023,102314224010213,100000120000202,111100230023321], + 1033101124442100: [100313324320240,100001310421201,110000110021420,110100410011143,112000221133021,100130000010204,102443324020000,101134004004013,110401020100113,101214311020403], + 1024102010130120: [102020000204032,110000000003200,111202004100121,114031000012100,102110001342114,100222220001202,110200000004322,114342044032200,111110020000001,100200024323300], + 214432414421000: [102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102140121410131,102310400240000,101201340300430,111320312222220], + 223412000312023: [102100004130301,102113020210120,102201101122100,100102114100420,101012310342300,102321320224101,100002404310212,114012212302132,100430324300003,114230222331120], + 211012410102104: [114404220000142,101100214003002,100021231022220,102410420230111,102301220210011,102120004001102,102323210221002,103211001400330,102410220200400,103020210143120], + 1002023202310442: [400004112102010,1200020030443142], + 100100002221212: [110231434430114,102340144111123,100140010100100,130011204200020,140243003020120,100120014301440,112020240233004,102144311342041,120422012013021,101040400300024], + 1044010413203120: [103130021444021,100022001040322,101400004022210,110020030024004,102112204131410,102312301104422,100000411002023,102303200241200,100022021041122,114120140000100], + 1400100210120201: [104100012102004,110000010120043,102102011413000,102403404004110,102031024013013,110044020020202,102122410220401,110301311303102,110021232000021,100001140000010], + 1040312010102100: [100004211221210,110201001212001,110200134240420,110403221000002,101201304200320,114022042302201,112002320212232,103310101401010,103140021401211,102404042001400], + 1000300001000101: [100003011041040,103200141404212,114001112300222,100203141001002,114122440000024,103000020103121,101200024010043,101044211032201,100011111032203,103021440122032], + 201034002100400: [110003004410041,100000444104204,100014420000000,102012004013201,100104004230031,100021000021202,101400000302113,112211030201201,110432304221110,110410212110111], + 101101331204020: [110112012140003,112110220202020,112002012030102,111003410011000,100400100022002,110300200044430,110401422114111,112020021110112,112120020220421,110220244403201], + 1122221100001000: [112023022001022,103122221240032,110310022220010,102001000202131,101020401034111,111012400040302,110140021322121,110120202212130,110013140003302,110220002040001], + 1020000002421121: [100200011001220,111202014132111,100003141022321,110201434240143,111030044110010,110041304201404,100040211022000,114000134102201,100420104301012,102110001401111], + 201022410220300: [102020410220200,100013014101040,400204300024034,100402010420301,102022110202024,102010140220011,1002102003210222,1130420100342202,102120000210110,140020100011012], + 1001100100001221: [114203000004300,103140044032100,110322100104010,100032021041010,114100004121121,100040214102023,103033044023040,102403101400210,101000001001104,102100330231011], + 1424104010001321: [114213002340022,120402022102021,102120140212001,114400210002021,103103221421013,102010002000402,100240011000013,114233112330324,100000021022400,144200203310100], + 1403010413000123: [103142100103020,100100014033224,101002204213002,112001002300102,110002402130200,103144111211103,112202002030000,110100001014012,112243034012420,110010344204120], + 1022030220022102: [114022300022421,111210044410020,111420230003130,111310004122000,101221000312044,100400240013333,111001314111000,103100040210040,100210001002200,100001210100102], + 1104301030300303: [111220002220100,100000241020022,101133410300302,132200010004401,100030044202001,110114410003233,140200430112430,110012030002010,110000040024442,101410044021332], + 131420104131100: [110230000000002,110220301202400,101003140322000,110401001002400,103012000100400,110210024220020,114201142324042,100401424300314,102213401111223,100040120000031], + 202204411100110: [114231202331202,100003021234044,111102032220111,110200204224211,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203], + 1111100011232413: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,114100124002210,111122200021102,112400034040002,101041100300001,100000020201032], + 1002000201011131: [114200302320443,103100420210210,102132004132023,102040240242204,103224020100300,110030012000101,100403220022142,101001240310031,100000101022200,114030000024010], + 1004104010000220: [102231130213210,114113104123200,101210210300031,110002021121023,102300040221403,102201100200430,100114021040000,114121300224141,102301100241002,100021020412110], + 1421021020110001: [103132204001001,110003404411303,114410010001200,111211232220002,100112301000311,114000142301404,111301032200412,100210011201011,113030011000324,110100120120001], + 200021104204110: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,102023021321020,102114020210202,114040204014042,114001010044120,101010111033143], + 1120310000031004: [110411324240311,101011034000230], + 1112021100202003: [114031004020241,102430321112030,112101432300231,110213042222211,100320224314301,114202032320004,100040014101440,110321100100401,112200102033440,110100000101440], + 1102000220103034: [110011414240022,112004202302034,100042001020203,100010044300003,114130210231020,112120224040040,103301410110110,102124031023100,100204104320231,114002104020100], + 1440232013001100: [103012024004312,101040040300223,114234004000210,100100001040410], + 1110140020111223: [100321004011041,110002342100014,110021312002040,111101042244210,110124002040002,103110314000100,110023410122402,114302200014241,111204200002001,100002300411002], + 1222102001102032: [110200321303322,100010030100011,103002041402004,102022024000100,102103030210003,114120034123300,100040001230110,103010011401200,100020014210002,114010112332112], + 102121400201014: [111124004101012,104102040011120,114103220220104,102120004001310,102430121110340,101021204000200,102020121102120,112141104020201,101200111020111,110001200422320], + 102010300001011: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 110101402310010: [114011302301400,102304034110400,102100220210000,112000022000300,100003214102204,102430300201034,112030122000001,101102104020404,111222024104240,112000102000001], + 1013400111031002: [110300222104222,100002040410130,100440001000012,100403011002204,110202414214022,111002420031340,112432142020024,101103012130233,102320304030000,101112241010002], + 102003130120100: [100001230201101,101101131132022,100010100000042,104120211242040,112220104002000,102223004042102,110410312121010,110330130010041,100030034303012,102422200201100], + 122040420010323: [114203042330220,102102231400111,100032421040120,101004201001232,100000400412200,100002020101023,111100232241200,100011234202334,102111024004010,103343010113030], + 1031013022303011: [110000322130121,100200001210021,103204230111030,100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110], + 221002402022003: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,103303000112122,102100014132110,100021304103002], + 1001100210002400: [110322104424202,102112201020000,102102220312102,103004204021310,112220102043102,110012310020200,103030120100220,100232224340041,112400002011010,112011001113222], + 212002400114144: [100032041021210,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,102042204000300,100001134100120,110303401230040,110024140142000], + 1120324010000221: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 101031020122412: [100000210100030,110001440041003,100000220111021,101000430320220,100401022201110,101100001110030,102210011101110,112100302012023,100102410403204,110042021100041], + 200422320010040: [100000210410212,100202021212012,102000032003002,104003410010031,103020201401104,110020030011011,100100000012334], + 213123000110000: [103010010104000,102330030243120,102100100210033,100002200014412,102140142001210,100141004030100,104130442103041,110000012124020,100022201040213,110221320111003], + 1002203431222130: [103241000112010,100034114100102,110330002104200,114000000030300,114101012201420,101114420310142,102112100210100,110011111104432,101300000340401,100011301210241], + 140000130120401: [101000211032200,104100001242022,101210000300320,102120022000224,100204000410301,111213130001022,101030120340201,102121444003011,102240121302011,100401400022202], + 1020020030010202: [102202204040010,103333040110114,101022200343023,102000000221222,102011014001111,102331201001140,102101001342004,102103001414002,102022011101012,103222024031400], + 1000120402321010: [101010400300001,110002211302010,100040004310211,111101144403004], + 1111020032213240: [100404210032112,100121010022020,112100322040040,100112134030041,102000000224001,102013314023030,102103111403000,102004044000100,110030121201003,102110030210103], + 204240141002041: [101022000322012,110123000122000,110212010000000,100200020144110,100230421212431,100101201021044,112400000200011,102112400224210,100400230020212,110440401003310], + 111403302134022: [102001144013040,100012111020031,112203400410130,100302320420012,102000404001103,100022211040222,112012220214324,110030400140000,102242022004100,103043001412001], + 1004010321040430: [100104100022200,101010020320410,101120201100110,102304021004012,110120001121422,120000042021310,100100030402102,100300414022102,102100234022140,101024124000000], + 140113212104010: [110211002121001,101442031012013,103202000101303,110020232002103,114101004000301,110012311001312,100241100430000,102102400314222,111022022233042,100120020401013], + 1103120200120021: [110134044242442,100002302213022,101030020022301,110120400022300,100041044101100,104032420010121,100121104031022,103004030121000,103212210100022,110144200000122], + 120101001020342: [110210400114203,100001100104021,101101300010301,101122200300011,112210201100012,102120200221403,112001122302311,101001211004233,102303011002000,102314100240010], + 1002132023000020: [114001204020002,114230000001013,100022211001110,112000002310000,100010201030300,112420104040020,100403430013124,101002100322211,112004000230002,110220111110412], + 100000200014040: [101242011000124,100202340430142,114420242311240,110141001301302,101200200300310,114011402303024,112124000203110,101011000320010,102020004000040,102110201342301], + 1004311210021102: [100114004100001,102012030213014,102003320200411,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,101100120334014,114233002340141], + 1240000303230010: [103204424022010,110304304420001,102110402001413,102131334020220,114210024001201,1031024222000122,200003020011141,100020111230000,114102010224000,114301012300202], + 1001310301020000: [111201000013222,114004104012300,114211202324143,101203211010000,101200314040213,103302140112020,114003200023323,100012014300020,114110024000020,102213214110012], + 202000424030110: [101020000300112,100002020410020,101000001111200,102012220241003,111120214102000,102113200210140,103130020213032,101430211012120,102323204113210,102403031110014], + 120121341000001: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102401200230234,102241230200120,110201111200204,110400104222012,103302024010240], + 1400200011214220: [100002101021120,102102012003220,102313114114000,103030304021102,100000101001431,100104100422041,100001044241012,102030420223110,102120200201042,100200011000020], + 101332113114042: [110144240011020,110011011212100,101134030011000,112000244001222,114441114123013,103220211421421,110123230124040,114000012334102,101000014012442,131000001020102], + 1000030222202004: [110221204243141,100400220010240,102300221002020,111010204401023,100000010004124,110312300040010,103120000104021,101220200040320,102102001402012,100124221021011], + 1144441010000220: [112002204004403,103013001430040,100402021000101,101104121111112,102141032001100,100100220024041,114000000023404,103030200142241,103010040123432,102112322004011], + 240201020200121: [111133110023322,100400024103122,102000021101201,112024200220201,101001440303020,102000124010400,103002224002043,110140141201202,112012030233024,114201004001120], + 121221411100014: [100012320001320,102000331120104,100232214222204,110203111111000,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 1010044020430310: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,114032234033303,112400034040002], + 1020000200222300: [110402402020010,112421302011301,101023431001040,110001210120320,110300404422030,111024100022301,110200310012010,110102110124010,100000404341421,110000022100112], + 110302143030000: [101201004044021,102422122000001,100040204202102,100200124341000,110021212130000,103230324024140,112120022010120,102113111410044,101042130310010,111202014413200], + 1031222012302021: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,102001014013004,114113014000010,114022100010000,114321004030021], + 124203022000303: [103100221440010,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,114201104114111,101041001003300,100001100411302,114012444020220], + 220102220004103: [102342110212020,100024024200032,221123404200214,100021024100301,1101210010010223,102042000211301,1300004102024404,100421001000020,1300102043130042,1333020210312100], + 1113300400421010: [110021000410432,100042304102210,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000], + 1130010120120310: [104130242103012,100002131024210,102410001402210,102000101132400,110000102100012,112023140212112,114000312301300,102120214001422,102400231404200,114200422324023], + 1000412130010144: [114042102330002,100014001041000,204020131034103,114113404003030,102310030240210,102100204001030,102200400234000,103001324012043,102110222004041,100102240020100], + 1400220101000132: [102023000220003,101004204212040,112130030422202,102202014030001,100444021001102,100020404302120,112013400220104,101022424011430,112112002014120,112321041130330], + 1000141214101410: [102101320220430,110100010000102,114020444100202,114020232302203,100111120012323,100014044200222,101001000321032,101124021110021,100023100104410,110100112141141], + 200000101104221: [104132340011314,102203304123030,114012040020310,110000212104130,110200200004002,101000040320021,114131040224332,114002210021300,103230114000201,100123020032031], + 204143214033312: [110000212101040,100014401210011,110021410020203,110411044221200,112024232302040,102423031402210,114013022304040,102021311100042,100201020140421,100004001002300], + 1440020223001243: [110241142024233,110023342101220,101001421031220,112300421134001,112220322030220,111000034110311,103021004014220,102200001002100,100014100124121,114443304123123], + 112003102431000: [114142204123102,110200002111002,100012000002410,100201131000322,102000024010442,110141400010211,101032001140100,101401400300110,100240414222323,112002040210000], + 110000140021401: [100002200103104,102040300241403,100431000032001,100202031002101,102103331400000,103013004020003,102222310200400,100204101210044,102021024004322,100001000013302], + 1110223000120201: [100010441032031,114402414111240,102040444014121,102012110232021,100024100201424,102002230200001,101012011001200,101222000300004,100003014211000,102400204024124], + 1030312044024302: [102400111402142,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,120020211120020,110230010010142,112003000230111,102031111324402], + 103411200010022: [100020300200110,102342110212020,100042000200211,100024024200032,221123404200214,100021024100301,1101210010010223,1300004102024404,100000134100120,100421001000020], + 1000201421400142: [110101210013000,100404121014002,101240220300022,103011431401300,110120020002304,100011000202214,110012101102100,102102304001200,102002020220000,100102120422002], + 324204022022230: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 101000431101102: [100122420031012,102202401114113,101021001031113,100010114310001,100320140043202,112030312300010,100123341012403,112413022010001,100403410013000,100000021034001], + 313040033004011: [101004400340300,100130410400000,101020404004141,100100314003011,110430201313300,110000224410102,102010104040420,100200201200001,110014002130210,110300200400111], + 1020141230100100: [111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,112042110220004,112203221102231,112400202020003], + 1004102100041041: [110443010102111,102020101324002,102401030202031,100210031004220,111321012222400,114203204004133,102401004020304,100402200013400,112300021131001,110100040033204], + 120420321011020: [114040210021100,101001440344222,100020124303001,112414130200030,110000010003422,114010002242000,101120201104300,100300030420140,102340021100202,111031004110200], + 122020021031230: [100030220100110,220321332020001,114012002212100,100002114314022,114203110001031,112030122000211,102000100200100,102020400244030,111004012200210,103112100101020], + 100210000030120: [114041300010302,102011000233013,100030014212420,110000000021142,102114002001012,100014200200204,114120312310022,122213202201022,102212140200424,114203024110400], + 102221004014241: [100301301000024,101000321002030,101044400300030,100100310024040,101024024002120,103212010100200,132224022200202,100231004331011,100200010434042,123102041021330], + 1031001011004000: [102001404012100,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,100020004101012,102402000201011], + 231020004100430: [110023342101220,100021004310222,100001000100000,112220322030220,110202222043022,110313312021120,100220214333200,110330234422000,111000034110311,110243000001123], + 122231001303344: [110103002040200,100004024202000,102303311004021,102000101410104,102112430210103,100010004102244,103000114012224,102321401000212,110101020124104,102042444010014], + 1023012341411200: [100030324200410,102110202001010,100040041020102,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044,100140004102001,114101024122320], + 124240201203112: [114000040010421,100433201004014,112002010220004,103001131403322,102002304013011,102320001000040,102000034013222,102120004134001,100120140421132,112010002001040], + 1111113231201402: [112324002020202,100120221021011,111242212222022,101401140300101,100030124210101,103220200100320,100011224100020,101030004004303,114203224111020,100140304103400], + 1000241010023032: [102112201020000,112220102043102,101102320320033,103042000110130,100002110202020,112121202014100,103030120100220,103101101210002,100231200100003,103224224022200], + 121021000001400: [102340221000300,100402002201002,101011014002032,102104101122100,112002010221020,101131201110300,111012030020003,114200404001002,112000011111003,103210230131414], + 101011222214113: [110130014400011,110232002101410,110331400400440,114021140030020,100424331001120,111040300024044,102120204000310,114021112203114,114000004110202,110111302000104], + 1000030000002442: [100032041021210,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,102042204000300,100001134100120,110303401230040,110024140142000], + 100140304030003: [101210320301302,100440024301100,100114104101001,101023221000031,101400014040400,102012034000402,102100122002001,101000011021414,114101000221221,114010214101003], + 212102012212400: [100130320031042,103110021442200,100042001020203,112221200410000,112023032000020,114100110220013,100010330101003,101431304024200,100002241200002,100013014202033], + 131021001033104: [110021310040113,110301331234001,114403020002032,100400110020001,102120104000032,112402234044121,101020121032021,112202240410200,103110201240222,112112220204023], + 200004200100022: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 100312211012002: [110002212130403,114112014140000,100133004000124,112440104042121,114200124000134,100120204234213,100003011231420,103230231200010,100222200002003,100431031014023], + 212000130000300: [100000044301222,111012034402110,114221004034110,111100104104202,101223041020020,102002204000124,100011230120014,101104024002242,110133120011001,100400010013033], + 200441004232120: [101021120323020,102001111412134,102110010202100,102110234020204,100004131024040,102441311400421,114020214033220,100010040101024,102001224003302,102111221401002], + 1400032011030221: [101003201032030,100103214302031,114233044002100,112310000201020,114404210030110,113400201011402,103202114021110,101101334200302], + 1000200101002322: [102023104002000,110304044431200,100310111001140,112122104040040,102103131122203,102100101140030,112120012011020,114002104011010,102400014020400,112412034040100], + 1100104020042012: [114011302301400,102100220210000,101203004042010,100003214102204,114221000210214,101410044041001,102422214021111,112030122000001,101102104020404,103400004000422], + 100311004230102: [111010124402202,110211020121140,100020244310231,101000030321102,102110320210011,114221234002100,102420001110301,111231000010032,111110004100240,111040102144100], + 120102102023401: [112000431120410,100031034311401,102304104110001,102000200200301,100104211044110,110200101200402,114241222321321,114013124030022,114104200220022,100021221021201], + 1021100110422300: [111114010020011,110304044431200,100310111001140,104104112101440,112122104040040,102103131122203,102100101140030,112120012011020,114002104011010,102000031442000], + 102001212320334: [100002100100210,102420424042020,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011,103002110100200,101320224220103,101302131002410], + 211101130124014: [103111001422000,111244302220204,100042100102211,100300041001121,102110030200120,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 110301010212010: [110112320021204,100034114100102,110330002104200,114000000030300,102112100210100,110011111104432,102000221034000,102300044020403,101113231111221,110020131231003], + 112004100001031: [103102300102243,102113020210120,102020000204032,101012310342300,111202004100121,102012014000404,103230104003200,114020404101101,102321320224101,114031000012100], + 1001033204013302: [100301300121100,110042400130000,103020124010320,100021300101201,104101201240100,110000011012202,101244324043222,112102232300222,102000020241101,112311000204002], + 132014411000000: [100100020410000,100030411042022,110401212110230,100031420002140,112022400231120,112203321101101,110002421122102,102124320203002,111024204402000,111014022142334], + 1100300303302222: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,100422211004214,102100000210002,104130020011020,101114422122000,102001314013400], + 1000213012200131: [110214024430312,100011014100041,100212341003212,112013212032000,112010220224003,112001040231401,100200001001300,100012104313201,110212310000041,100040424310110], + 1240010040112110: [101010000322013,101123211100242,111400130001014,100001420000003,110003142001043,100034031042100,101121024000024,101020301000022,111130100032240,101113311103230], + 110000303120120: [100012230204000,101101200311102,112401402023020,103142104001331,100200204123011,103031120143010,110020211221100,100101130101111,112000210230234,112003104002414], + 1041004402334112: [102021100220120,121000033324102,112024201004140,104400020040320,111022320201411,121410000420112,100004140041201,130432000202002,100444004201203,122100042012100], + 1402311031204100: [110104112010103,111102004100101,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231], + 1033444000022010: [100011004343022,110401140004202,110040002034100,102402330230011,110203210002230,110432242020141,103202104032224,102013011320122,102110334020204,110001031212302], + 1113001000402001: [100441224303402,102401030202031,102401004020304,110112214200023,110100040033204,103104404000040,111201024102030,110100102010003,100122110401300,102010024001100], + 1011000000302241: [111304340002030,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,114113014000010,100043024210301,102014001130100,114022100010000], + 1040204043040400: [103300040140032,102104211001200,103300001404011,114211002340000,100002101231220,102040424014311,102210044011101,102000034002011,114240044002001,114302002322001], + 121022040003003: [100140024100204,114001014102403,103210000103000,102120101343104,111122022240223,144410130020302,114302000000201,110420412024420,110404044220000,102121301022010], + 301010203021201: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,114402104142102], + 110013000400024: [100011000202214,103040020122332,100000024100000,100010040001210,102002020220000,114302404002020,102001121132032,100001300012442,101012304001200,100011114300032], + 1030201242040022: [111034014401112,111302202200213,100030241043214,101421001021031,101300400313000,101220040310221,102320030240003,202030010203100,114431310000020,100000004300240], + 1010110212000220: [100100000100111,101300340341000,100111341011011,114421030000000,1020210020000020,102102211122031,102300021100000,1102400141403322,102223314042002,101200040300300], + 101422210020110: [101000141031222,102000421131000,102020111324004,100421242201010,100012424200031,102043120222040,110200200001000,114023024101231,101410114043204,102101041341001], + 120220041041330: [100021204100204,110211020000002,103002034034022,111230214102412,111433044442220,100113410410320,101000004013020,111201442222420,114012000022010,114222440003300], + 100031300013400: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110022100044100,114400200004310,110003000024101,100010024302100,100000011020412], + 200110001013001: [114000200020423,114002100033010,112111102310000,101241000301002,110040041310130,100004301000000,103302240110002,114011134010000,112002020243001,100003014301220], + 1042214111030100: [100113220020101,114031000022030,103103241421322,100300211000020,102104304023201,100002224244002,114310200002400,103211220100010,101202201021310,100021404301132], + 1040330100310012: [100111011011011,100030040101021,114310102300021,102400124020001,100102224234101,102010321411140,102111131410342,100031120413224,101304004220404,114104214003030], + 241314003100002: [100024000110221,114130014001202,110010220103020,111004100022110,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000], + 1100211001101030: [114201104111034,111130210020000,102114022004023,101022121001000,102300104110002,100104201020032,100024000101404,103000014004300,110440302011221,100101004301102], + 101014240242201: [100024210002210,100000020121140,103000200111020,103022204000200,110241020002103,102023021100010,100221020410103,101120241102203,100010304340120,110020010120340], + 1004002010012002: [110320202023400,110441234224400,103100014031411,110000300424304,100011004343022,110104422010121,110013122130200,114020204102020,102402330230011,103121221400012], + 1101301421304402: [110020020001220,104120000021110,110102030403010,101040010314220,111211114421220,110000000011102,110400000004402,104101420012000,110132241240004,102010411120012], + 141210342201230: [102200020211042,100000034312214,102103001340022,134402411001001,100002110000131,112021020220112,114201414110004,110214012030140,100000144311102,100000104100100], + 120013202112200: [114402404141241,101100000330120,100000400000241,110212022133311,101412001100222,101041210311410,110022004211030,101210021021243,100140024230240,112230240412241], + 1121212241202220: [102222111120010,103200224033413,102300440221022,104120201242031,102320110240231,100100101011200,100133001220421,100122204301312,101022220322100,100114113200203], + 200321214231321: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101042001021012,101100104002023,103230011412301,100400000010020], + 100400142000010: [100032041021210,102300324010203,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,102042204000300,100001134100120,114023214101310], + 1000010110003420: [111122100010330,102302231004020,103001000141212,101202104010412,114234414102011,132012000000230,100014001040120,110002400011111,102220000201200,103101011421200], + 1000002414112210: [100111004103123,100003021034002], + 222241000310020: [102203304123030,101000040320021,114002210021300,103230114000201,101401300300011,114121002310010,102042210202230,100141120014242,103141131420000,114014002300100], + 102020320003430: [110201001212001,110323344422123,110200134240420,110112001343021,112002320212232,100002210413202,100002101020204,103140021401211,114002212210110,114212000211041], + 132210004410012: [100032041021210,110004301222000,102300324010203,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,110104002010100,100030024303023], + 221320013320110: [103301201402204,102401121113302,100021020124002,111201210000103,102104131412412,114020312300021,101320040302031,114010102300010,114042014014024,100000000200102], + 1122010000001340: [103030114020032,110001131312220,103000001400001,100004020001220,110202042021023,112010334002223,100011000002042,112234000202010,102000124010244,112400114041042], + 313020103000100: [103212134020020,110111412010000,110023210130031,103203121201001,100000331231114,111310122200002,102001311100000,101410101013004,102400201112240,101120040330204], + 100100010214202: [112000042030034,111200002221022,120201012121032,101002100301011,110101211000302,112204010413200,112000020224300,102020011130021,102013341121201,100222000410322], + 300001100022010: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 1000102011020210: [102201444044432,114111140220220,100000304102031,114302010000013,100311010140302,100100124003241,100002310120001,100111014231402,100404300013220,110220022111241], + 1142220400000210: [101004201002001,103112010213010,102121001410120,112200410200142,111400002102112,100034100124302,111112214101000,1320102201231021,100000040413022,100011221224211], + 112000122210000: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 1114114400220103: [103102300102243,102113020210120,102020000204032,110000000003200,111202004100121,114020404101101,114031000012100,102110001342114,100222220001202,111114004101202], + 1224100000124204: [102033124002102,112410202021300,110000201301004,110002040021102,100000001032140,100110221000310,100030401031400,110031001010032,112220100201030,110002212132131], + 1430010401402203: [104100421240110,100042010103431,110041221200014,110301122022204,101400004022212,110233020402400,114020040031020,110010000431131,112420200200110,110432134242300], + 243400040003010: [103042110104101,100210104330243,112001000233022,111003044110202,114330124002101,102230231120222,104102122101021,102330021103040,114020040014403,114002024100000], + 201101204001013: [100004221034100,102232024002401,101102120301114,103400014000012,101000004001310,110120224221100,110000041322002,103412020132101,110041021300130,100001200120142], + 1021030030402120: [100101201011100,110400340004400,103440000124310], + 100302330021101: [103132220100130,114100204121401,102120214131012,102200324111003,102004134004013,110220034212001,101032004214120,101204011020202,101002004014003,100221114242000], + 1404102311222402: [114233024103200,102120304032340,111211414134201,112200001100121,100140101203122,110202200000012,103200414020231,100103040402230,100304004210210,101000021030212], + 1000000004020102: [101023001024400,112020002311112,112000030210340,102201000203202,111200300010114,102010002000404,100024220122100,100004304100003,102040004002144,100011140001404], + 1423214230403402: [100200104321000,103220030101023,401300041114001,112032302000220,112003000230001,102004301444000,111133030010200,114000044101422,102020204002424,100003014101004], + 1102111400312102: [110401100400430,103143111443210,102112212004043,100144040410322,110103221143200,102320001001023,111033434402423,100400402200402,110020100110002,112231010412402], + 1110100401222300: [112004202302034,102122214131011,100023031000024,100010044300003,112120224040040,111321314133000,103301410110110,102021021101204,100231020102202,103014004012401], + 320102010042223: [111010224110043,114200334112132,102140201342144,100100121021000,101000011141243,110122121014321,100400202201130,101330004220011,103122034000212,103120121214001], + 1011200220321320: [100034304101213,114002014100310,102101031412121,100020020121132,103311100112220,102102010220401,114402044140023,100021120201020,111000024404021,101202014010400], + 1102100102100020: [102001301130211,103202102201112,103042224042412,100201202200003,100000420100214,112000100210200,110204140013401,112440102010141,112443012010041,111304402204411], + 1042030133022202: [102104210211102,102214040203031,112220010202202,101104224022322,100000030002013,100030244100404,100120101022100,101023204012124,100400212201003,102100010200141], + 1104322000300041: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,114040210022000], + 1002212230034111: [112211122030420,100010021034321,100031004101422,112013012301132,102001104001214,112100140200020,114214220001140,103144001420031,114024104100321,130040244231421], + 120033201000210: [100020201020032,103000011400001,103001010101001,111030014120004,101000211031021,102020001021010,111300022201241,110402410002000,110020001210102,110000020043321], + 1441220011132444: [102002301120010,111002100000102,110001000020034,102004014000430,114222302321101,102101024002121,110014024202014,110220130100010,100020011030330,102404221402210], + 1001220202022300: [101220014012231,102010130231400,101010311003410,100020424214024,103422430124013,103214400131240], + 1020121100031001: [102104410220023,1024002314000141,1101200200223021,100430200104001,1341420023200031,103220020131102], + 1030201204043041: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,102100014132110,100021304103002,101120024021024], + 130112000110201: [110000002100440,102330031000000,102221410200012,110422010000200,103112021442033,100000204312321,110213401202110,102300104113403,110300121220201,100400440012042], + 301240023002230: [102000214001143,114000122300001,112133002010330,102110001342041,102000344000000,112201031104011,100001004200110,102001101132013,111320000010132,101200420011300], + 232201201211042: [102140024002342,111114212112100,102312120222342,110002004200112,102020010221120,112012000232203,102143121343400,100220001000401,102101004002030,102303130242002], + 200400000400202: [110000002100440,111214100000104,100430221011100,102221410200012,110422010000200,103112021442033,110213401202110,100400440012042,110044014410012,110030231214100], + 101004200000022: [114212012310002,102004004002321,110001420000233,110000230010221,110202110113000,102200301110320,110001040000000,100324114310222,110002242100100,101220100303222], + 131401202213441: [100212201000030,110020122101104,104130030010110,100000010411400,114042004020130,111120112103420,101002304210122,100100014000020,112402144042221,102100340232410], + 1102320110211010: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100], + 1211021010301410: [111002100041311,114011102301222,102401410230032,111212420010002,102402200203034,100001230102304,102102001320001,102332104112211,101020101002120,103002204003100], + 120000101024021: [100420244300112,101012001030010,102230121123103,110202010012201,100221440000230], + 112211003202310: [110330400010040,100101231004020,111000100012002,110013112004021,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022,110020130044232], + 1022200220002201: [103041220111410,101100202130022,103400104001342,111001212200200,100000331201012,111210214440200], + 200200024404400: [103124001420200,100220210034042,114434330000120,103224034003141,114202022320120,100204011000221,114412402323000,100000201032240,100204401004031,101240204232402], + 1010010000020000: [100002021042230,114011244103110,110022224202024,114043402214302,100104210400100,110213042222211,110002100132300,102002200200004,103100001420200,112021104023402], + 1432102131420423: [101001111020310,114002102301424,103141324004100,110011234213300,100010030104002,103120100104000,100011004201102,100024211212040,114121012340403,102001004011002], + 111003010102320: [100020121020300,103432001210300,112440134041000,100210240013000,110401214242400,101044214042221,100033201031241,110010114210202,102141000313022,110110114221031], + 1032002034000000: [112001001112001,100310444310004,112332000411020,102431200203321,100211001204102,110002400042003,100000004244400,102032010241003,110024001211221,102403204000000], + 100022130000100: [100000211041234,101130000023030,110013322004400,101221200010202,102100014031110,101010101034002,110004342121110,101011014001201,103210244041141,103021401412434], + 1431022230401243: [103310020140014,112000204002100,114401400003130,100000000411240,102030021443010,112300220202122,114010000024012,103100421422110,100102300401031,112120002302004], + 200300022222204: [110402424222014,102030024010020,101001011114020,100030044100103,110001141011223,102012040223003,114402240003200,100300024313211,114022012202024,112023212001400], + 130200034014232: [110032022002020,100400110020244,114011120010030,100411201002420,114120040222120,114304234022130,101030404003400,110002004413040,112102322011013,102201100230002], + 1000023212220222: [100002221021122,110001041100000,110311404430222,110342230013000,110000000040230,110004031201142,111200104440321,110032230410440,111300222200201,110322014420041], + 101034041310004: [102442024024214,100443211002141,101012400320022,102100330211131,100011014103012,100030220101040,101130031041024,101240021020011,103140100210304,100400020033003], + 1044013000043020: [114113014000010,101200210302201,114202400003330,111201222220201,114330004003002,100102001040033,114404022311000,100002324211100,111231042242020,112100204041010], + 1022140303310000: [100310304310342,110140044401202,101300124221002,101120101100112,102000300200231,100002030410210,102231031123103,101043314210310,100314420140013,101401204040200], + 210103424043221: [100004011220200,114013002301104,100044101022021,100030021041110,102101320234011,102002400210101,102400204022024,111102142213410,101000021004021,100011100412123], + 112410130013220: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,100000301221024,101224322120022,110104422010121,114100200002120,110310020040401], + 100202003303000: [101100000330120,101214440300301,100000400000241,111102214104403,100132004231230,100033230420102,100000030000001,100222024100230,101412001100222,112000042000001], + 1002001241003040: [102414440232000,104130210010324,102201204040211,110001004202040,100314041003230,110024102010002,112124042312000,101324030311010,104131002110200,101402001013023], + 1120010232022002: [110100200030100,100000411231000,140300020110000,100003301030120,110132020031210,100101004230030,103044004034040,102300231000210,102412140201410,114034000012210], + 1101013002130000: [102301031000041,114210002340104,101013224010003,110110131010010,101012104214110,100400122200034,112000202301020,103140120120101,102031004000320,100203220431202], + 1024110222041042: [100002004303100,110130010102101,102000041101100,100042004301301,100012021031014,100000201032010,114010204101202,100404000020000,100010210410420,100020424102200], + 134001004220200: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1042201230202413: [102102031320011,102042031102112,102102031403230,100041140201301,103021004022022,112122334022424,102300004110122,114000202300004,111103022240110,100022111001013], + 104000031040044: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 211004110200000: [100000211041234,101130000023030,101221200010202,102100014031110,101010101034002,100040001022001,110034030120032,110004342121110,114022000012100,111213000012124], + 1121304220200013: [110222140404112,100402020024213,112400204022010,101012400322002,110410020403024,103023141400000,101001100300012,100201020442101,101044021001402,114042034010020], + 1120412101104010: [100100124102430,100000240122202,103112041441211,114121224001011,112200042021241,110242012041100,102300020212402,110240230112240,100102104232420,100400040020412], + 1024031211314001: [110010200422102,100000011211210,103100024030204,103031040122130,102101021400201,112110200433212,102110014020400,102343000224001,110104011122301,100030041220222], + 100202010004001: [110013312204132], + 1422132110000010: [102000004002101,110202000000310,110000010120043,100422314300200,102141410230020,100042030120422,110020001224021,101012410301010,112100000200031,103120001400003], + 120103122400340: [114200212322001,100401210020002,112210322040121,100402042200000,110001440041003,100010111022102,100220300410430,102000224000000,100002104302110,101022440300020], + 1010300233111023: [102112104001220], + 1022132302041100: [101022014222024,102103430210003,100012014300120,110100120400020,102414014022212,111311002224001,114030000030012,112010024023002,103242044020102,114231032340010], + 100021304133021: [103120010103002,102040310222200,100112120404244,102100421412332,102242220202120,102122101340003,110420000002231,111324314134002,101300200311010,101200010301122], + 1011013421004002: [110241142024233,110441140102024,101001421031220,112300421134001,110210301200101,102033124000111,103021004014220,102200001002100,102210101121104,110010324410130], + 210320400230041: [102000140200220,102104231340013,110033032100000,110011002100114,102012001130103,102240044042003,103303041402240,100000020100000,100100020021020,114023102300012], + 1041002233112000: [110400124241011,112104034022022,114233300214304,111020204112021,103022444011022,102101101021304,110210000000040,100031324100010,102202000232032,100040004202102], + 1212413032110343: [110442104221030,101224001202324,111211144101202,100002001024100,102103130221330,110000300140010,103102134001111,102011310202304,100003114100011,100002314204210], + 1100021003100400: [101042410301221,110432300102000,100102024100020,102304000210204,110040344210011,100003320401100,100020120101000,100003200020112,112143144020012,103231224012042], + 144403431442201: [100003414100400,114221004002212,112010022302321,111110420014032,101000214211011,102300131102000,100110204101020,100000001020034,111322242223400,102101001412044], + 220020102410001: [102400111402142,141030301403400,100000024100211,120020211120020,110230010010142,101302101002110,114233112330324,110030211224203,103222414000312,103221220100201], + 122011002014310: [110430101000310,114000322300011,143310043400402,102200114042333,103101201241421,100210101003122,114441004120303,110000022011224,100000330000200,101012220320240], + 1042020021012132: [102022004012201,111130210020000,111102042213043,100000024210130,102034221103124,100034024104211,100014030200221,102041320220204,100020134212021,101201004203204], + 102120204200012: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 131000034111032: [111021202200011,100001010100220,114110004102301,100414031001210,102000004012011,114023102303000,110101100012002,114421002320003,110001002004240,100030220002102], + 1122311210003213: [110102224201130,103301201402204,100021020124002,102104131412412,114020312300021,102400204043012,114042014014024,100000000200102,102014040242202,114420200001202], + 1120023302141322: [130310130330100,101231031400202,120412000041110,141111210002414,131130010401211,102111000103032,110231402124034,102000444004121,100400100013010,100401002201241], + 134024004220000: [100144100410414,102022001101400,110232400010300,100312030012210,101120204202002,101043021124401,100003010000000,100000404100023,110014301320111,112413022010030], + 1001033402010024: [100020344302010,101000024004442,100002100000100,112004302004223,114100102340003,110130030020000,100400032200141], + 112434100030022: [100003031030034,101001044211204,100031034311401,102100010233022,100000140100020,103001324000110,100002014200021,103211014030010,103212320212011,111010024402022], + 103010120124313: [111300232202103,102301401002404,102012004010000,100040324331403,102400100220000,102001104012021,100242444300104,102002104014323,100401241010122,100010010102122], + 1431013400220000: [102401030231212,114020012211143,100014011034234,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,100000324303120,102433214043112], + 210021210000001: [110000402130200,110210002110430,103024004010134,110102204202001,100141101040123,110422420030000,420011043004003,110040002032114,100120414100102,102404224041131], + 130041301113140: [101003024212403,100010220101010,102312004112400,103303004022010,102301020241301,112100004041242,112111040201200,103201010110301,114021102302020,114040032331113], + 1000144002110014: [110041030411301,110001041213031,103301210142043,100002024200142,102411000200000,100400014321101,114100122342002,100010101020023,110033041200104,102000221442214], + 1020410000130221: [114213134000203,114300020001420,114001012302043,114133230000102,102400100202230,100001021030011,112410220202110,100000010120003,103141210104024,103200110102141], + 1010241131213202: [102301344113012,101231211020143,112144220201011,100002131020410,102012214003000,103234000104020,114420102322024,100001001002322,114003012210001,102004121130412], + 1020023122120010: [100002000004200,103040000100120,102030324002210,112023102304030,102301030241010,114221004110220,103000204040334,100114100032200,101230321023001,100000400003104], + 1200212320001032: [100201141200000,102003431300000,110031400020301,111001312234300,112112000201110,100223021000240,110110412014004,110014204201000,100030120422020,111312044130120], + 100004242014102: [114101020033111,114410042322022,112202212040211,100331101004300,102124230233400,110142301120031,110101024400320,114211224002144,102001441133310,102212140200424], + 1002000130212130: [100030401020131,100020344302010,114100102340003,1204002112200213,111214004444320,114024200040021,110112001300220,102013210240010,111024132204021,101002414004140], + 101303320210002: [114040114100221], + 1004232223002210: [102100200234203,110001214200042,112002242001000,100021111211003,100010210101012,112010204003014,110134011000012,101032240320040,112001302302020,100203331000130], + 1000040404100111: [100040134340044,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031,102041210224224,110240411110010], + 1401404020211000: [100144101000002,103220201200131], + 1011012040221310: [101011004212201,110032022002020,103031234000122,103230011412301,101042001021012,101100104002023,100400000010020,100124021201021,100102001000000,101240404044020], + 1120011230200210: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1012022044000112: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,100030010102102,103312241402001], + 1020012401200231: [110011022201012,101022000322012,110103220120221,100101114301402,110123000122000,111322402200000,103300101403212,110421412110202,100200001000040,103001004014140], + 123401111214033: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 112444420100221: [110300120403013,110131002010202,101010010320020,101120101100112,102410124022400,102300424112201,101020004001002,100002030410210,102231031123103,100030031220030], + 1001410442111100: [110101210013000,100404121014002,110120020002304,100011000202214,103040020122332,100000024100000,102102304001200,100010040001210,102002020220000,100102120422002], + 1024013000140000: [110102042010220,101020124000413,111210000001101,114013400011030,102202000201220,103004104010210,101220024041000,102010300201414,100202200003011,114330432320002], + 1000211120031000: [110204004430204,110300011230013,102100400222242,102122114003140,100002021032001,102011404010000,100000011220004,114111002340233,110000210004001,100142121011414], + 1424133111312010: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414], + 112132120131101: [103011200100000,111020400040100,100302000140222,101031320320042,102122340200200,114000214021240,111111000020023,101311111000100,102400220203010,111000000012202], + 1003003210020004: [111103402241002,111200130011000,101222414013042,102210044003121,110202432243230,100140104230112,111202132210400,100120310112042,110020000110130,101202000300400], + 112104010210330: [100041010003001,130004114102103,102001100240033,101243220304022,132220114023343,110000011231142,102303400133033,100130034000100,1022020221130104,114204100213041], + 1010001221201024: [100031034311401,100023210021210,102100104000203,102000200200301,110200101200402,102021201410011,114013124030022,114104200220022,103211014030010,100034124101023], + 222031420110402: [100001220400300,102212001103340,100002334202400,101222401020120,114010202211102,100023004304344,110220242131013,102102010214104,110211030000131,102222312020011], + 1001103203121110: [101001421031220,100021004310222,112220322030220,110313312021120,111000034110311,102200001002100,102000024010002,100202000433120,114240422320041,103302020111204], + 101010133001340: [102002014000220,100002011042020,102010200221000,101041201002422,114402320000202,112000002000420,100240101000030,102012401001012,112431004013030,114003002301122], + 1022223410030103: [100023324302420,103111201422013,112203001103411,100212024121000,100001001033200,102304110220101,114002004100042,102402114000021,102001024012440,101222244040420], + 130411030000022: [110000204210130,100100100422103,110020134410001,103101001422002,102204004042041,100021140000322,102101002004300,114100202200202,112000020210140,103230410100410], + 1410004201314301: [100321004011041,110002342100014,110241024242442,110021312002040,111101042244210,110124002040002,110023410122402,114302200014241,104132420010010,100001041031013], + 1121122214014040: [101142400332243,110002001321022,112022002000012,101401204021230,101012000342400,102041201123423,102121014020030,101020341030100,110002034410423,102340201100414], + 1120020340001104: [102000011122000,102302021000041,102110111410032,114002100033010,111000000043030,110011021320030,112002101120233,141002100010000,101402114020000,111411332102004], + 110012010002010: [100041300102040,101204144232110,110000122010022,100120121014401,101040014002222,112343011130000,112000340233020,110204214241002,112200322024213,102100130311000], + 1110022402220300: [110210400114203,100001100104021,101101300010301,101122200300011,112210201100012,112001122302311,101001211004233,102303011002000,102314100240010,110312020400202], + 214301230100000: [100102011010403,112021024004034,114030422211111,102343201103202,103343324020020,101020001032034,114000102300204,110330204422022,100000104101110,114200002320302], + 131001021020030: [110202012100020,110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100], + 1002100101403234: [110202210102120,114001004100003,100041014102004,110320022101120,102131421000411,101412030302001,102222021124112,114000040031021,102400001110113,100404201012020], + 101033322422021: [114003344011001,100021101000000,102334021001211,101203001010111,100031201030102,114201104114111,101041001003300,100001100411302,101414214021020,114123420002142], + 100020140020112: [100000110410000,102302211100230,100001004104043,114022212300211,114102010223100,112014402034232,102002104004011,102102104002322,114222422332100,101003011000111], + 102304313032002: [114012012330203,102100020211003,100000214102101,103100124003243,102413124042401,102033200222311,100100104102000,103332430114042,111204302220322,103021024022122], + 1000320024241110: [100030231231021,100012004104000,112204231100020,102221201300200,102221111111011,111030022230323,103200344020010,114114224003240,101022410324200,110002002231202], + 1004121110001220: [102121221343020,112104424022201,1302314034023041,1300034431310021,1001010233020100,112012200120020,102210104000000,111023100040110,111041134000211,102203211104211], + 1224331430021213: [102420044040023,110410202122004,101004204040210,102332331001100,114022014010344,100120404300300,100021104314210,111023304123001,103000001400001,102400021111004], + 1004200010332100: [102102010214011,103112004004201,101040341113030,100002031210114,100014144300334,101020304004102,100402032201300,100114004032011,102204004030201,100401324321022], + 1424000111301100: [100010424101430,114000224101044,102110022001111,101020301114001,102102300210103,103024011431131,101011324001431,102320200224120,100030014210012,114100300000120], + 1103211204003410: [102003004000040,102011101131021,100021100013401,101242421020211,110310042021341,100204011000000,111010110042210,100114200020220,114401004122120,103123200101000], + 210140042111114: [102000404012021,114040014102222,101213110301210,102043234004101,102204414041020,100400300010122,114130342204230,100044021222203,101010000321000,102003400210000], + 100121022223010: [104100421240110,110024042103114,101001101031102,110001040022210,100230114221102,110041221200014,102202121300311,110301122022204,102420101400213,103104010100031], + 1012000300022120: [101201200310001,102020000201200,111232000010230,101230000302304,102300121004102,102300211000020,110222100011043,111322224120002,101020320323422,114220200214400], + 1100010012244110: [102400040202040,100102011010403,100220000144000,101022344001121,101044334010021,101314041002010,112021024004034,114030422211111,102343201103202,110114140030310], + 1030003421104201: [101044214213201,103121304001014,100020024101221,110242110001231,101001224044120,101000404000400,110414001210110,111100004104000,100113000410220,111141232221300], + 1400000121040102: [101020024001041,100200201000001,112224232044014,103032004012111,110131022014120,112000002000110,101322221001300,114421204140122,101424044043122,102112014000403], + 1010142322233320: [111010204124220,102030010224202,101021334000001,111142000010114,102220241100202,100402022200002,110103320400030,100401000020423,103143111404003,114213014030342], + 1000044000120100: [101020100300420,100042034200032,100200021000412,101400240300010,110330000400112,110000000130104,110103041012020,111233314101101,101122420322200,112101100221122], + 1000000000301000: [110130314400100,100032431030100,102022004010240,102023211411003,102340200224222,114002014033200,100004301021110,101010124001000,102111244000012,100400000034231], + 130012020321030: [102101210213220,1340021101022233,1001013211040100,102220300000443,1132012124324031,110210103122411,1220440411222303], + 1000020002322230: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,102040021121030,102102211140013], + 1040121003022002: [101403014020203,100402004300002,110003032000041,100112000410320,110124044400220,101210211022100,110421202110000,102111010200000,103002110114402,100100121010222], + 1403411023011102: [110110011340130,100210304330211,111121210031101,112312022021021,101041010324010,102104210214401,100011230101432,100032024240322,103202224024200,102130031410200], + 1123440204100404: [114101024120020,100000001021013,100011204300012,110032220022103,102302340241312,103243130100004,100030414311102,100410410002011,110133000404002,102202000200000], + 1031002421002003: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 1000032002032240: [102202204040010,103333040110114,101022200343023,102000000221222,101320310311403,102011014001111,102331201001140,102101001342004,102103001414002,102022011101012], + 200322444411400: [112000112000031,100142104100403,114202204113222,103200224020100,112024000213011,103013024002104,100103030001121,111000004400110], + 1010300220000330: [114202200000200,103000021411202,114120014000103], + 311120230120020: [111101034100200,102001140221330,114221122320002,110000100442023,114121002310033,103300101403322,102201111110002,100211001000020,111202102223103,110000100131010], + 120202342410413: [100023324302420,103111201422013,100001001033200,103201000102140,100033200000420,101330104221320,110333034433002,102343044111203,103231001400100,100112034332210], + 300001042040004: [100030231000344,112311011101001,110100124402042,102120404134413,101100200330040,110040212000010,114102124000200,100100221040404,110211202030440,114440012312003], + 1021204000430123: [100103301002044,111130202220102,102020400244030,100404200013100,100040104331012,101114024200021,114402102312001,102240041122001,103204001200221,114244104111440], + 1222441104201020: [110011202100142,112400102013231,100410100030221,114410102321111,114012002212100,114203110001031,110400112210122,112030122000211,102023424004210,102212110210401], + 212000223010102: [110202032123210,111122004100020,110412244220110,102411314024401,114001002300430,110101230100001,102200034024120,104102130014402,110314042102142,111120122242010], + 1012403241003002: [101221422120021,100231114320100,100001000002210,100400320033201,100004130002301,101210300302302,102020131413423,110020204200342,100000220011133,114013012240011], + 1101010400000100: [102020440242023,100220010002421,111210240010100,103222010114132,100110004332200,102430001110014,102002101410204,102000004001020,100011100412123,114401230002424], + 1104301232301440: [111320200011200,101030100320211,114000300021012,101141114003000,100042004200210,102330004110401,101400401013424,114012404102202,103101011210020,110402032114001], + 1200404130401032: [102302340241312,100410410002011,102101224002210,110311232120010,122203322100011,102010010220014,110330022021224,100410311001021,110123442011041,103021000110211], + 1000204000412003: [101022014222024,103114204002100,114230004110101,100001101033010,102142002000030,114000024101202,100100014302013,112020021120403,100002114104410,102130314134001], + 1412001330222001: [114122220031001,103002221240241,111043024121020,114104404002304,114102040034111,102141002000420,110431301241000,110101021000023,101000304013204,100100130003000], + 213210041001200: [100140201011204,103010014013304,102103030201001,101203104200224,100140000024021,101223024200014,112240404012020,110110210012111,102000220204011,101201024203004], + 200310002322010: [111000240044102,114402414111240,102111211401000,101030411001300,102040444014121,100014204101020,102012110232021,100002041040430,102002230200001,102004004001010], + 120103020011000: [114004142244000,102002004012310,102130034023112,103100001422200,101330120302103,102111301402121,102010310211212,102210104011024,110010004202402,103002104011000], + 1121001201034201: [100111011040002,100302000140222,114003114024220,100041221020214,101311111000100,100040341021101,111123212212000,114210002340000,101200221011402,102221011011030], + 1042003233402010: [102001231413224,110220202124002,102030024010020,104100212101210,111320000001004,101004204211203,110002012000001,110304000402222,110201002040204,110010402102122], + 231030030400001: [100440104303400,102122000214201,102220241100202,102024240221040,110320011200230,100342024100204,101422034042201,100011114300334,110040122000002,100110201042101], + 1002210020110421: [110011232100412,110100100031014,102401010202301,111110004101041,102112004001032,102212034044212,100021020414340,114101212202230,114100010002210,102000241410040], + 220201011004010: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102241230200120,110201111200204,110400104222012,100000001034120,103302024010240], + 132241324340300: [100244210140341,102024124000001,110002222201000,114104300220204,103102321423211,102121300201244,102101200231432,112000240221140,100042000010010,102000331132232], + 140330130401201: [100423004302232,110030220000310,100110034332223,101223100300200,102001034002201,101100011201440,101104401020410,100113004304010,101310311000124,111303214132004], + 1044300211120142: [102301344113012,102141124004222,102430201110000,114010200020312,102124002000102,101343331004220,112042422001032,100011004312001,100111200414020,114044414023030], + 1123304221013002: [101211020302000,102420034022021,101100121020020,112102000423104,100004400012402,103300001402313,103001430122140,101123011102101,100401300020101,102021230202032], + 120000300200443: [102021024000010,112011012004300,102300010242330,102000401120420,114011102210402,114300100000041,114023204100222,102222014011300,102101430203000,103030204010001], + 112323221032310: [102304340220231,110420104221220,102103440200402,101014424224002,100043000200103,100142401040042,114001032302222,101013404210010,110230000002324,101401304040214], + 1040241210400042: [100012120201211,101410044020102,100004210412101,102011014010000,101420031011004,100000014310020,102111001341321,100022204300002,102202122000302,112100222300311], + 1002001420000321: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 130011001120203: [100422000031421,110302040102004,101032000323012,101402114042420,102220021120430,111341300012200,100102000010243,111302304130401,100024334203210,103031410122401], + 124202200022300: [100021234303000,110420020103322,100030101232000,101140030330020,110030242131210,100340204211100,110203200013020,111101202242012,101400430300211,102010311103102], + 1120342300121001: [102022004012201,100000024210130,114201224110141,102034221103124,100034024104211,100014030200221,100020134212021,114420022314022,112001120220130,101040010321004], + 1000200020301202: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 110111010221120: [100440031001120,102020200223310,100020001041410,103220011420242,102032012000101,114014112302234,101004201001232,112102102302000,102141231343401,101231104200000], + 1020202000004242: [102024401440202,102110021342213,100023014340130,114214034100221,114202024111304,102200204021004,110200102020212,100041430100100,114112000000100,114121144001400], + 101423111412020: [112004202302034,103300004021200,102122214131011,100023031000024,103230134011412,100012004101221,100020004101012,102311011000200,102021021101204,100231020102202], + 140211103041000: [110011202100142,102123411402002,101042201030422,100410100030221,100002001211230,114410102321111,114012002212100,102120204130110,100023040002011,102302114113421], + 1002121200421203: [100011440000101,100021414102020,114103432340303,101021411140012,101202004200131,103012001241030,110200240001240,112242200410103,110200002020114,100002440100200], + 200424200100140: [110424002022221,102000140200220,102012001130103,101120000011032,111011022203204,110202000403003,102003101131002,103102014030320,103210031422000,100000131230300], + 1000444001001240: [102041310200042,110301030010140,104100002101431,110221000111302,101010001002000,110022140120012,111330020002213,102011440201423,114011212320331,100002204310140], + 311202303020014: [100411024321140,103222210111002,100002004102120,101200224010201,112000401122102,100003404344101,100022011021013,112433200202102,102112012001422,110212210121023], + 1003111420100210: [111201032220400,114203000004300,100022120412132,100000321031423,110322100104010,114043002302200,101222121020001,102120230230000,100032021041010,114100004121121], + 100400202222312: [110104112010103,111102004100101,100122004300410,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231], + 1432222010100001: [114213134000203,114300020001420,114133230000102,102400100202230,100001021030011,112410220202110,103141210104024,102200100204220,103200110102141,100021030100001], + 200321401023113: [102130034023112,103100001422200,100003344210120,102401001404214,102121024000114,114022004021013,114001002300121,111220210022140,102002244010001,102412301400040], + 202100001410010: [111102012220413,101101131132022,110010102132024,104120211242040,112220104002000,102223004042102,110410312121010,110330130010041,102422200201100,100432121010201], + 1101223420330001: [112210104000224,102302224113320,112441402014033,101211120304230,101123210321002,101003010340102,100022024212302,114104002204400,102030001134340,110001010130320], + 1004012010220044: [102141000230042,100120221021011,102002000221000,103220200100320,102000230224024,114000020034200,100010001040020,110200440000121,112400204040200,102200014114300], + 1420102240203012: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,114201104111034,102310140240012,100014204201000,102103321411004], + 1402320420412004: [101000330321020,100102321001302,100042100200210,112240330200110,100114010023242,110244014240010,103103400211221,102100401400123,102200011100023,102003034000312], + 120002332420030: [111212022200012,111412020003222,103021020002400,103031041402200,110010102002310,103004041414132,110302242202220,111121004402312,103010441402001,103221000100141], + 1112121041002400: [104130302103001,100000040401014,112423314020341,101000024001002], + 100201434213010: [114303202300104,112020044000400,102100300233312,103041130110112,100400020010210,110023014202232,102020020204201,111214020002001,114011122301424,111001320002031], + 1001222041030043: [114034220041220,102102231400111,102100422004010,100032421040120,111100232241200,100024004210111,102002100222202,103343010113030,100031404302400,103200234030122], + 121100100114422: [100041001041330,110220300003442,101320214231000,114442130003202,101240200302230,100220400010440,103212034041210,101430001013400,101400111112122,100402210022301], + 1403412101102300: [102100201440001,110400011311001,103300120141130,102110004000221,110040002132020,111144202220301,114224204100310,100000000120200,101434031010012,102304011004310], + 100412200420010: [110220100000102,114042102330002,102102011414242,100041004100221,100014001041000,102310030240210,110000010033022,102210000201040,110110122210000,102200400234000], + 1121320100221414: [101100011102402,110012220442042,100001114303001,100002020122000,103001031403201,100034204311021,110033020003012,110023100420044,103332211400441,103011131430040], + 200030200402014: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,114321002320001,102042000222002], + 110230223200411: [110230301102143,111100210020023,101400240300130,114000322301211,102222202001003,111200000001000,112040020224201,102332210244120,103002004032001,110110302214004], + 1424140032000000: [113020102210041,103042144040323], + 1031020000041111: [100000034301140,102111011142022,114132142312022,110211130002000,101420000330441,101040111003030,100400100013024,110140342044321,102213024031310,103010410104400], + 1112202301112040: [102302200210010,102340120222440,112202000411103,114223204100010,111041202200140,100023014313010,101040100302002,102011314000200,111114200024112,100000020202030], + 101002200401003: [101121211101004,101114101012020,110002002000100,103013000104404,101001304001101,102041111020030,102011000200113,110022001201023,100000040001141,103101124003110], + 241232403110130: [110311002102104,100410204303320,102010420220000,101000040341000,100001024102000,111330004130112,103002311240000,100202144121213,112001032003010,102010020243104], + 130021000200100: [110000101304203,102130020200000,110040020001022,101104020300301,100401241014100,102101004000011,110023330004130,101401001010021,110033002000020,101200200300020], + 1134110400102221: [102022010240041,111121100010041,100020000102421,114202002324000,110013024201420,100004014202422,100112104300311,114000004102342,100002100021324,112001200221123], + 1042320112200000: [102240020200400,110020402002000,100042111220111,103310421404111,102101134004010,103240100102101,114100042311200,101010001000400,114002114021200,101020231000000], + 1103042023022003: [114400022321400,101302340312230,100011101222101,100030411042022,114304212302401,100000014201221,100401200010140,101120210300322,110200030001040,101001040311000], + 113121000100020: [102114000220010,101004030322001,100431024302303,110231211300200,110040044201303,112210304010130,112004020202021,100034020000002,100221424220000,101110311041004], + 1100004111030022: [111110034423202,112014440221201,102311010213330,100021024310204,100022104100032,102001024002022,101003004212410,101000004214010,200224341002234,102412300230420], + 101313200211200: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,110420220003321], + 103214400003110: [102312101001340,110020000110204], + 100000002334231: [114010204101202,100041234101100,112204220200011,100000101024211,100211211002001,103210004031201,111231012242301,114114100214000,110010220040013,101104320012044], + 100322100004201: [101041301000320,103242311400421,114302200002200,100020001224324,100200024301301,110010204412200,111202010001410,102203041122004,101202020300403,114001210031400], + 1004030230310002: [102101021412120,100003014314102,100011214102010,102112241342203,100002004200212,110010332201012,101010404010000,101000411001330,100033304210223,100000011211210], + 112222120112221: [100113220020101,114031000022030,102014002000401,103103241421322,100300211000020,102104304023201,100002224244002,114310200002400,103211220100010,101202201021310], + 1120400021000040: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 110300202220101: [101111140300020,101240301000140,103034130144031,102140200212214,113013120103104,114101320030004,112141320423240,110220204211003,111200142223240,113201230210100], + 1000011310010300: [110221204243141,100400220010240,114102210220100,100000010004124,110312300040010,102020200203443,102102001402012,100124221021011,100012200002000,114012002304110], + 320130342401300: [101200341010102,103124210100201,101001021020212,102401001110000,100131011001300,112011300223041,110220002041102,102200100241120,102030031133201,110032232131000], + 113340030210040: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1120320130021143: [1000200022121000,1320120012403100,110110022000330], + 1000312101023124: [100002100100210,102420424042020,100010001032223,102111024000402,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320], + 111313120002121: [102101021412120,110024020421011,100042014310200,100003014314102,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012,101010404010000], + 101004113044212: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,114032234033303,112400034040002], + 240033120420113: [110000000003200,110200000004322,114342044032200,102041100200402,101100401022000,110400112021140,100400000010022,110213140003121,110000002131031,100020001040103], + 1011000144402210: [100322100143040,100030240102022,102303320221102,103311034030000,100020414100300,100040004102010,100013441022002,103300420111302,101002301003030,114020412332003], + 112200333201104: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,100032310000111,102010421413322,102114020210302,100001100100040], + 100341400104101: [111223402220443,100211120140002,101010201030113,104111021244202,114033000032021,102401004043011,102100001444023,102223134010120,112002200201220,100300001002041], + 1001412420120310: [114043022300023,101020021032101,101003411140003,114304444003432,111000014110020,100212031002000,112002004002011,101040021003100,110023341031030,103202244021110], + 201014130212002: [102300001002440,101011020320030,112202040411432,112130004043234,110013020024300,112101120201010,101000224223002,102010211120200,112003202000010,101224011011414], + 1010202003404120: [100144101000002,103220201200131], + 231113102311022: [102334224110044,112430304044242,124230402001402,110001044200004,100102001002010,102104111121123,103411204001204,103010124004030,100121224230200,101402224041012], + 100021230024032: [100100021040144,114011114123044,114101404004011,114142044000010,111230032242001,102101404000000,103230004030322,102300200221021,114322222322000,100104020022212], + 140112103012403: [101220112203201,100223421002014,100121004100012,112104024020004,134113234320032,102000024012122,101013000301230,111014034121410,112200224042000,114011424010010], + 1201022020141000: [101010224000130,101000414002041,102322004112023,100020140002030,102010420220104,103022301400010,101101020320132,111302024132000,111010104411012,102201100230001], + 302333200211020: [102242304042410,101001034002001,102000201131020,1010120030012200,101024411001024,221104221024023,102123332000002,100202211200032,112243004012100,100142410401000], + 1000002020031020: [110210024220020,103101001422002,102002104011244,111140122114101,103230410100410,100012000101100,102142312001341,110020022102201,102120011404102,100003330100242], + 134240011004020: [100032041021210,110004301222000,110414300030001,100030020011022,114310000001232,111202012222402,102040041320010,103203401400132,103142111441040,110104002010100], + 100210302241104: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210,102103321411004,114113000004012], + 1031202410430003: [104100012102004,110021232000021,100401241014100,110301322104142,100001140000010,102003000212200,102420020204200,102000200222121,110330010012100,110033002000020], + 130021401200220: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1020002400310121: [101130404200012,104132020011100,100000111002110,100122104000030,103200130102024,100400322200340,112223211100103,110341000010200,110221000002200,110014024413040], + 1012410110111000: [110104112010103,111102004100101,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231], + 1430433031402421: [100100021040144,114101404004011,100004414100021,100102404100430,103020241402220,102121001343030,100104020022212,102023110212012,102132210233141,103321000110042], + 100110032030213: [100011004340114,114300204032002,102000021444112,112121032014014,102102030210111,102000201011310,103300100110220,101201041010123,100120004300402,102140341343300], + 1003143213010340: [103302040111403,100030240102022,103311034030000,100013441022002,100020224101141,100010300201242,102104121340001,100232034333120,102200311122413,100020024300241], + 210100042110420: [114001000020102,101020040300010,100213001000212,100002004212420,102121014002022,100141404233000,101020001030204,112201232020001,112123300230240,100210001002101], + 1010431020002110: [114100402200003,101230034044002,103202014020301,102013021123204,132002230002223,110120104221411,110000320020104,102102214031100,102004144013001,100200141200210], + 1043001040000400: [100131110020124,110010000441312,110104140030101,112000101110201,114322312303022,101101400310130,103240304020120,102240130230402,110012120141100,111000220000000], + 120410310011120: [110201201211024,110221022101104,110123004401121,100040341020133,111101344104210,102203031121210,100410220030300,101110020013040,102032124001120,101021204000200], + 1410224130410310: [114201204111222,100031001020040,100104001041200,102012200202303,103300004021200,103222114034232,114210400000112,103230134011412,102112222001200,100021104100310], + 1110024113020240: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 1001132101102313: [101221020040220,102212000200124,100300310140241,100103104302044,101041030320401,102141212000200,102042000222002,101203121020430,100030010102102,102020004000014], + 1400200023240011: [111041004113300,102020010203200,100011144312020,103110120210013,100020221040231,1012220402104110,102011204001010,103012004034001,102001410221023,101010111034000], + 1002001400324202: [100032041021210,110004301222000,114310000001232,102040041320010,103203401400132,110104002010100,114142044120310,110220410000040,101030004010034,102201411100212], + 1100020200040100: [100031300002022,111012002200101,110210022120040,110000021221134,112203412020010,103002044002032,100101020402424,102201112000001,100111020003101,110420202110100], + 1022340221034300: [102311000212220,114100100022224,100003144300223,102423221401120,100324311003242,101430021010144,100200304102211,101012311113131,103022120100040,101004224012043], + 220310002340110: [111201312241430,112120200204001,100030024301424,101011114210004,101211020302000,102420034022021,100002111231143,100102104102133,100210410102144,100103400000201], + 140340430110040: [110220122044010,110042304412204,114020124021122,100002201003312,110110111010042,102230121120000,103300001402013,100400010013330,102204011110020,114042244102400], + 100301022000103: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 1120100002021000: [100002131024210,102410001402210,110000102100012,101004200304221,102010020223010,102120214001422,101412300302220,110320002024021,114201200004112,114002044114140], + 203204120240002: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,101302121004422,100000010011430,100114420000140,102022300241201,110200100001242], + 1140002301222214: [112124004022322,111120230020122,102103201320411,112124310203104,100100031043410,102001000221124,114001100024243,101010111033143,100021221024312,112020100202034], + 1013010401042000: [100043014203003,112332000411020,112230024010203,100000004244400,110024001211221,102012201441404,100131014234134,112000120241120,100030224300202,112202140201200], + 1110011230000000: [114033300040100,111320312222220,112021201120101,100001000012021,102010231120312,102300014110023,101021110322104,102100230210011,114003202304041,114420302320210], + 110022313300322: [102004414000212,102002104014022,102041324001010,111020240024110,100002101021040,114013324102022,100100100021142,111200112221320,100000331021022,101400314042120], + 1020210040230441: [102411111400020,103002100100400,100000014100240,114011222302401,303020114301043,100100030200200,102202144030212,103031204010122,132044134324300,111010111010043], + 1212020444010014: [100030400013321,1010213210204021,114101020033111,112202212040211,103020004000410,111100044403012,110004022101020,110142301120031,100001010404000,102032001030043], + 104230102200022: [103204301402123,103102224034002,111100100004430,102000000222203,101001301032024,201120000130201,100022431030100,102214101120310,100100104101020,102320014112012], + 1103030441430142: [103204214040130,100142010410011,101210210300031,102323201000412,102212434110001,100021020412110,112102314020000,114010002304030,103110000223000,103000210120000], + 132000020002114: [110300222104222,100002040410130,100440001000012,100403011002204,110202414214022,111002420031340,112432142020024,101103012130233,102320304030000,101112241010002], + 104232302212022: [100310014310311,103230004000142,102011114000042,114110024003013,114142102344042,114114040001042,100000030003111,103002004001434,114200000001000,114031122210003], + 1140111300200210: [100020300200110,100042000200211,100024024200032,221123404200214,101004140304211,100021024100301,1101210010010223,100000241033100,100000134100120,101012010303400], + 1112000002004410: [100100124102430,100000240122202,110010102234002,103112041441211,100410131001034,100400320022213,100433100431011,114121224001011,110242012041100,112200042021241], + 114121024420011: [100030220410304,114000102210140,100000300012003,102001040202020,102020430244102,100003004340202,100112324103232,100200001002101,100133210000030,103142211213001], + 1011140134403200: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,114402104142102], + 213141000004210: [103241000112010,112020104001300,101400110300032,110032412204130,100101004300200,114101012201420,111032414402324,102424040202123,101114420310142,101120244000002], + 102020113001000: [100301001000202,104101112102403,114201432320014,110324020012330,120000002023011,101014020301201,100001134302201,101010111002141,100000140413200,114123124143310], + 1141040413110112: [100012024334030,110002002002112,101000001031401,100003104100022,111204014130320,102030031133201,114100340221110,100000221233001,101000114000003,102142034004000], + 110014421002320: [100021400101221,114100124100413,104130301242304,101001114012114,101141400302200,114222042332003,100002044101122,114020210010230,103342424024214,114000124014210], + 1000000210030210: [100110210024121,112220010202202,101210021011110,100020100200010,100020114202320,100400000033202,102012004000242,101001010321440,110011002014134,101001100320111], + 1042011430220123: [110024020421011,100042014310200,102100011000033,100002004200212,110010332201012,100033304210223,101023120301030,112102030200341,114242200000000,232421034234213], + 200030222210014: [111030212113431,102001111011201,110044320441241,102233034000002,110410122010102,101122404022022,112130004021000,110311110410340,100100200021431,112101202012010], + 1202030002011000: [110001114423041,102302014024114,114211020002103,102004200212202,100002134211200,103000001400122,111140220032112,103100401443440,103030010101002,103132104000440], + 1100004104404214: [102134133001030,100213044231041,114124130214200,111012030031241,100103244002044,101142001141142,100400202201440], + 230311000204000: [110000412003001,102011331131302,114000230023300,102021204013000,114400200004310,110003000024101,102400401412102,110424200100400,104021120012202,103211031422023], + 1021200401230012: [110403302023130,110001004204310,100010311020030,100020000200000,100141230020203,101031121003021,100200120030203,103111201443022,110101214400030,114104040220130], + 1113211221020400: [114231202331202,100003021234044,111102032220111,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203,100122101040022], + 100011030020023: [101223214040000,100304031003410,100202100012203,110130001001030,100403300010004,100402420012143,110020012000204,100200001000020,114041002212000,112014000202040], + 100010430000200: [103100221440010,102140000212141,114301000000002,102424114020143,114012444020220,102023021321020,102114020210202,100040401020413,100000024300321,102114001342410], + 1411121410001302: [103223014033210,110001311210334,111403414421302,220321332020001,101100234021102,100002220001240,110100014401214,110440112110241,110204010011432,110232031200002], + 1000122404014000: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,101244324043222,112102232300222], + 104003042102140: [100203344301100,101000110300300,111013104120202,103420104020200,101302034220004,110131411300312,110200124240014,102012110220300,100011011200212,114200024101400], + 1102103221003103: [111042000041011,112040232002301,100023124103021,114230000000202,102000000240101,102020040223423,122202200013331,101111201110101,100031030000000,110100321201200], + 144022300022023: [110401100400430,103143111443210,102112212004043,100144040410322,110103221143200,102320001001023,111033434402423,110020100110002,110001021304133,100400402200402], + 204110300110012: [110112110030020,102331414110004,112000322311331,104100122102020,114211140213100,110201030002222,102212010202013,103203014030010,112002210221333,100201421200224], + 1032002001040401: [110020102000133,100000204342022,102101220213001,101441101010020,100001214303000,111202322222023,100002004342004,100200100401130,100123010012402,100210131002013], + 111003332003101: [112003100241220,102204304000304,102204001121032,102004000220013,114130302313120,100102100000410,114003124010140,100340000140032,101110021040110,101000030322212], + 1103014102040010: [110011414240022,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231], + 300320104021010: [103343014022202,102003104011000,102220330202001,100022200120040,103002020110334,101021134012211,102140200310400,102220130204110,110010002103002,100220034341000], + 1112244421004200: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 123000011201001: [110330400010040,100101231004020,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022,110020130044232], + 1120410122424403: [102102211400103,100244104101010,100200011002201,114022010020032,100211310140340,102221231304420,101003411140211,100100001000203,112200000410000,112121324020001], + 1120102120013040: [110011032010001,101001131021120,100000224343122,112011010210200,102310030202020,110020101010020,102420201112010,100002110000403,100242104310100,101021200342003], + 1001001422400223: [110202000000310,110000010120043,102102011413000,102403404004110,102122410220401,110021232000021,102141410230020,110103111120042,101110020013040,114420000001301], + 100120111000011: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 1004041313102100: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,104101201240100,110000011012202,112102112301130,101244324043222], + 1140200000302002: [100140101044224,101120004023340,103040031403031,101000211032200,100010044300131,111010130002222,102030021130002,110200300000010,101310120314012,103114014004102], + 1121230200040310: [140001210202000,112042112310021,114000402302014], + 1013122010400103: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 1040002003040102: [103030000122220,102200100200401,111132002240100], + 1000100140400332: [100323120143000,100103021040102,102002210221221,100102204233001,114314102301022,100010311034142,100004414340430,101040421112302,100130220100340,102220112020401], + 104202022204010: [101000411030013,103012004020122,101322310313010,100000000410101,114403020000214,100003341020020,114110104121414,101313000312100,101210440300141,103234020104000], + 101001212002320: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 104320330011002: [102102101412200,102403004020222,412010100222032,1000030331001004,411002200000033,101111220222002,110144110000000,114320100012003,1300000411002032,100424222031420], + 1100133304102024: [100240041002200,111220214444420,101000100310021,101014214000103,102102020312401,111042100001111], + 1003020100310341: [102000001132113,101010241003223,102000020220000,100000201041300,101100300302102,114011200003102,101020104000040,114412142320040,102104442004300,103012000143212], + 102412203001032: [111130112100210,102202200240222,110131044200121,100100004102234,110223332120231,100001024301322,114013044102010,114220114140122,101023021034304,110200210110130], + 1010100320042314: [102001444000222,114120014120230,114010314101200,101001201110100,100113201011032,102230000204000,103102044031002,102341014010003,100011421002120,101012320304101], + 100100311300032: [112213000200301,100003224334120,110204130004030,110202120003032,100322004314021,102343301100440,102410434000220,110110440020002,101101000330302,102020214010123], + 110032311122411: [103324221401420,110400332010004,100104100412020,101020031030240,114010004022201,112000130230100,114212002340000,100123314231302,103111004004332,102102010234121], + 1003214301411132: [114213002340022,120402022102021,102120140212001,114400210002021,103103221421013,102010002000402,100240011000013,100000021022400,114201402332241,144200203310100], + 124220201321101: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,103130021444021,102100104002224,102020004000014,100000211023014,114144014122041], + 131000301033040: [100422020001001,111130220010103,110000204200240,103000330110124,111120302100143,112300131102102,112232104010030,102100010210114,100210304104040,114400232320001], + 1020040110002204: [100402200031002,102002030224001,102034000244244,100001224300130,100400300010300,114112220000002,100113314304120,110411420000411,110000001323201,101412034043042], + 234021210112030: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 1142200130022002: [101004100320141,102330134110140,102214100240020,102010201321044,103204201414210,100000001233441], + 1020400120241044: [110132010032031,100200044102003,100110231000142,102420210200041,101312004211100,110010030101400,100432200431112,111022114120310,114003422242201,113331432424011], + 134014014242000: [102140304001042,100202201002113,101222044204000,110000121310000,103401234001024,112430220200100,101034220301143,110003122001030,101012124000101,100011201023204], + 1204011022131303: [110020412000034,100111300414434,102130204000030,100401240012400,100101024033031,100010020402202,114344044033110,110040104211120,112110404021000,114013002303111], + 1022101404224000: [102231114040010,101401211012010,100000000101012,102103120200023,101120211100120,102000424002312,100004000413200,102110000210424,100001100421120,102202340230412], + 123000001220212: [101023424210024,110123042010000,102430321112030,111113004102021,112101432300231,102242200201004,111141224102220,100100101040401,100012130010240,100203114324000], + 1020404001100010: [111320300014200,111320122204241,101000024000022,112030101110231,101000220301403,110100400020121,110011304200020,100021120002000,110003102131421,111014024112203], + 132024004422000: [114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,111403100030130,102022400211311,110030400004330,100401241014100,102324410243220], + 1044200113312034: [101112404231342,110011401011100,103021030102410,110430314220010,102423100202400,114100212211004,100020011230424,100104234230043,102000034004310,102101024000110], + 210003120031311: [102041310200042,110301030010140,104100002101431,110221000111302,111330020002213,102011440201423,100002204310140,110110210011002,100020320002000,110410014240001], + 1220400001122021: [100321004011041,110002342100014,110021312002040,111101042244210,110441010002400,110124002040002,103110314000100,110023410122402,114203104001000,114302200014241], + 203400134000221: [100032041021210,110004301222000,114310000001232,110220410000040,101030004010034,103100104000121,110024140142000,100212204243022,100321001001010,100002111020202], + 1042231103302204: [100032041021210,110004301222000,114310000001232,101030004010034,103100104000121,110024140142000,100212204243022,100321001001010,100002111020202,110321302022203], + 1103012110120014: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,102020004001311,100301020420101,102002202000000,100022024100041], + 1000310201220202: [110202102121414,100002404310212,102130004002131,100430324300003,114230222331120,110143020121321,102000414010131,110410300402321,102120220221022,114001122302202], + 213040400030104: [101000410321210,102001041100103,111102324104110,114021004100002,101300201001300,102100221400312,102010101130220,102304331000110,114000100041333,102330324110001], + 111010044221000: [100022200410030,112202202042410,100004011024411,100402000013020,110010222101000,111204104100100,110000112030000,114231000212000,100000101030000,101024011034110], + 130300000221321: [100003211020020,111000240044102,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100330204322010,102111211401000,100122124300402], + 1222432202200100: [100403200030000,102330130243430,112021400230000,111344004132104,110021110013433,110201010013331,110104120000112,102110031144222,111100024421114,101042301031100], + 123311231000302: [103100000124010,110030414202400,100202304341102,112203242043001,100001020000000,112000132000020,114110012310420,102133004000220,110000044200311,102014010220300], + 1024210012010031: [100011201020234,101221000302204,101040010311213,114100200002111,101000034210022,101322201001022,111212010004002,112420042020110,101022310300133,102110120210211], + 131302021043202: [100032041021210,110001041213031,102300324010203,110414300030001,100030020011022,102040011121100,111202012222402,111322234130000,102040041320010,102402104022000], + 220210111042222: [100142040020020,114021442210441,102030021121310,102202010232020,102010104010120,114230200000024,103100434003101,110040200022100], + 1001021023221222: [101004120224442,100413311002132,100320421001431,101233021020010,111131102210013,110400241240242,101001024210000,102000324010303,114002020042033,110023102103200], + 111101122002221: [114400034122341,101444024041143,114121002310100,103020001400040,110200332041001,114004020010203,114002004033124,103204321414213,100012214302010,101100120332004], + 1102011024213220: [100000201020213,114202112324040,103320300114001,102002204004230,101002020340123,101040004010302,100400042201311,112040202314100,114402102310002,112103020203120], + 1003400144000100: [110020001310000,110214024430312,100011014100041,100310201003000,110412121110214,100212341003212,110142300120000,112013212032000,112001040231401,100012104313201], + 1120120020300403: [112131014040114,110000202000043,101012120300424,110322020011332,110304000102141,114323102321122,103100000110030,103014231241000,103100421241010,114214004031103], + 210002220240002: [110400011311001,102110004000221,110040002132020,111144202220301,101434031010012,103101410212231,112402144042221,102144312001130,114400240003203,112000114003411], + 122402310000440: [100200011002200,112001112002104,113134002412222,102100311320110,110430002112002,102240030230010,110030010120002,110242024430440,111003212230033,111020404402004], + 1030201021024302: [112213000200301,100003224334120,110204130004030,110202120003032,100322004314021,102343301100440,102410434000220,110110440020002,101101000330302,102020214010123], + 104114000022004: [114011000014004,102142420210122,101013444003040,101421110303103,100110104300443,102412004000132,101420421140013,103013314020203,100102401010230,101030021031101], + 1201022201410003: [101031020301304,103130314001202,110300000100000,114001102211300,103302320110042,110031422000002,101212402120010,100020321212233,111120022210000,114042324104012], + 1020202040201101: [102430114020003,102011201441000,112230004011202,110212424434423,111200014103002,110214002122002,102400024041204,101000014004024,110030021011003,112220340200012], + 103013122030041: [110000212001040,110020000431012,110034411301222,100132044303043,100012020103142,100402020013040,101014121000220,102120231120442,110021221012222,100441320030420], + 1103021331121223: [104010100010424,103010014013304,102103030201001,100010221031023,100140000024021,101223024200014,112240404012020,101201024203004,112042430240120,104000021220030], + 122101102022110: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 130001020110310: [100000041223200,102310204112124,110000412010002,110014101300222,111001002110313,111004034402002,102130140204101,103200004022111,103230241200200,111320300041212], + 100000200110004: [102440001113120,110004221040341,103200204031212,100001024240030,100410110002020,114004102201202,101010014001032,100222014121024,100402002200000,102340140222011], + 112121000133434: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1010200140220031: [100020424300341,101021414001303,103001110120021,103323314024002,101004121002043,114020320040231,110220012121020,100400104302040,100012101020010,103104001422213], + 221040203202140: [103114204002100,114230004110101,102122101023020,100001101033010,102142002000030,114000024101202,102023110221011,100100114302030,100100014302013,102020121130000], + 1011443204402211: [100203321001221,103010041241404,110333010011034,101110140302324,100004141034320,100220200430102,103402000132003,110021200140100,110020011020041,114001000001210], + 143422010004334: [110420140032102,100110014103210,102013130223020,104100302102030,103200030110000,110002002002112,110202120004000,110000242104040,114000444100400,100000200003102], + 122001040441230: [110102224201130,103301201402204,100021020124002,102104131412412,114020312300021,102400204043012,114042014014024,100000000200102,101011011000320,102014040242202], + 121020020021131: [110413304221020,100440000030040,112130010202041,102012404000211,102141010230441,100100341010111,100110214103200,101030320322101,102322121000140,114140002313010], + 131121040414300: [100100100422103,110020134410001,100300020142022,102101002004300,102043001021033,101210211022100,114100202200202,110004100002122,102030301322020,112000020241310], + 210404004012342: [100032024201210,100013401040442,144442110010421,103012134011120,110412412010034,100031030004303,100101132014001,102102024222122,144012013212122,100402230022321], + 100103032212211: [111220212242142,100201010110320,100000221030033,110210402031211,102031004010230,112000012000010,102122014003000,100020330410000,103000411240040,100402002201002], + 1123200003103032: [102300321004202,103003441432012,102311410222022,102000401410111,112000112001400,111101304101024,112240000200001,101021010300000,114111000233241,100001004100121], + 121040040201341: [101001400301113,103101024004200,103300021402104,102102024000001,114003104032034,101012044004042,102020304000321,100021201020001,102110202001101,102144322001200], + 110020221100210: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,100132004231230,102011004013000,111200122222334,102301024113440], + 1200000230011320: [100000004100202,101024004002101,110120041200201], + 100300031130042: [100200004301323,110010030440201,110041002130210,110020004414024,114340312301134,100031220121003,114310242320310,114302102300200,111042012220110,100011120100002], + 1423010401400320: [110020301220324,100041000010302,102020100243032,100031001020040,101110404021211,103110041442122,114210400000112,114042014102321,102112222001200,100021104100310], + 130300200222001: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 122240042001141: [101001210302014,114013414010201,114110002340012,100012001030012,112141220420023,110002204201004,100200304121441,102003241103022,111031014120342,103012400100023], + 100022012023210: [102000024011300,101011210300000,101002221140440,102040021424212,112400020200104,100100001010020,101000000322000,100102021220030,112002022034002,110200140401144], + 100020020220110: [110012000141104,140300020110000,100003301030120,100101004230030,103044004034040,102412140201410,114034000012210,114121200222010,102024110224001,100341231000131], + 200302122220000: [110041210030120,101000100342211,110003022100022,112204330202240,114300014030130,103100140211222,110413310101004,114021140030012,110014240130030,101001121000412], + 1000041201430011: [103114001441122,100422004320024,102420031111001,114211110023303,111000302230100,102300011002030,100120220000101,114044144020400,132202000104100,4000113102314022], + 1001343432440102: [110000212101040,111120002100412,110302012103034,110001110001202,102113100230021,114013022304040,102030100221011,100004001002300,114020100042040,114000304031102], + 1121020021201430: [104110021244203,100200004301323,110010030440201,110041002130210,110020004414024,102103022002001,100031220121003,102102224000012,102100102001032,101100001102230], + 1102020200012030: [110010130000004,100000331040124,102122022000230,101011200324311,112030040242300,112400002021310,111103044400100,103321230110010,100032001033034,100231010114120], + 133012300012120: [103010040142210,110000002101002,100310021003100,441411013130300,113004021002002,110043004203001,112002002000203,100130224234121,102214001100202,110402012111011], + 1003004010201112: [102030004002200,112414102011010,110014012001011,110022410420343,100100410401030,102000040222041,110420200000430,112323332001000,102303044033020,100310000422013], + 1040202420002403: [110441234224400,110030002000422,103100014031411,110000300424304,100032121024110,100011004343022,110013122130200,110401140004202,114020204102020,102402330230011], + 110001033202204: [104103201240410,100300204010001,100011320043322,102204100232030,110110012110224,100200011220231,101004410311320,100200310110000,102002122014040,103112010212244], + 1141212020013412: [114041300010302,114041332330410,102011000233013,100030014212420,110000000021142,102114002001012,100014200200204,114120312310022,122213202201022,114203024110400], + 1020112302021021: [102110120202001,112100042301414,110102030023004,102120314034114,110002101101212,111100320023012,110341222103022,102200120230002,100042024300400,112433004010320], + 122300021301102: [102021024000010,112011012004300,102300010242330,102000401120420,114011102210402,114300100000041,114023204100222,102222014011300,102101430203000,103030204010001], + 1102103131210400: [100002302213022,101030020022301,110120400022300,100041044101100,104032420010121,103412301412120,110122121001403,110012104410012,111013012202014,103200100100122], + 1101420000331020: [110024010440102,100033410104422,110142322000202,114011204102241,100023311224032,100000104310040,102013444011120,101000410303242,102014021131022,100240214101440], + 1104333012010024: [102100230222004,112130000422204,103033000111000,102200404030234,114040120021110,110011002001232,103030044003040,101000114000032,103203400100320,102102000202200], + 1030033234010204: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,100014204201000,102103321411004,114113000004012,102140114004004], + 1002012003022201: [100000111021003,103000001004002,1304100402114410,411242003002123], + 1002200204020200: [114201102320021,102104241412020,102010124004041,102011021132412,100010204102110,101012004212201,114000102202022,111303034134331,102222421012100,111101134102300], + 240220000334031: [103122204030142,111002014122111,110200400010001,112013002310110], + 1002020002022000: [101112404231342,110011401011100,103021030102410,110430314220010,103330104030103,102423100202400,100004014300341,114100212211004,102212030201100,100020011230424], + 213213010121420: [101342300314204,114200034110031,114423002314000,114040002210432,100010040122204,103314044033003,114102224104002,102001420220112,114422404110312,101010010300020], + 112011021000022: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102311120222404,100100000422320,102100012002000], + 1010024013400000: [110002021222300,114014104033302,110224030001001,110221120402204,110323110104120,100202324120233,100002300113112,100000001034210,101020104000300,114003402300102], + 1002001034024031: [100202030140400,103010204011233,101024130300401,114424212321001,142011423130201,102000401130243,114031212300003,101022021032142,111001122224141,100011300001203], + 112132134141200: [112110340200041,114000300001030,101220030300302,103233000101300,114020204100412,100013144302033,100002220412021,114120104002413,102111410210032,110031210130310], + 212211122000442: [110001202000032,100024204211200,100010101020403,114230412332011,100001211042341,114032104123010,111322012202310,114330204034200,100010321043134,102302001002104], + 1101214313201332: [110024404211001,110100022010010,102131201401041,100120001040202,102140140210112,100004220412010,101222020304402,101201130302002,111020400044101,411120024124200], + 123300423122202: [100200004301323,110010030440201,110041002130210,110020004414024,101400134043222,114340312301134,100031220121003,114310242320310,101100001102230,114302102300200], + 100000000030421: [102002121101110,112014201121001,102403100202003,110000100041101,103121204001020,100400312200342,112334320201110,101110320330021,102000002043020,110212000003404], + 1040310013112100: [100441204302021,102100101340232,100011320001003,100000221020200,100200000030010,100443211002141,100200010431000,100003421040000,101012400320022,101130031041024], + 1002101034022040: [101021134011012,110332202020000,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,110030410040101,101300401002320,112001321113132], + 120020400132240: [112113214020100,103300344012201,100122200012014,100000130013400,100011200201400,100001321032243,100201104224131,100002100204114,102211430202033,101031321022412], + 113014042312230: [103203224022224,100143200421104,112200122022200,110213010400012,103240214031201,110210120000141,114022114010220,100010001043004,100011410400320,110102101002040], + 1422302421131020: [102010000231120,114004000023341,100420114302431,101201001010223,102002004000203,100310004100403,101000321004400,102201321300010,100122000402410,103200330100300], + 1421042002004002: [102020041440000,100004004231003,100200024121000,100211011001040,103030020100023,100204001000003,101001030300001,100020040401004,103221001204004,111240404440200], + 1024410000201004: [102100022003140,102102211021113,111400024404023,110020122000043,101004001030002,100010004100021,111240124130104,110012211001003,112003230232000,101003100320023], + 101010121403231: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,110200320000000,100001424102041,100100021040230], + 211421030202104: [102021001132040,100032201024101,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320], + 211220400000040: [102332021001000,112110102302022,114101022340004,100200124341000,111203004134421,112120022010120,100020024200222,110101221300331,110211000021000,110002340040020], + 1000031222122102: [100043014203003,112332000411020,112230024010203,100000004244400,110024001211221,102012201441404,100131014234134,112000120241120,100030224300202,112202140201200], + 200132010021041: [101003010300002,100030214211230,101100004004111,100241100430133,110000004202042,110020002124243,100002044201000,100402410022101,114000020012002,110213014242141], + 101111010020100: [110102224201130,103301201402204,102401121113302,100021020124002,111201210000103,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010], + 1002200010232001: [103203020134020,100103331020241,110100121222200,110002001211111,100011440420031,100122031022403,101120030330141,114002212300022,101012134212002,111010400040212], + 100021020010010: [110240040001040,110302014420400,100224000012220,111401002210202], + 111010001021200: [110013312204132], + 1000301410300011: [103044301431001,102010220220022,102301044020300,102111001023200,103211001412040,101004114210003,1004020010032003,110220222123322,100022202042210,100402022200030], + 201041411240204: [100044041022000,110402020001421,110010412101002,101410104020340,100131300422201,100014030414202,114210412314301,114002204023003,110112202140320,100100234234040], + 103010000003331: [110241142024233,101001421031220,112220322030220,110210301200101,111000034110311,110400241240242,102200001002100,114443304123123,102000024010002,102413100201310], + 101024102240012: [111103402241002,111200130011000,102000101120401,101222414013042,102210044003121,110202432243230,101014440310403,100140104230112,111202132210400,100120310112042], + 1001002132441200: [110220040110201,103012004011310,101021024000000,114010022303403,101032344210022,112400010203210,100042010003421,100013114210003,102000124012112,100112114024000], + 1024030410020114: [104132212102200,100041230102210,101320244221142,104100042101431,110424014243001,101410241100300,102000114001011,112004000223004,102320031100120,110231011210112], + 100002210102012: [102123000230200,114200302320443,100401111000221,103302010140122,100010001001122,114000022210140,100000021032200,100100310002103,103224020100300,100400314300312], + 1012103132133120: [101302134233230,100002200103104,101030404212000,102040300241403,100431000032001,100020001042002,100202031002101,102103331400000,100120041020012,101301131002201], + 310142112300200: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300], + 1131013004232240: [100240000140032,400013004332041,104122202100000,111102010020434,100400204302004,102200210200442,100100021010112,114243204113000,102323210243022,102004010202104], + 1403012324001441: [103110021442200,114023224010002,110020320412002,100104214302300,100300301002020,100010104210010,112203010200014,114101010210010,114012010011101,114400444140020], + 131342102301010: [100440000030040,100023101001004,102001014013004,102101000233302,103210210100210,101043004211000,112340340200112,100001000010010,100002121021340,100002021021432], + 1021104310021004: [110414402020021,114312012300300,101012104210042,101430001010032,112402012020000,103322241400404,103210120100143,101010024213100,110101010011124,100040000123130], + 1103100424021200: [101400004022112,103002221400000,103110020210000,100022141030334,111020142144200,102100201414400,102100404021014,101313201003110,102303001102431,100141334301022], + 100103010031300: [102401021402212,102041020220100,100013100100014,114120204000410,100000001020000,100120234300003,102100014000422,100031011042040,104312001303013,101403014021204], + 1010020204213144: [110010000111020,100430014323000,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101], + 1124002102004120: [110011001021000,102020000201200,110110414402000,110222100011043,101020320323422,102122004000004,114220040212401,101003301110132,101100001100404,101014024010031], + 120010010241003: [120120000003001,110140344200202,120100201223110,103102441241000,100422001011022,122332011034002,100111101000002,111000134112002,114322002322220,111041034404040], + 223030000000000: [100020201020032,103000011400001,103001010101001,110220000113011,111030014120004,101000211031021,102020001021010,111300022201241,110402410002000,110020001210102], + 1010002201000042: [114101024120020,102004011440212,103140320213200,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 223222012000220: [100402210013013,112032040234431,110010232004000,101020004000000,101004310324302,101010030302022,100120040400011,100214044220201,110410002020200,114321224032200], + 124321412030401: [100400002201113,112024212301420,102420424042020,102111024000402,102001011100100,114402104142102,102122412001012,102311120222404,114020404020132,103231241401000], + 1010432304233403: [102114321402233,114310430002402,114222104110000,110242444432002,110021100022013,100244144101141,103000104032321,101023440300102,110140110023004,110033040001210], + 222010140142101: [114024422210000,101040310304013,101023124002002,102121211340110,100002021002100,114403200002401,102111400210040,114204210002002,100044241020200,102000134003010], + 1003341240200114: [110214024430312,100011014100041,100212341003212,112013212032000,112010220224003,100200001001300,100012104313201,110212310000041,100040424310110,111301332200104], + 1122212100020000: [102014001321010,120444400000021,100011120022000,114113014000041,100040014340014,110011202132312,110012421320030,110000211322312,102101404132110,111012020000013], + 1001200302140021: [114304022322302,114202112324040,102002204004230,101040011140142,100400042201311,100131314030200,114402102310002,111100132103413,112142010234322,110323002102120], + 1000121002010000: [111210302220403,100020114202110,114000024012220,114000144100030,103002001420012,101240004230010,103001404013000,100114010410021,101300101002431,102303020241004], + 101211340310023: [114000000032100,110140102142200,100122124300010,100110034101010,110410224241010,111300402201232,111011100022010,100400444100202,102004000201030,112020401130100], + 1010121202021210: [110201201211024,100032201024101,111124004101012,102120004001310,100040341020133,111101344104210,100410220030300,101110020013040,101021204000200,101200111020111], + 1002200002000202: [110410200100200,102113340210000,101010200321421,110413014220021,102132111410302,100203121000000,102200001303033,112110240200131,102213214032230,100421041000210], + 1040000000000013: [110012231320200,101203001010000,141000211410012,100113300012420,103421314002310,101002001110304,102102010232420,100100001004210,103004000100014,102202421120032], + 202001200121011: [102014000220330,110402001004440,100030001042002,111001022111004,111000042230334,112002300240001,114400234121111,101020314000000,110002342000440,102130104000332], + 220012110032030: [110100041200400,111311120014011,100001130001003,103102104000031,110201134243240,110020134410001,111100044100001,102204004042041,101004010323441,102101002004300], + 120021100344031: [111203124100202,110014142204101,102001104014024,100203321004410,100100011220404,102301024113000,110130221222012,102020114003042,100103414042003,100000001020104], + 1010000000402004: [100004204302330,110000100422111,114010314101200,102341014010003,101000030321400,114132202312102,100004400100414,114322134002204,100002320104400,114021310020022], + 140004041020220: [102231130213210,102000402041014,100043324210140,100023024211011,100003201021001,102201100200430,100022010411004,114121300224141,103112011421222,103304001400132], + 101231010040124: [102010114022011,103340041403223,114002200000421,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,100010031222001,103001114001210], + 1430000201422401: [102110011020012,100312330420301,100421231011102,102200004042430,100003221233221,100103424030310,112032024022220,112002204021024,101010134000300,110032022014300], + 120040011334223: [111302202200100,101120211110232,111031244113111,100111004000020,110041220420220,100104201200030,101020104002000,110101010010430,103242310130011,114414004140203], + 1003400211200012: [100113220020101,114031000022030,100300211000020,114310200002400,103211220100010,101202201021310,103044004010022,114130020222342,100042034202031,112301032022414], + 110200103410113: [114102300004024,112102201102030,103222244003021,102420011111224,100020004300114,100000000413010,110232020002221,110010021200102,102013102002210,101002004012121], + 231320402320100: [100000014102130,100022044344000,140104013031303,101101001020004,110010404413302,110004001104031,100100024003203,100013001214140,110002000040202,110110424221134], + 1003022232202041: [100404030012420,100402022200102,111010302203001,114144212340021,102110001342020,111123420020420,102302104112440,114000142331320,101114414000402,114100102341011], + 230410211231000: [140423043001013,114032402302103,100040004210404,102220421000302,111202000002022,103003004002202,101001200301421,112121110200043,112002002000202,100020324313320], + 1040004400101201: [100003211020020,111000240044102,100330204322010,102111211401000,101030411001300,114022200020112,114201100214222,100000030100014,103000001430211,100014204101020], + 110012002200304: [110400332010004,100023001030212,100000010023013,111121100012001,101020320320424,100014121020424,110313010000400,111002022220000,110021001310041,100030430002024], + 1010440200210121: [110020100042220,114200302320443,100401111000221,103302010140122,102113101400001,100010001001122,104240202023232,114030204021200,114000022210140,100141321000100], + 1130321230230230: [102120214131012,102230200204114,112030210211000,114130312310220,101411010300100,102200434122241,100221114242000,103012204020102,111120114103002,100101210412030], + 1143330433400240: [102321301000010,101002204000401,102210424042300,402104002030100,114200022322110,100102010013101,111100130010100,112001030221202,101120230332423,110040001203001], + 224202020223420: [102101004000411,114221312340014,102434121112224,101200210300413,100311204312442,100001024100241,103000020100131,101211204201231,111130412210000,100011300412123], + 114102200241002: [102114000220010,100431024302303,100020010010020,114202010213010,110231211300200,112004020202021,110003001101020,100221424220000,104134010010001,101110311041004], + 1202110440300220: [102112004000340,100043004202004,102204020232000,102102204030100,100003440411230,101112404000210,103000004042130,102232001100143,102232124031420,103000411411012], + 1011202412040030: [102001140210301,103302220110131], + 1010124300411230: [101012011022300,110110001224003,100401401003240,114100002340040,103000001240214,114132404003001,102102110220141,114142222322042,100030041042011,110003301213002], + 114121122100202: [401210002011000,404010201000410,1014200301032410,1103013112041021,102030001201100,110200024240110,110431004224201,100411031001404,1000000300003014,103000001421223], + 1000340200101044: [100000001220044,102022200220022,102042031102112,102140114001021,102410111110002,100101041040330,102000100210400,114102302311211,112122334022424,102122000212204], + 211104024243303: [110120200030233,100132040031022,110031010430100,100432431000310,100004000014032,102104004002400,110000000132320,111202002201101,110020122102003,110014000442004], + 202202223002221: [103120010103002,102040310222200,100112120404244,102242220202120,102122101340003,110420000002231,111324314134002,101300200311010,101200010301122,102321021000002], + 131330034100002: [111210044131101,102011101131021,114032002303014,101242421020211,111314204120004,100000004212021,110310042021341,100204011000000,111010110042210,100000001224221], + 1101031044011210: [110042220002210,110410200100200,102113340210000,101010200321421,112001402002232,101014421034001,110413014220021,102132111410302,100011104104000,100203121000000], + 1010310030004202: [100220034323210,112121212300101,100001124102222,101200034044300,102204044042410,100020310010001,102220001112023,114302014032021,102404011400100,103031014003010], + 330012000200110: [102010000213110,114400204120131,114213002320124,114100012340011,100402340020201,114111200034000,114133140030300,111003002142001,103011104010114,100400300013102], + 1031000024120120: [110220122044010,110042304412204,114020124021122,100000104343000,100002201003312,110110111010042,102230121120000,103300001402013,100400010013330,102204011110020], + 101000102210001: [102021122110400,113000200131401,122300200130321,130312421011034,122122400100233,103444001210200,102212230201401,101004100314240,103002101220010,110001101024320], + 103101101100000: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 111011420401020: [110001420424040,101103210334211,100212001002211,101042000300011,100422000432230,102200121120011,110000002010200,100011241032404,100012001234044,100000314311130], + 202000141404340: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 1000143000442111: [100020001041004,202421100022041,102100111403011,1000042010002402,1100001420031333,1321202200220200,130030004001124,100040220123030,1132120124402200,1010320200004412], + 224441300400100: [100004001021111,103000004002012,101021004214202,102110030200120,100301421002002,100202140000111,100003000104203,102114320203000,114001112300001,101003104212220], + 1004111021110001: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 110022042042032: [111102104100334,111210014102030,110401100001104,111440000000202,111200344442041,103141001240021,100001401034130,101220200304110,110403102222001,110420014242010], + 1003022011100200: [110103101201203,101422244020101,102142120224022,100002021021020,102104100233030,101210010304011,100012210001220,111022004124100,104011041220301,100122130410000], + 312010300200231: [102331021100100,110002002002112,110201124221001,100041204331000,100032114314114,114012032240012,110222120103200,101100234021102,101001424014301,110130020003201], + 304030233440431: [110220100000102,102100321320100,114042102330002,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102310400240000,101201340300430], + 1022410011031230: [110033000022043,110100200030100,104412212102010,100000411231000,103140021211010,110132020031210,100101004230030,103044004034040,102300231000210,114000200010000], + 100404102004201: [110400112011100,103210220100310,114420304140242,110002012103110,102441030200210,100441001010204,101202240300141,111210002244201,102021111130131,110001022130201], + 1010021442340001: [100200104321000,110000110410110,103220030101023,401300041114001,112032302000220,112003000230001,102004301444000,111133030010200,102103231340304,114000044101422], + 1040003210240300: [141030301403400,120402022102021,110140101300004,114400210002021,103103221421013,102010002000402,101302101002110,100240011000013,114233112330324,110423221000200], + 1121020101201443: [144131233204044,101001131032132,110400010031401,102220211120002,114112002313010,114014010033321,103441112000230,132042400010214,112030200211020,114402010310222], + 110302420302320: [103220011411101,101220111023331,114220014111304,101030301000221,102232034010000,102003111413120,100023101043203,102010311320332,114200122340300,102000031101202], + 210020024003202: [102143124001400,100020440122040,102002034010400,102020030220401,101002121000111,112404002023002,100033134104200,101432024040221,111001404112102,102240101123230], + 1000032214400210: [100202400140300,110421220003142,114404220000142,111210302220403,101100214003002,100004121032030,100404342201400,111240012241220,103002001420012,114440210000102], + 1103202300134422: [114032104100141,110122421241103,112001144002010,101013030304101,102000004000013,102021241324040,102300441002012,102301010220102,102302331100430,103122001440214], + 131000000201004: [101221121202421,111042022141200,101441101010020,100442220030040,112310010200312,100100241020020,100002004342004,103010330100320,101033300332204,100101004300001], + 1000000210014114: [102001444000222,101400134043222,100010400013202,114340312301134,114310242320310,102110021401100,100113201011032,102230000204000,103102044031002,100011421002120], + 1001001302400301: [100201101010411,100202140140110,101100024000410,101220011000320,110240222100001,110140241220420,100240020010213,114213114031104,110002101332340,111003000004111], + 221310330123223: [102001404012100,1010400230221020,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311], + 1022010322231003: [100024234201100,102120201140110,100010234114300,100331200141014,110112204224100,102212234021233,110224102230230,100120411200320,100100341202102], + 202000204010112: [101102400330110,110132011000040,114440140000234,114100220033300,103021020110143,112030001120440,112000014021000,100021100420321,101024014004200,112200030204103], + 102120000010224: [100032041021210,110004301222000,102040011121100,114310000001232,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300,114142044120310], + 1144022001011301: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 303004040210410: [114022412330004,100103104302044,101041030320401,102141212000200,101203121020430,103130021444021,102100104002224,102100224000210,102020004000014,102100200210002], + 1413003032402021: [102124121023231,114442104144001,101301231001140,110102030120012,102220214044113,110001141011223,101013224010003,114402240003200,114042004100020,111132244101222], + 1000000020000321: [110001114423041,102302014024114,102000031130401,114230100212043,102004200212202,100002134211200,101003324000340,100000014211010,103000001400122,111140220032112], + 103141003023020: [110033000022043,101230004040022,114244120001041,101021020324310,100020140121034,102340211000200,110010220000210,114021000044211,111241224101013,101312014223102], + 1040333430241330: [110114001202122,111021202200011,100001010100220,100414031001210,102000004012011,114023102303000,110101100012002,114421002320003,110001002004240,100030220002102], + 130020004041130: [101302134233230,101030404212000,114102224000201,100431000032001,100020001042002,100013011020311,102103331400000,100120041020012,102012204000242,114143024003322], + 1000301011010010: [102100321320100,102102011414242,100041004100221,100034004211240,100000000412112,110000010033022,102330040242220,102140121410131,102310400240000,101201340300430], + 1421020020110110: [100222204332402,110002040000012,103110100212104,100430101010214,103400331213100,100003001020004,110110120402401,101000234004011,103201440100200,114101000210300], + 220123000040002: [100310120141002,102324014112020,100002011042020,100301421002002,103022021431010,103200020111014,100010004313001,102010200221000,103104200210410,100002200410030], + 103011020104000: [114104220000003,112010212000010,111130222212000,102100112004011,100040204312404,110121102013020,100204410001023,102323000221120,101400421100024,101023100314020], + 1412220020142244: [101000004210011,111230342220010,114010024011000,111122022240223,100004111024200,112404232010231,103302100140200,121103000144034,110420412024420,100000111020203], + 1101102120240300: [101200100304010,100102000022402,100000001033001,101202404042303,100121231021002,102020200220310,100124100031200,101010200321022,103304014010000,112402002010210], + 1413400010130000: [100004001021111,100142010410011,102110020202330,100001010014420,100003000104203,102041410242244,102101220214011,114001214100103,102323201000412,102311110240101], + 200100230314033: [110200304432400,111222404100330,111002234114103,114221002303200,100434000030230,114014032333420,110031330120101,101022020311140,111010112203101,112440014042100], + 101201012403040: [102001200221011,101000004010012,103024000103302,102244221114031,114201024112001,100000421024110,100104000101010,103204400100042,102033401100232,114221002324001], + 1100140000140200: [103104001440422,112030101110231,100110104102000,102000201130010,103202404032404,103331140112102,111014024112203,100100100024000,104200211304000,101202240301440], + 221000211010021: [102442211414022,110122001010214,102101204000010,111231012220013,110022300420031,114230230000123,100101220101011,110000141123103,100222024320003,114013012300240], + 1030231200210220: [110130314400100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,101002024000400,102202031002304], + 131010200010043: [103300120141130,102110004000221,111144202220301,114224204100310,102304011004310,102100144001112,102000041441002,111230424101321,112001004004000,100201440000313], + 1122220302242010: [110001041213031,102300324010203,110414300030001,102100142002204,100030020011022,102040011121100,111202012222402,102040041320010,102402104022000,110104002010100], + 102131000203000: [112030401110101,110321404420200,102201001001102,100211024341103,110210001100311,100022300401014,102311204112020,100101200401431,100120004000011,114002314102310], + 1124003200330211: [110042220002210,110410200100200,102113340210000,110011401011100,102221200204022,103021030102410,110430314220010,101010200321421,114100212211004,112001402002232], + 302130020101312: [103342200140233,114020140103010,1000401022322000,1303010022004241,400100100020140,101020124100111,1303021014213202,400000133010010,1322100311311120], + 122001311320200: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,101002200301130,100011120000004], + 1042234310003411: [101002400320042,102212001110412,110334004430003,102300401004001,103142111420111,111041224111040,103000401220324,110401404221420,101023000300100,110222212022003], + 1004201102100201: [100032041021210,110004301222000,102040011121100,114310000001232,111322234130000,102040041320010,110104002010100,102042204000300,114142044120310,101030004010034], + 122040002201230: [110204032030400,100422201002310,100021020021013,110010200004233,102203031112000,112204004001232,102034031324100,102401004042103,102402234023100,114000024100000], + 1004003201032131: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 133300422121024: [101434031010012,101002304210122,103101410212231,112402144042221,102144312001130,114400240003203,103000320120003,102022002000202,102122020230423,102141002000022], + 101204101000414: [101142124022010,111200012220040,114202002320113,102430001401230,100402120031033,100010024202200,102221230200001,112403004010231,102102021143222,100040320102201], + 142110442142000: [101220040300414,102121211343322,101003140301001,102410001111322,403111002011011,113210210400400,400100441040022,110011022100114,103100001242220,1001221320011301], + 100222344000410: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 140131143013020: [100000430122100,101200100304010,100102000022402,100000001033001,101202404042303,100121231021002,102020200220310,100124100031200,101010200321022,102000231122032], + 120210011100301: [110021100023210,103122000100403,102023120241131,114103412201420,110014300041302,110020041310021,114241000002004,110020110400102,110321001330010,100000300100000], + 200200002022311: [110010302000004,100102001013034,100001014100021,102030414003000,101342020314000,102112104004041,100022244300030,102422101111002,110132232013130,100400002200402], + 1403211101104010: [100232121210011,101310004223223,112022200234200,110043132100300,114122110032021,112230000412212,103112001211043,102220120203200,100002004201122,110303122100010], + 132002001000131: [110144240011020,110300204431104,411200142040000,101040211000300,110413401240204,112000244001222,114441114123013,114000012334102,101000014012442,102120402001131], + 1010000411200122: [101224001202324,111211144101202,110240102232020,110000300140010,103102134001111,100003114100011,100002314204210,114000114102224,100440030020002,102404104020130], + 1000010033204101: [110110011340130,100210304330211,111121210031101,112312022021021,101041010324010,102104210214401,100011230101432,100032024240322,103202224024200,102130031410200], + 1141404302330020: [100020330100100,1002443410030003,100011231042030,102100141413100,102110021342213,112002310211210,100010031020102,100020034100101,102332100243030,110004424200024], + 300240001020003: [102143124001400,101204400304011,100020440122040,114103212312012,102002034010400,102020030220401,114231212342200,114002122210242,112010244000200,100000020100301], + 1000003440011220: [102210100313100,100004420014012,102240210240022,100102001040033,112032020220030,102024124011010,102000324013042,100030124212213,114210102320112,114234004112000], + 1400103020400220: [102123242001200,102100410211031,100000311022110,100202004324201,102041020200401,100002021042340,111103214101012,104103012102410,101000011034104,101002300312222], + 130002101210240: [100022102100243,100013230100000,1030200104020421,100121120102303,114100222340120,132011000122003,110230010002303,101212413013223,100004424041022], + 1000000241012003: [102422114040010,101204400304011,100020440122040,114032424122040,102020004001311,100301020420101,114103212312012,102002202000000,100022024100041,102020030220401], + 101020101204110: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,101022011003022], + 122300000003321: [100011231042030,102111144001232,114200214002024,100111221011100,114112000000100,114033210041030,101003201111000,110000011211220,101031420340300,111121200013000], + 1100012030001001: [100030010011002,101021301022041,100402300013130,140320413003120,101201220402420,400040001020004,1001120000022000], + 1040020300303100: [114423002313120,102300041004010,103000140101310,102310204023400,114401010001000,110402112220024,114002310021310,100021401020000,100203310430032,110103011141230], + 332003030020400: [110010102132011,101000404011142,110020022000020,100002024310012,103014214004003,101014200304201,103101130123011,100030000410200,112410104040230,100400130013002], + 1002000111200004: [100404224300012,110003200132101,110202120003032,102022010220223,102343301100440,110110440020002,101101000330302,101020310320131,110004110002011,102020214010123], + 100202203224133: [102240221000001,114000024101102,100020124204330,103002121432200,102141101410101,112202412030001,100010000101004,112410140230303,114210142321120,403221301412211], + 300101142200010: [100021314202402,103142211442311,100004411033203,111123212212000,112240042042022,101204004040140,100014001030021,112003020230203,114224012340002,114231324103240], + 140102131020030: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,100032310000111,102010421413322,102114020210302,100001100100040], + 1030102002040222: [103204214002340,111101222101212,101214134040140,111002304411031,112404322020241,102001310224010,114000224102000,100112034103110,100203200030344,102004004003200], + 1144403303200131: [101342300314204,102010244010000,114200034110031,114423002314000,114040002210432,114010134021022,100010040122204,103314044033003,100040240003341,114102224104002], + 200102200203010: [104100111240003,110001004204310,100001200100310,100010311020030,100200120030203,112022131130201,112332101100224,110101214400030,114020020040301,101011024001101], + 110000204002422: [114112432204002,110412001240302,100110004103103,103004201421221,103230304022210,102023120204401,100012204310100,100104114230000,403140033110000,111020104112201], + 1000240341021001: [112133322013122,102100414000214,102120411343120,103022140121213,110311332020021,102013130202310,100001014201140,100024401043241,102020424001010,411112330100013], + 243401300001023: [111303420012131,110141221322023,101422004042000,101243404044201,110102010022243,122000100001414,112012102004004,102132400224100,100000020204240,100220201202320], + 1401103231022000: [100011021041112,100110034300000,103030331404010,102211114110021,110004021214200,112100142012001,101032324220030,111020102202303,102110010202300,102202004042130], + 130141000102001: [102010004001300,102120404134413,101100200330040,100100221040404,114440012312003,110110121300321,101202010310030,103321311400002,100000040411123,110242221300213], + 1032200100022113: [100300031003200,102310031100100,114002034102120,101020200302021,114020402303041,103020031420410,100002021020001,102322014112302,102000110224002,110021200043220], + 101220401010022: [102132020200100,112000201123012,103312024011004,114410212320200,101211204013302,112020011110100,102030000221301,114023030012204,110014004411404,103020011430001], + 140400220201100: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 100130210213220: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,100111221011100,100023104101340], + 1001042141224122: [110144240011020,110300204431104,411200142040000,101040211000300,110413401240204,100222100030130,102120402001131,100312401002102,103110001420121,110102112010100], + 111031220212210: [131000001020102,110412310030001,114012022302022,101042024210020,111030340040341,110002000020324,110441410001222,100020214110032,103021004043024,112240204012423], + 210002020103111: [102022404012203,110210334214024,112020010222102,100100324232004,102141240210423,101410014024001,114100000212230,102100031320041,112141102011002,110020234201010], + 100230004043034: [102124231401212,114202024111304,110200102020212,114112000000100,114121144001400,102243044041110,100030330104020,103002104001100,101124000303110,102022400222030], + 1430321101402002: [114120220214130,100002200001011], + 221021201104200: [101002204212400,102112300201410,100100121043010,102100240231342,101123110330200,100323120143000,110432111241204,114200200002223,112123142010120,101002321032002], + 114402013010200: [112202411101400,100101131200000,100022204104123,1002411322210040,100300114100322,1020102233442023,401040043300200,100400200020001,101044014000144], + 1424411030320212: [110400000002213,102011121102202], + 1002210300010030: [101030001001022,110230231300100,100300121000420,100402431014100,100100001220400,110330200400021,102100020210143,102220324011110,101423100300002,103111300102020], + 1012104102300222: [110203120112002,110000002100100,102221410200012,110213401202110,102300104113403,102213224110010,102300004112300,102420024020120,100040020001022,102141140210200], + 1120240010220301: [110430430003002,104412212102010,114102024123030,110013112004021,100432200033101,101021404000220,103120140210020,114420230000240,110414012023214,100400100010101], + 1431211001002011: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 1042204010041200: [111220202240410,102200020211042,100000034312214,110114002004014,134402411001001,101224110303300,100000144311102,110100200402003,100000104100100,101423034020001], + 113320010103212: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,100020124204330,110200320000000,100001424102041], + 1002204013000001: [101220224012410,103200041200112,1021000041101002,100111420112041,112001100222202,110332221302120,114102222310100,111300014122203], + 103020121110140: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,112042110220004,112203221102231], + 1010013130002112: [110102114204323,111120002100412,100100201043042,110302012103034,110001110001202,110130201011011,101000304212200,102113100230021,100100021013214,110010411223203], + 1141120033111132: [114020100042014,114102010223100,103101000211411,100401100022100,114000002334110,102002104004011,102430144043230,114102004141000,103100130102014,102020024003420], + 1032140004001443: [114100204101002,101101230010000,114100020033022,103112021441120,110401101144000,103124201212022,100002001020202,100422100432000,100021001230011,100114004032103], + 114010010112200: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102312000240002,102012104010301,114123014001020,100004004303030,102001424000000], + 130203020110400: [111021202200011,114110004102301,114023102303000,114421002320003,110200132020200,110001002004240,111010024401332,114010000023421,102202201121140,100010301032022], + 1000024110043020: [102100422004010,100032421040120,101012400343401,100024004210111,102002100222202,100031404302400,114021004100002,111214034100220,102200001122202,100123310031000], + 110112000000012: [101012131000024,102120221022200,114221104114000,100001111032112,114000030020101,112400004020421,112044414003133], + 1240212040010011: [101003214011024,100104400001144,101000301142210,102000244001201,110021424412111,110202002241213,111000200004113,110000012201023,110000011200124,112200210200110], + 121122221223020: [111121100010021,110310034424102,114400202314210,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000], + 1143010112122302: [144131233204044,101001131032132,110400010031401,102220211120002,114112002313010,114014010033321,103441112000230,132042400010214,112030200211020,114402010310222], + 100413240304044: [102102031403230,100041140201301,103021004022022,101001100320224,114000202300004,102114240210220,100100210411410,102100320220140,114011444012010,114104314124011], + 243210203224002: [104111102100000,101021004000000,110000102100212,110130042014110,114423100002212,100011401040040,111121012212042,100001020002400,110012102130100,111000230041031], + 1114340034140000: [101321001000010,101010424210144,102140114001021,100040400100203,102000100210400,100130014300042,114102302311211,114034400040402,102122000212204,100422021002002], + 101302240330010: [101230114202200,100400000020230,100002200103104,114300124030100,100431000032001,100202031002101,102021024004322,100121114230123,102102334000400,114323400212122], + 104201210200400: [102210100313100,114113014000010,101200210302201,102240210240022,114202400003330,111201222220201,114330004003002,100102001040033,112032020220030,102320120240012], + 1011034000324101: [111101010010203,103120101441202,110011000022102,100004104210221,102202410240103,400014404414011,100112004101222,100000010101402,102010414013103,100030001041404], + 1030314030020122: [114032104100141,101213114040141,102210101002412,111140100011101,103220120212134,112001144002010,111103314101000,100012011022000,114140104122430,102021241324040], + 1100103021400240: [100100040423201,102011104010312], + 240000210340240: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 1012100024010200: [112410104010101], + 1100421022313003: [114033120034402,100023221022210,100012204340000,102104010311220,101000404012321,102230022023230,100401214103222,101122001110433,100014200003002,102201041303000], + 222000240210402: [102001444000222,100004204302330,101400134043222,114340312301134,114310242320310,102110021401100,100113201011032,102230000204000,103102044031002,100011421002120], + 101031112401430: [134032420422100,1002131101112211,220200021120010,1020423021001303,100021204230002,410204010302000,320143400144303,1023121121030343], + 1001130023401004: [100104341010424,103221204032410,100004004102410,101104001101000,103142210104020,114400240003003,112203001103411,100212024121000,101224020301202,102202014042012], + 1001003021421040: [111222000001201,110020111332411,110103001241002,103002431420121,111003230041302,100100220114002,100312004100100,101002004000031,114420010000222,110111022044102], + 241200402322112: [110012220442042,100001114303001,100034204311021,101121024024120,103332211400441,103011131430040,112201104011200,110320204424100,114200112330011,100201244122014], + 1201012101002030: [110020010134221,100004020411020,100300321000010,100000421021322,112331012023100,100021010100320,101001030303000,110031210000110,100431024301030,101222321204303], + 321023330430101: [110424002022221,102000140200220,114233210000201,102104231340013,114102220033034,102012001130103,101120000011032,110202000403003,103303041402240,100000121021112], + 300041433021224: [102023120241131,104103101240204,110020110400102,102331024110432,112002311122120,114000104112212,110012112103040,114420000000221,100104204100000,102341204014020], + 130142121223142: [101211210302210,110040004411013,114001242301120,103000100120010,102001024014230,102011000241111,103201011400200,101234000040020,100001421002030,110024100030132], + 113204200200002: [100024000110221,101301014221122,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,103012101410102], + 224340300120224: [102242100200221,102300004024130,100122301022031,110401002222004,100120044232001,110021000110000,111111224130002,110414011000004,101010101140110,100100311200002], + 110020002212200: [101211201202134,103120104030100,102020030220200,110100440400010,110003434410403,111110000014401,100000004130010,101300204230000,114002004100140,112014000233340], + 1120010422020402: [110400011243102,114100120223101,100003214102204,101410044041001,110413131000201,112002221131220,112012002302100,102422214021111,114203002330010,100201120000000], + 222322430033202: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 1022200110100221: [114002202300220,100410300030201,100002024214031,100100324230101,101302314220212,100002044201211,1000122140130010,101020030332421,100004140204041,100010001000001], + 302042000000001: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,100020124204330,110200320000000,100001424102041], + 101230131000240: [101032000323012,101402114042420,104301222102024,102003104011100,110444300101200,102034411440000,102302031100432,110011024414011,100011104344414,101220200040100], + 121000402021000: [100200101000000,103110431441100,102101324130010,100011004340114,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110], + 1431112224210022: [110013202003320,110111032140220,100020010200022,100023101042010,102112310210202,101212402120014,102330010243440,111211010002130,111011002200232,114042044100403], + 104034013100020: [110001420424040,101103210334211,100212001002211,100422000432230,102200121120011,110000002010200,100011241032404,100012001234044,100000314311130,101424344022211], + 1020312100240211: [110320401234434,102122011120240,111400204422011,111000304440121,101000101030201,103020000100001,102134441120002,101020101030224,111023214110122,100002121031042], + 222221000013204: [101120204002140,100000020421013,101020024002022,110120011002420,100100224230014,112002112002220,110012404411012,100012304300004,102340411101202,101011421140423], + 1101200120224324: [102104321001201,100300230420220,102422101111002,110132232013130,114121444120100,100000411231103,133101010002020,101401211100001,101131304022211,100240121420111], + 1014311022312002: [112312122020210,110332000010101,110022331320122,110000030132210,114002004103231,101403030300132,102321021102143,101010011001214,102010020213042,114200004000003], + 1001100121011010: [110001012101334,100011101222101,112020114004303,100001114302424,101222134011002,110021324200010,112113012300242,110343232021004,114131044002441,110040142002100], + 110314420420222: [102002130222022,114024044012100,101410300301303,112202121103032,110200024242141,103024104043404,100244100430040,111111104423410,100404411000022,111001020042314], + 1011240012002220: [102044314000340,100000210100004,122333101001221,103203211411200,110320010100000,110003000143033,110300402020002,111031042202201,103001120004001,113400140100200], + 231100200000223: [103111001422000,102203004042010,111244302220204,100042100102211,101114000332010,112112211102024,114001032300011,100142044103021,114004014011110,102410004024030], + 1132322110031300: [130043000011201,130003114014002,102000102421102,103020211101132,102140120103011,101000000001210], + 112122140012021: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114102330210021,100000020401302], + 240201203012311: [104100012102004,102102011413000,100402431012022,102031024013013,110044020020202,102122410220401,110021232000021,110301322104142,100001140000010,110201434430102], + 244202023222030: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,114112000000100,114001032301013], + 240144010404100: [114011114123044,103042141430211,101033214211000,114142044000010,101221031020331,102101404000000,102300200221021,114322222322000,114100012204104,102003104000032], + 1443013230001214: [101213000012022,100102031010300,111101304103102,110041002130201,102211124110220,102434040203002,100002441003104,110400020101440,102000310223330,100004304100312], + 101042010101400: [102301000220000,100024114340002,110101231300241,110000140132110,102402010221231,100304100140104,100213444314000,104132100010310,100241000440432,110411200400010], + 1140220200432000: [114100022342130,102102211140013,110210020002243,110121220000022,112400434040004,112020104020001,103002044002032,112344021130002,100101020402424,110122020430011], + 130301014011214: [110020000114010,103000200111020,100113204102011,101020014000210,101002330300234,103121120114230,112014100210000,114012200021133,111000402224222,101041204210112], + 1040241000202041: [112224111100141,100132004231230,110302011332024,110200302024000,110021340020022,101010001000320,110210020104031,101003204000300,110003422000141,100210301002021], + 1020014402020002: [110201201211024,111124004101012,100422314300200,114103220220104,102120004001310,101021204000200,112141104020201,101200111020111,110001200422320,111122222240232], + 302102402320024: [112001112002104,113134002412222,102100311320110,101000041142321,110430002112002,102240030230010,110242024430440,111003212230033,101112331110410,111210000000110], + 112302010204202: [100004124101032,111220012220011,114020034010120,100110224334101,111100214100000,102000211103003,111100110010000,110000400003000,102213000202400,110002031210002], + 1030010300231000: [100000200202012,114404010003320,112114324040000,100141011011032,100010021034000,103132004002020,100000241000002,100000401002031,102001204001021,114300104032040], + 1010411001042304: [110011121230332,110000000441321,104120412100032,102201000240304,101042000320420,102010021101132,102102014001104,100222401210112,110010011210002,111101210030022], + 1200124100113300: [100200101000000,103110431441100,102101324130010,100011004340114,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110], + 133440111042412: [100003030003020,110410000104042,100000040413000,100001034310012,102030414003000,101342020314000,121310232003222,110011300143002,100220021000033,102112104004041], + 1410133102241100: [102142012001000,101100120330110,102300120220103,114141302341111,112023210242031,102042301121010,110003204210204,100022120412101,101002014013300,102100030222104], + 121232241110210: [102020014002221,112031204004111,111201110000033,102130311120003], + 1003321100030102: [102120012001031,100400004303004,110002022030224,110430320104000,110020221320103,110121111202231,100000104342200,110012001214430,110004431040201,113204011001300], + 111012002140201: [110210221300113,110304014433122,100002330412031,114020042302142,113420011011140,100031010010121,102012021100024,111141012240014,102203044043244,111011424110303], + 121100300123204: [114200212322001,100401210020002,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101,110431022023040], + 122010000000110: [114202012340131,110322034430002,102323131001211,112023102003010,101010104011313,102130040230200,102000002041020,100320021000000,102034100223241,102020014021021], + 102100202403201: [112002110220340,114040210021100,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,110020200001031,100034021034000,100022344101140], + 103043300000220: [112130302013041,100120404230120,112400002023000,101002020300041,102032011100011,102102010214403,101200401023040,114000000004100,100000004344102,112232012030204], + 1040304110100010: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,100132004231230,111200122222334,102301024113440,100033230420102], + 120302010314303: [114400214140002,114020014110120,102142030224211,101000034000220,114024022241001,114102140221100,111342314121314,110000121300012,102112411342231,101033100302011], + 1012100000040144: [104121412100011,100404141014102,101211011001002,103042024000034,100042024100140,110210012030400,102011200213421,100001001020031,101000200340030,100001300102213], + 1240201430003220: [110441234224400,114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,110013122130200,111403100030130,114020204102020,103121221400012], + 1424001222003120: [111030212113431,102001111011201,110044320441241,102233034000002,110410122010102,101122404022022,110311110410340,112101202012010,114240004000000,102300104110220], + 1124011212044223: [102100041341201,110112301300041,111041004112110,110230002230040,103201320100230,103021101220320,120000211034230,100010301002132,110100220011244,111242022222024], + 1423010404140300: [103100044030033,102103410200411,100031401222220,100041440102144,101044020301020,101210001032303,100001101033020,101024410341204,110000314214002,110000440122004], + 1010304002210442: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 100140210044040: [102211230244321,112121214040022,100004004100120,100041014210020,114204120210000,114110030002020,100000030100102,101012400320002,112002100233204,103303001400240], + 1020010002221130: [100003034314200,103300040140032,102104211001200,103300001404011,100240401003203,102000004000204,101403240303041,100002101231220,102040424014311,114240044002001], + 1434420100140024: [101002011001110,114230014000002,110043034212101,114442140003011,101200034044124,102110040230322,100213100410301,100221210412004,101434041013000,112030101121104], + 1243201040030024: [114004024102031,112112210420223,100200340434210,100403010022023,112424034013320,114420212200003,100103401200000,100121201220101,114023322303100], + 113040300032214: [111004302114011,113000200131401,100010410101220,130000311440400,101201440002012,102040031411210,102014004000221,133001230020010,114200140212014,133000000000110], + 1121223001014030: [114032234033303,102320000221020,110102022000200,112431104040041,103123200222442,101403334040004,100003120410040,101040334212110,100131000400012,110100122143001], + 1010020013402110: [102010202004402,111130312211003,103224041400220,110022201100020,102104244000010,100141214304000,101430001012430,100011204100020,101001010300404,103340004020422], + 1020120022311000: [100100204330310,110112214200023,101004204212040,103104404000040,100444021001102,100122110401300,102131341023330,102141220232030,114041114012140,111201200004040], + 1020031102111103: [100422314300200,102141410230020,101134224001001,110020001224021,111122222240232,103300234023033,102340004011311,111134002210042,100013014300034,104132120011021], + 132010000033010: [102420300202421,102431104021200,102002001130001,102404000230201,114100004121100,114002004114040,112134220420402,102142100210120,101023221003021,100000311024240], + 102100013041141: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 103012110001011: [112112402304310,114430104142400,100011040420210,100220121003120,102212021120100,114021034021244,101041200344232,100002000120011,110003042002123,101104004000220], + 130331000240020: [101400100302311,102141000230040,110030024202101,110100224200101,101122201021010,114000102300220,111011022203010,103021424001214,101230000301220,100132444234001], + 113330320102211: [103412204020401,100014410420202,102100111411342,103223201411202,100202220031040,101013100320400,111110002240312,100413000020041,111102300012024,114023204100010], + 1001000031112000: [110000101304203,110010022003021,101121021020012,110033002000020,101200200300020,100420010030240,100000410000211,100002204201200,101000000322141,100011020000203], + 1011004040001111: [110230000000002,110220301202400,100004414101224,101003140322000,110401001002400,103012000100400,114201142324042,100401424300314,102213401111223,100040120000031], + 101030002100201: [102023104002000,110230010000000,111114010020011,100011014101313,102011114000320,100001204302200,100310111001140,102100101140030,103120334003000,100000004204201], + 302200400401202: [100400002201113,102420424042020,102111024000402,102001011100100,100100000422320,102100012002000,114221030000011,101320224220103,114400202310013,101302131002410], + 1021004130422012: [100012134302230,102012110232021,103300201400340,102002230200001,102404341113402,100020000100311,101444031100130,114404214140114,114400032310444,100120031042012], + 204301012201031: [110004110141201,110413004244000,103200124032221,101220141010040,101020024000200,112210210200000,114112022340200,112033012312000,111230202223302,112102022012400], + 1204212142000240: [110040102001121,110200321303322,100010030100011,114032024012040,102012124012120,103002041402004,102103030210003,114120034123300,103010011401200,103013224034023], + 1112000000230043: [103042000102130,114024042300042,102101100314230], + 132010120104300: [100240000140032,110001202003004,400013004332041,100400204302004,102114101444001,100022121031020,102141010230201,100020210101002,100042420003120,102300220220432], + 1002441120400010: [102321104111003,112441402014033,112100022300110,101123210321002,101003010340102,100022024212302,114104002204400,102004221132241,100010000002102,110001010130320], + 100440122002221: [110222020012300,101230004040022,114244120001041,101021020324310,102120111142201,110102322040111,110010220000210,114010304010030,114021000044211,102140001402011], + 1000440230002240: [114014112300100,114030034013101,100000044204004,101013004001421,103000014011004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414], + 131312020420222: [100020004313034,101400120320033,110430030000041,102140411342420,102020004000301,114114204001401,101042214000121,102000121102220,100014300000200,100210130430132], + 130222024001011: [102300241002244,110001131312220,100003420012212,100002210401034,100011000002042,110003302002201,111033020040220,101013011030413,110010032000411,102031104022213], + 100012030030122: [104100012102004,110030002000422,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110021232000021,100001140000010], + 1432102004011421: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1100402030110040: [101233341022410,100020001041202,103301014031303,110111020032031,111004004112000,111011002200001,104000131220103,100001002213422,102004100220202,100003000004420], + 200040031000002: [100000101040120,101022344002202,114313044003041,102011101320031,102013000200442,114024222212420,102234010200304,101220020300041,102141010210030,102440011400244], + 124400001230204: [103000224004103,103330201404321,101110144024221,102110201342010,100400042200210,111100212111142,110002002100242,101100000331000,110223111304101,102011310220424], + 1021022100204004: [114023002202030,100032024201210,144442110010421,132000024420100,130013324120310,100400000024411,124131120303003,103100111422330,111031200120202,120000221031424], + 120111110303321: [102100441341013,101440004042202,114201000004122,102201024041200,100100204101010,101223301020130,103312401404300,111141312211004,100341044310403,114002134022331], + 104313042102040: [103000140141214,102422021113012,101010020320410,114020204101200,102304021004012,112302412022221,101021321034010,100140014100401,103120021441003,110001120421122], + 320200022421000: [102300100242401,102010004001300,111223042243230,101121004002140,101221121020302,110000124410003,100000030022004,101032341110042,101202010310030,110014132000230], + 110400400400420: [103400104001022,100003220413213,110021010021210,100111114030020,114331000001140,112300001132401,112102300201100,110310130104000,110020331031031,111011012201202], + 1010110212130144: [110002022002032,110000242002021,110042130002002,101010000324423,102421340201120,100002204300121,110402332010103,112400242014010,112410000203032,111430002210013], + 1000000431002002: [104132340011314,102203304123030,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441], + 102010021010121: [110332102020012,114103204102140,103122001441103,103141214004200,114001242301120,114002144122110,114000430020024,101104301103200,103100101424001,114222404114003], + 214104000223132: [110102042010220,101020124000413,111210000001101,114013400011030,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011,114330432320002], + 100340204312000: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100,114402104142102], + 1011221130141212: [100021311233000,110020200420132,103111104030033,104100031240003,102300024110101,111010204111010,111200302222011,100113144300434,100010010004402,102021310220414], + 204440100100000: [110001022102002,101020200320000,100000001210103,112240024014421,100202141010030,102130141120221,110103202122103,100000210112011,102041320202034,100033224204041], + 1402003440004012: [100300110110121,102002322010030,100321101000003,102121041101300], + 1000401044124300: [103002100100101,110000402000040,100240240430022,114022300002101,102323131000021,110300124420043,102101000211104,110122000132404,110021422000440,102201400231110], + 100041004211101: [100010211233410,110302140014102,100412210430000,101320131002020,101441040302130,102000241101101,101012121114000,111000120042010,102220030230000,111001022111004], + 230102321400013: [101121211101004,101114101012020,101001304001101,102002112041034,102041111020030,110022001201023,100000040001141,103101124003110,112401144042000,110002001231100], + 130301024000200: [103120101441202,101002121003112,100030211040004,101201021022111,100014001040120,102122002000222,100032011020003,101441104023001,114100004000000,101102121104010], + 1111410010002020: [100103104302044,102020004000014,100400001001300,102000220220104,102003321120000,114202044111100,102102044001132,100020221030411,114000144010000,100010100201100], + 1412113402123230: [110241142024233,110441140102024,101001421031220,100413311002132,110210301200101,110400241240242,102200001002100,102210101121104,114443304123123,110023102103200], + 120024241020242: [100422040021304,111111000014001,100021320123031,100014041042003,114033400011210,100002010413410,102010221132220,103100204000400,101433010300204,102114321401000], + 102103230130302: [114142204123102,101002001002143,100012000002410,110200234210233,102000024010442,110023122133011,100401400012420,112111304020020,100002110422103,100233334220102], + 1030032004100202: [111104004400200,114002102301424,112222002031003,103141324004100,100020004200210,114121104000220,100011004201102,100234120400143,102300010241302,114121012340403], + 1043322302140232: [100002021021021,102200000200300,100023104101340,100000101040020,100110040013320,100000021030412,114023012303230,110021212132303,100003340410121,112442220201020], + 1010140300231000: [104100002100221,104310001300102,102000321102310,101200011020000,112000044002102,114021132202032,102134044134410,111300220000230,114110032343001,100110101040020], + 1420011211022221: [103034031400131,114002114012041,103322000112244,111123412214002,114200220003001,100043121024120,100001011022100,100240110002411,103410000104330,100104104302020], + 120210100002032: [102010124012100,114022212300211,114000002334110,114102004141000,102000111101030,101003011000111,101102204023404,100440100030210,114200340003213,101200000300200], + 111102022114004: [103012034041202,100100204100022,103130031241103,103234031200401,114011320024214,100233001000010,110322311300120,100204431000210,103340404020014,112100204000103], + 123410011231102: [110243201202110,101134001041000,102011031132204,102102010314022,101220404040140,103023101411020,111120010020204,111020144114102,100101001204002,114101200003010], + 1011000000421200: [101134030011000,112000244001222,114441114123013,103220211421421,114000012334102,101000014012442,100301311003043,110112441222211,110040022122412,110430014221230], + 214101120020031: [101012324214020,100000004214210,100120010020214,103411120100301,102110211441000,102100120311400,100103301022000,103000331422023,102020442002001,102021004010203], + 110202022021301: [114010200040441,100000344100100,111304022202211,102302011002003,100012441030002,110222042022111,101022114003000,112011004022010,114024210021201,100013001041311], + 203021043322003: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,110212214400114,110012101102100,102102304001200,100010040001210,102002020220000], + 104030031111400: [101022040322021,102042100242012,110201310010120,102100201400021,101113031012041,110030441223002,100420011010004,114413012313200,111234024134400,102011011131431], + 1012002001002010: [114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,100402431012022,111403100030130,103121221400012,102022400211311,110030400004330], + 241242113121020: [100132024030302,121310400440314,120100331332002,111042430000132,101100311144441,132303424001013,123320003100311,111002002142200,110302002000113,110220301300022], + 1001134002000020: [101221004042212,100303111000101,102011101321222,100010001023120,102002101120132,100202000430000,103101041210203,110400040000210,110020401212010,101230420300200], + 1020213030213142: [1020110422203030,112002010100420], + 102444101021303: [102200041120220,100100001041204,100002001024002,114002100040223,114101002200223,102430001400101,103210140100004,110021041330000,114021404100022,111030004402002], + 1120000112021101: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110022100044100,110003000024101,100010024302100,100000011020412,102022400210202], + 1100101241403014: [101112104200011,103032221421243,100120004300002,110302010102310], + 1113302000421110: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,101244324043222,112102232300222], + 311012232124143: [102000004002101,110202000000310,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,102321234111310,112100000200031], + 1423322311404140: [103324024030212,111022412140224,114110004121301,100212034221414,100222100402024,112002220220002,100121301023030,100020224310403,110000130020003,100014000022201], + 1012404420212140: [110000101304203,104121412100011,100404141014102,103042024000034,101401001010021,101200200300020,110210012030400,102011200213421,100000001020100,101113024200231], + 1041344000001000: [110203120112002,110000002100100,102103034004032,111100014404020,102300104113403,100200001000210,103230041400313,111210124134403,102141140210200,100012010410000], + 1240000021202013: [100221424320111,100203104322011,100021101021200,103240321400010,102010134012140,101204211020322,111102002240013,100011411040002,101002114000002,114010000020004], + 121140110041321: [103241104032021,100020114101410,111221222223134,404220140010113,1244000013132404,422002310200202,210111004010010,304130030001002,104112143430303,1200041011320103], + 1012243022422200: [110021310040113,110301331234001,114403020002032,100400110020001,102120104000032,112402234044121,101020121032021,112202240410200,103110201240222,112112220204023], + 101201122213014: [111101034100200,102001140221330,114221122320002,110000100442023,103300101403322,102201111110002,101103021102240,100211001000020,111202102223103,110000100131010], + 1123230221423321: [101010201030113,102401004043011,114012012300010,102223134010120,103020440120000,100302000140001,100241224311010,103000200122014,111302120011012,102013220201100], + 141400200000302: [112011014020221,100112101011130,103000204010112,112310022020213,103430100132341], + 1410200022242110: [103044010120003,110142020400012,100142011022211,114230344103210,100000001021041,101000401032212,101303414220001,103133031440020,100110021040020,102110421342414], + 122014121302022: [102100010233022,102120400212001,114313022302101,114021002302020,102313204114304,112100102300200,103001324000110,100002014200021,102300401001010,103212320212011], + 100140000110010: [102102000213403,102334000243030,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,102100040220330,101002424214013,100012101022110], + 1002204031202013: [103111001422000,111244302220204,100042100102211,102110030200120,100202140000111,101114000332010,112112211102024,114001032300011,100142044103021,114004014011110], + 210120012302100: [112000012000402,101200020300410,100110224304220,102330211001002,103020134004314,110131211140311,102342202000410,102212141112000,100023020200332,103002004000013], + 110100132220102: [100440031001120,102020200223310,100020001041410,103220011420242,102032012000101,114014112302234,101004201001232,112102102302000,102141231343401,101231104200000], + 1000101200300222: [110420140032102,102013130223020,110002002002112,110202120004000,100041204331000,114012032240012,110222120103200,114000444100400,100000200003102,101001424014301], + 1000004020020200: [111004020011212,111142104402301,111022004112043,100121204030012,102000421444300,103100020121314,110033001204200,103020404010202,114210344100320,111330002203100], + 131103000432010: [100042304102210,112202000411103,112132434020310,101040100302002,100013030100002,103340114022112,100310034310200,101014014000004,114003022300020,114001000010010], + 111200143020101: [110102401201204,102200130202201,102414034040100,100212030414010,100412200002013,102020041321410,102301324112020,111340300010010,100100001010314,100120421044222], + 1110312010121312: [102000034011002,103204000110000,100001014340021,102103001340022,112032000211000,110032020020001,100002110000131,114100102202223,102331221102213,110214012030140], + 103142444003120: [101221311022241,102110001142401,102041100200402,100101200403200,112100404000230,114012020030004,114100124100130,110400112021140,103001304002001,102110020310200], + 120410020211102: [102121240200000,101212040303123,100011221032200,112401042010001,101130314020142,100000040101003,101422210301101,102321001000013,110010102002030,100000104102100], + 202040010121000: [102114000202302,101030201111010,111000004122204,102120411023000,102201110212212,103100001420200,110402031313432,102020214011010,100000121020141,102031104021120], + 221100233014010: [102301410242130,102122020202000,114100424003212,102203402022100,103221104003202,100122321001241,110100304220012,110420004222410,101404301110014,102220012001030], + 120420422412040: [101000004210020,102210314111120,100032300010000,114140404123402,100010300414000,114132302200001,100013004300240,102403234023010,114011414102023,100002220120003], + 124210130240000: [101011411020120,114201232330041,101000010201420,1320010021102402,201200032021040,142321203003111,100040011432042,401000020221031,1440003320032101,100201001100200], + 1412041020034402: [103134014000340,104103100010141,111101222240010,100040210411102,100110004102034,114112020212203,102040140220220,114010400014304,114300132321233,110000140032001], + 313321202002420: [101012034000001,110200220001104,101100404022042,112001112001040,102120004000102,111010112200231,111101304104023], + 100101010340100: [110241024242442,110444010032242,112220001100200,114014130041210,104132420010010,100001041031013,114212102310100,110300112023012,110224200113042,103203404020010], + 212000020100200: [111112002210022,103222004002001,100003421042112,114240004110231,102024021130010,103200224020100,103013024002104,112012010230002], + 122100210103004: [103321411401411,100042010200121,101000010300200,101022220302103,111010200000412,110004442003322,110400141001003,100004300100000,100400110022101,112010000243420], + 122042112211230: [100422000031421,110302040102004,102220021120430,111341300012200,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401,100040021031201], + 1124210402210131: [100244104101010,102032204002001,100200011002201,100211310140340,114004012302010,102340400242003,103101024001202,110433104224034,102041421100240,112200000410000], + 104000031230221: [110000402130200,110210002110430,103024004010134,110102204202001,100141101040123,110422420030000,110004102001020,110040002032114,100120414100102,102404224041131], + 130001012010402: [100443120030100,114400012310301,103032411100001,114330422320020,114104002340200,102034001134041,102100030222020,100030414200111,112210110200200,100032001042221], + 201102100322400: [102141212000200,101203121020430,114144014122041,100022001040322,100000130010033,110020030024004,102324000240024,103020014040000,102312301104422,102220000200014], + 1010200202311132: [114002104014300,102000311102212,102303010241010,102010004040000,102230130203001,102021401324232,112433112020200,101004410311232,101201034010420,111220410010144], + 100240030003133: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 140003220121202: [102102000213403,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,101002424214013,100012101022110,100400222200110,114011112202020], + 110010013000044: [102203102002140,100033103342212,134101404212003,104022100000144,104203010031022,101020401301300,230120100011341,103012001430410,103012001410200,103030010103403], + 1021144240004201: [110001010021422,111101302241011,102321321100021,110003020000014,100122121004244,110000012000421,101001104011010,100304201000400,100230111200001,101410020300220], + 1410010302202024: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 104412003123341: [100000001220044,101321001000010,102140114001021,100040400100203,102410111110002,102000100210400,114102302311211,114034400040402,102122000212204,100422021002002], + 1041100200210222: [102320130240202,110140042002031,111001024132202,110010132030102,110012000002021,110223102022103,110120100000300,111013244111024], + 110041103423012: [114313304002310,102004110223232,112204010411101,103202404003021,114010044120122,110040022200130], + 132312142222421: [101133114022040,110210004434230,111100132241003,110100000020000,101134414020201,114101042202201,111424224422011,102301340200323,101000004210142,101340020341021], + 1011211210000220: [110021010040000,112201310202402,102040041132401,114200002320001,100011101000012,101303224221230,114030102300322,114402000003230,103000001404102,102113021343210], + 201221042400021: [110130321300301,102240200242002,101000411030013,102110312004000,103012004020122,100313041004240,101322310313010,100000000410101,114403020000214,101014020310002], + 112020104020410: [110232022123020,100002004303100,110130010102101,100010240101221,111000122201420,102100010213413,101024011034002,102000041101100,100042004301301,100012021031014], + 104102022100000: [100011001021002,110000141012003,110112301300000,101040100004242,100003000100210,110000040041001,104002100004121,102443320233202,102402001113222,101000021032102], + 104120000241311: [110100120400020,114030000030012,114231032340010,100000010202201,100111404302321,100012024210210,112020021120403,101010304211420,101040240320200,111140214103110], + 104201011140420: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 301100000100031: [102040431121110,100400002201113,114111100021420,112024212301420,100300310140241,100240134323001,102111024000402,114321002320001,102042000222002,102001011100100], + 1110203002103010: [112000302000201,103013140100312,100000424301231,111101404104101,102133114020301,100234124224203,110032224202331,100100030024102,100044010000141,112043200240400], + 104001300221024: [110213100122010,101212101023221,110213001300231,112120222020002,102130100222100,110200204432001,102020411123201,103024041421002,102200034042002,102030004010204], + 1244220041140201: [100021400101221,102241341113010,102300020241001,114100124100413,101001114012114,101141400302200,100002044101122,103342424024214,100100021040420,112002242001002], + 120100402100213: [102203304123030,101000040320021,114002210021300,103230114000201,101401300300011,100021124203441,114121002310010,102042210202230,103141131420000,114014002300100], + 102000023010202: [101011321003202,102000031133000,102101401342211,112300210210310,100122300411032,110044121211040,101403020301000,101023244041002,100001104100201,110120001141121], + 1134022230020400: [110210020002243,112020104020001,103002044002032,112344021130002,100101020402424,110122020430011,102021214002010,112211120202000,114211040011201,114141044004031], + 112110300130010: [110201124221001,100041204331000,100032114314114,114012032240012,110222120103200,101100234021102,110143020121321,110130020003201,112100210200401,101010001002200], + 1401134010200300: [103000004002012,100002011042020,100301421002002,100202140000111,102010200221000,103104200210410,112000002000420,100240101000030,102012401001012,102302211002004], + 1000000020011202: [100010241020042,110301222101042,112000303004042,110113014221020,112003204004010,101202024013411,101100401103020,101432320330300,100430304100000,103440004000121], + 1434102040002221: [110000021202100,100420014301410,100010101020403,110302030011010,114230412332011,100001211042341,100020111001344,101004024210301,114021004020043,102302001002104], + 1102002014001000: [102302340241312,100410410002011,102101224002210,110311232120010,122203322100011,114141142204022,102010010220014,110330022021224,100410311001021,110123442011041], + 1010131121142400: [110130302012020,102000100222110,100000211021004,102411134020204,114032200030021,102000000224012,110210120000001,101000120303020,102000001133312,102202220200320], + 200134100012443: [112324002020202,100322100143040,101401140300101,101242000300000,100030124210101,102303320221102,114203224111020,100140304103400,100020210021010,102012134000123], + 131202401030111: [100421221000240,100210201004400,102100302004202,102000034041230,102110100200220,112012132300102,102301001101100,101020144210420,114100002312000,101122224003222], + 1020200410234034: [103020401400041,101011210314200,101211411020304,102314311100010,110042042002231,100400142200202,102110021342220,101000321141220,101300324222000,100222300001000], + 220021130044301: [101144221103220,100240240103113,102100220311002,110040300120130,101000011033200,111031104402020,101230120301104,112400212013204,100340001000022,100002030422001], + 120101001111203: [110001334214240], + 102100114020110: [114301022320021,103344200113430,114101104102004,103030404010000,112100102012303,303020404011031,102012044013241,110020202100303,110012010122100,100101004232101], + 222200400140031: [100003420100302,110210010000210,101200210302120,100200000431211,110300112103240,110102012000210,101320400314000,100201304121202,112400004020024,101004011110001], + 121333200101010: [102100321320100,102102011414242,100041004100221,100034004211240,100000000412112,110000010033022,102330040242220,102140121410131,102310400240000,101201340300430], + 1030102204103011: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1101242040310021: [431102031002020,111010234400002,110422420030000,110004102001020,100000340000030,110040002032114,102404224041131,111020022204020,110002310002020,102010222001321], + 323030021340442: [110020402002300,110201012032242,102011001134111,110310100011310,114102034001211,102022020202210,100314111000314,102311011001213,103222004034100,102002101100313], + 211144400200002: [102420044040023,110410202122004,101004204040210,102332331001100,114022014010344,100120404300300,100021104314210,111023304123001,103000001400001,102400021111004], + 1123121021003330: [101220014012231,100104024303320,114422004110130,101010311003410,112210132031001,102010310213001,114021114023402,103422430124013,114242312322020,102021221120401], + 114110030140411: [1302101004142102,1043303323011400,1002000010441103,1122204031101014,140011220320300,114200022340011,1003033202212100,214301004122000,1020002000321320,1140332400310103], + 1003210022241402: [102203101120000,100031200410420,110034022104420,112013001120433,101021000314120,112104000200322,102103200210010,100022101040044,100024000102402,110043301220422], + 1440413001212002: [102304130242220,110234010110023,114020400022001,100020034302021,103001001424322,102002221100222,100124030401241,102101044001201,114123100221401,101411301011220], + 1112421134002320: [112203002024001,114020022210340,110200100112424,111233002220320,114202100000010,110402001004440,102030014013002,111001022111004,102211231100243,100341201000300], + 130421000200001: [110011200022210,1320004203402400,140000221300023,100211120430001,400100441040022,1302200002412211,134100011032002,1023200041003410,100103030400110,1001221320011301], + 120000434000000: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 102040000020041: [104244002023000,114012412200022,110000110000231,100142041012023,110000000411120,101301030313022,111440222100012,100420111002101,102032130242000,102120001340042], + 1013140022402012: [100121230031032,112000431120410,100122200012014,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,102313204114304,100013200100011], + 141420312200240: [100021204100204,110211020000002,103002034034022,111230214102412,111433044442220,101000004013020,111022120023311,110041341300041,101013320300001,114102314000101], + 214041010200400: [100301224310100,103002104012101,114021000012031,100012324202240,110003410100312,122000430101030,114000022300301,100311000141022,114000000021100,114210202322020], + 121031103201130: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 112010400120024: [100000210000202,101043224001442,100021100001301,101001004002100,110300214430000,111022002234444,110002001220310,103204144020011,120202001100101,102101224000230], + 1043200020041140: [110020001310000,100310201003000,110412121110214,110142300120000,112013212032000,112010220224003,112001040231401,100200001001300,100012104313201,100002201032401], + 1030042232041220: [110130110032003,102022120211140,101240404044200,101412040300434,110412041340022,110012241310243,114123302313020,100302010140002,101002034212140,103001000113103], + 130024304042204: [100040401020114,114202400210000,114011012304232,100043111020130,112001201110014,110213300002210,102402200200000,110120200000200,114103040222002,101020124210122], + 230420100204041: [110413340401411,101230031023011,103210200213211,100210110002020,100400040020030,114021140030212,101200101022022,111100132110002,101430334021100,113111420100023], + 101004021201121: [102001204003131,102101041340032,103010110120332,100012020204300,100001104301010,102320110243020,101002020304011,102432314021013,114001400022003,104010000000320], + 1031000200020223: [104204010044121,112014200224221,101003110320100], + 1041100023130321: [114103402201140,101313004232122,100001004301400,102111420210110,102104131414203,102000204001042,101231220300123,101020020340421,114100232202021,100001040123200], + 200103142204220: [102111000202241,103232220103211,103202404031100,102022004010004,100202204222000,101201114044200,110422420000022,101412010300001,110040304210001,101002104042030], + 201332221010311: [112024442000120,100100320100331,100010021042030], + 100000003041333: [103322030141022,111000204110022,100140040411202,114301002300221,112033130224021,103211001413304,101000334001322,101022234003121,114202200012032,100003111002443], + 123102202000000: [110401112220304,101000001110010,102003214004242,102300001002032,101014211003211,112021340220023,102030004000210,102023030221340,100020114102022,111000004400230], + 113031021300300: [102202004042024,110140001010224,100200021000412,110002131200133,110330000400112,100000004300000,110000000130104,110103041012020,110112401320042,111233314101101], + 1020300000000322: [101011000322203,101012130310043,114102344121242,100001410411142,111432404442442,114421102322111,103224324020100,110241022112013,102110010230101,103002341221402], + 1114020234140010: [100030220100110,100002114314022,102000100200100,102020400244030,103112100101020,114402102312001,110001102103432,112033300230131,110102002011031,110032402130011], + 100240320014403: [102100221340112,100003414100400,100114104101001,114002244103320,101023221000031,102012034000402,114221004002212,102100122002001,101000011021414,102102201121020], + 320002212410003: [103102041440324,112110032304211,110042234410000,102424111401024,110020004203230,110010042000123,101100240320232,102110024004002,111000102230321,101322100311212], + 1000242240111412: [102020220224000,100421000012113,110200020000000,112030332302201,103040014004200,101010004000412,101000310322011,103220011413012,110421402223342,102044021103423], + 221043011013422: [101002201021102,110140102142200,100011221020231,100404002200222,102130141411003,112020101110224,102004000201030,100033204201121,101000141004421,112140234024202], + 1022300421000102: [103340041403223,100000221020014,102003224000022,100010031222001,103001114001210,100024311220202,110043222124300,100100420400004,102023001320134,100024104312140], + 1014000302230231: [102040431121110,101221020040220,114111100021420,102212000200124,100300310140241,100103104302044,101041030320401,102141212000200,102042000222002,101203121020430], + 1002424011211100: [103134014000340,101440004041120,100040210411102,101031214000041,100110004102034,114112020212203,114302020003041,102110014030002,114300132321233,110000140032001], + 110004403100124: [110033100114102,114330004030120,102410101111403,102310140211101,110030000021420,110221002022122,111120144101403,100024221230411,110230000002421,100020020003311], + 200210010121103: [100000020001023,111144042240304,102400021401101,102141201342300,114120424122030,101014000322121,100220121001003,110000104414200,100002001020024,100020110412022], + 211001033004401: [102001404012100,1010400230221020,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311], + 304220041042221: [100021004310222,112220322030220,110313312021120,100220214333200,110330234422000,111000034110311,102000024010002,100202000433120,103302020111204,114113020221100], + 1000011301004101: [100021204100204,110211020000002,111230214102412,100113410410320,111201442222420,114012000022010,110041341300041,111022120023311,114222440003300,114110420031102], + 101221403440431: [114302442300121,100403100013110], + 202220440443232: [114042304100001,101211240301300,114203134112000,102000000221441,100130124030404,101401321012030,111402100030002,114040114100221,102300131102042,101021121112112], + 1010200240400200: [110004301222000,110221000111302,103100104000121,110024140142000,102011440201423,100321001001010,110321302022203,100002204310140,110110210011002,110221322123012], + 223203421020012: [100000430122100,101200100304010,100102000022402,100000001033001,101202404042303,100121231021002,102020200220310,100124100031200,101010200321022,102000231122032], + 220200100013402: [100101201003011,103101000121031,102200300234001,110022002200032,114200034113002,102140041411342,114214012341203,101040204010120,101004004031120,101042221020020], + 1110314100003120: [102442211414022,110122001010214,102101204000010,111231012220013,110022300420031,114230230000123,100101220101011,110000141123103,100222024320003,103323001400013], + 1422024000012004: [101042104010000,114000122301411,102111002001230,111102010020434,110410000002004,100414231011020,114243204113000,103130004003141,102323210243022,100400220002400], + 1020000023010431: [110201001212001,110200134240420,110403221000002,101201304200320,112002320212232,100002210413202,103140021401211,114002212210110,100020200104120,100101140102400], + 1101410102402310: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102312000240002,102012104010301,114123014001020,100004004303030,102001424000000], + 1022123103202022: [114024422210000,101040310304013,110300000100000,110000400022241,102121211340110,100002021002100,102200000201020,114403200002401,114204210002002,100044241020200], + 1240204000404100: [101002434000030,110304000102201,101012410340104,110401340400011,101210031020103,110210020000000,110110010001234,102310001001131,111012044400414,114330204030213], + 310100312242222: [100010021002314,103100111424040,103210001410031,103002221400000,102022030241032,100001101030430,103001010101001,110220000113011,111030014120004,111020142144200], + 1010042040432302: [100000001220044,101321001000010,102140114001021,100040400100203,102410111110002,102000100210400,114102302311211,114034400040402,102122000212204,100422021002002], + 1000020041000003: [114002032301210,100232404222422,112000201123012,103312024011004,114330302322210,102311020240221,100023141220100,101211204013302,110014004411404,100010124300001], + 1003210214000341: [103044010120003,100142011022211,101000401032212,103133031440020,100110021040020,102300121000004,114000242303001,102021111411014,103003101400121,114210002324000], + 101000020002010: [102024001120110,102100042002040,101203144040034,114000400012111,110230402031010,112000112003121,111420004443424,102211001100222,101020411114000,114142020220122], + 302021402031203: [100032024201210,100013401040442,103012134011120,100031030004303,100000010413400,100101132014001,100402230022321,112000433232220,111031200120202,120000221031424], + 104202020010222: [111133110023322,100400024103122,101024401112120,101001440303020,103002224002043,110140141201202,112012030233024,114201004001120,101141004004210,100201034224100], + 1020001101204040: [110001041213031,102300324010203,102100142002204,100030020011022,102040011121100,111202012222402,111322234130000,102040041320010,102402104022000,110104002010100], + 1131110444001010: [103001001400034,100121021040101,100000220100300,101014000340100,114110002344030,110140001222103,100002131030310,100242221000000,114010310044021,101100010302424], + 1130222304201220: [100102004100201,114040204014042,111230032242001,101221031020331,102324031000000,103230004030322,102102001341000,112021022003301,114024104032203,101220004012040], + 111000002001120: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 101014121202200: [110132141121031,112101020422004,111223110004240,102030140000022,102012210222441,110201031111320,100000224100002,103002001430230,102032021100000,110403031140001], + 1010010041040014: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 130000214020102: [110020100042220,102123000230200,114200302320443,100401111000221,103302010140122,100010001001122,104240202023232,114000022210140,103100420210210,102132004132023], + 1010400101301001: [100012320001320,102000331120104,110203111111000,102323204112320,100420404320101,110420220003321,112401014040034,110021200002102,112000001112010,100402130013100], + 332000324400011: [102120010220042,110103312142034,102210210312302,101120100320100,114140014100000,102110004002301,112022100213011,100101231202322,111210020001013,111300142204300], + 200211104401120: [102111000202241,103202404031100,110043132100220,100040424310002,110000314202042,112421024013100,100402002200010,112234224002101], + 1030100100203131: [101012400343401,102002100222202,101000410321210,102140021410400,102001041100103,102202334040220,101001100320224,114021004100002,101300201001300,100123310031000], + 1000130022310001: [102101240210242,100210120430000,114242114030210,111223420000020,111000324414403,114303400002424,112030302000110,101033114001203,102121114002014,100102221200100], + 1101010033020000: [102304420211002,114112132313033,100220000432400,110100104220021,110000314200200,102240212002402,110101122013034,100030124100010,101100020301004,103120011241010], + 1001002000301024: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102221010201113,111012030022123,110031424214112], + 124020101222123: [101212040011001,110201344402000,102312010211010,112312201131301,111110223004100,110020212130021,100120041224204,112410012010024,103004024040430,100212011200123], + 1102042133010202: [114400034122341,100001101023021,112021201120101,100001000012021,114002004033124,101000104002203,102010231120312,102101104000212,111120010020104,102100230210011], + 110402133220242: [100142004031412,111031100022230,103010100101110,101102210330301,100020141040100,112241024013010,110110240001000,100002020112431,110320020011000,103441130124021], + 100100110421102: [112324002020202,100030124210101,100011224100020,114203224111020,110104100401324,102140201410013,103010011434004,112132012010003,101012421033020,100020101001010], + 1030112042004000: [110233022033303,110103000003010,111110202244311,101010021142414,100040024300430,100122341022200,114102002341430,113400321012204,110420222224222,100000004311204], + 104220121000000: [114230310212200,111242000003000,112003020221100], + 1124012222041000: [100440024301100,102022200220022,102042031102112,102410111110002,100101041040330,112122334022424,102122000212204,100422021002002,103341124011404,114010214101003], + 110102200430020: [101010034002013,110001111011031,110021304203102,110001440041003,100203011004130,100114104000040,112401000200040,110010411100002,101201030303200,110101021201003], + 1404032012022301: [101044214042221,110010114210202,102141000313022,112401010202200,110024010120300,101122001110002,114102002340031,100042201033001,102200011300300,100122101200000], + 202003040043200: [110020301220324,100041000010302,102020100243032,100031001020040,102012200202303,101110404021211,103110041442122,114042014102321,112003110242131,102112222001200], + 1000000124100202: [102040024001221,112201014002042,103133211444022,102102412002340,114000122212010,102212014031221,110024222100001,102404000230440,112202101103403,100034331000033], + 1102000043020004: [100212201000030,110020122101104,110040002132020,104130030010110,100000010411400,100000000120200,111120112103420,100100014000020,112402144042221,102100340232410], + 1010210200424013: [100013104102120,100002300012411,110412221244140,111200012201041,102011011321024,110010114411020,102120200214220,112002124000132,114024220020023,100423200030421], + 1021121020030343: [100020021042003,112404212020403,102100021341110,100002000100120,102102240210112,103031041400001,102022412000010,102300341002000,114002304100240,101000011003244], + 1032114104102004: [102012021321102,102141000230042,102002000221000,114044020020230,102000230224024,102321001000211,102242130202110,100010001040020,100002031020102,110200440000121], + 1020240000234201: [100000230100001,104002001220203,103412114041002,110011342000301,112141142310201,110121001243423,101000014000420,111001032141000,114000212242130,114002200020100], + 120121212420000: [110000022003412,102401200232302,102230221100001,100112224301402,100011100102010,101322224220202,100003100011100,102311200240102,101212020301403,114200302333202], + 1111011000340243: [110322104424202,101202421002031,102102220312102,103004204021310,110012310020200,102030130241300,100232224340041,112400002011010,112011001113222,102240134031142], + 222101023221002: [110102224201130,103301201402204,102401121113302,100021020124002,111201210000103,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010], + 1021200031004220: [102420011111224,100020004300114,110422402022230,100000000413010,110232020002221,100200010434020,102013102002210,102101300311032,110031332132100,110010021200102], + 1010120202320000: [110310422104304,110130131203320,103100214000113,110001104210004,100002421021214,114300212300001,103030441240230,102020411100001,110210212110310,100101020411004], + 1412434230011100: [102320104112023,100001034102143,101201000311021,110110414402000,110300112001013,100021000104412,110110211200222,101003301110132,100104200411203,101100001100404], + 1011422222100021: [100004401212000,100003034100001,102000010200014,102110402004000,102123242001200,101000040343001,114120320224032,114130112310004,111320340001240,103200201400040], + 1124231320342010: [100002121043000,102400234020130,101202001022000,100133204300040,102200031002000,114021112304224,112110044020204,101201101001302,102301204110230,111214012220202], + 100033011000000: [102430231400211,102004021102101,112002012030102,114440240003000,100403200010022,112120302010202,100020010000104,102124200204223,112003011123014,100000004310100], + 1402102334230230: [102020314012030,102020224000000,101002100323042,114021040001000,114110000002010,102301141002223,102110300210002,102000314012111,112014010202200,100000000410010], + 110001340230023: [100020124300032,103000330110013,100011210411120,1000301003020410,110320044420300,110010004201031,110031340030431,100130200010403,111202324133101,103010034041210], + 122421040332210: [114413122323000,102011232000334,114013314033010,110003202130040,111120310033010,100400410020001,101010401010001,111004010022020,100100201001010,111004040000001], + 130004010200122: [100022102100243,100013230100000,241221402002000,1030200104020421,1000102021230333,110344021203140,4002244101001011,101212413013223,100004424041022], + 1110000020202002: [101011010320431,103041414001042,103220000104122,101401030302440,102040124010141,102314221101100,114240004002100,101404104022202,100000011233203,111310114130114], + 101402140240220: [100014011034234,102240221000001,100000324303120,100221200002204,114000024101102,400200234320200,100020124204330,100101011013002,103002121432200,102141101410101], + 201042331220223: [110423144220412,111111032211400,103310010110323,102110341342110,100210001002200,112240241104124,101202300303044,104134120010200,103112124000010,102020010220120], + 101100202011011: [102100404023424,102202201120000,100012200101131,110032302102400,100140204233112,103030404010000,112414042011121,103403044001110,111012020040441,100400120022300], + 1021140013312200: [102240120244002,402010003200010,101003204000004,102204424033103,112010412020141,1002001101203410,104223421402434,110020102120001,402000143220001,123300114110104], + 1023002010212103: [100012421020214,102011201412140,102100100220230,102000401130003,102000211410100,102331110243203,100100340022200,100100101041000,112100422011011,100112210012241], + 141110101402042: [102021204012101,101224131020341,110012211120424,114001214100410,102231301114002,103210220100010,103120144004432,114033412300220,103112241441002,100020010122220], + 113300100202010: [110032211204214,111010204401023,103142444002002,101200010300001,112002132303300,114420232314210,110103101002440,100301004321221,112432104012111,101104100331011], + 103310040021101: [111100114401014,110003112130100,103000230120042,110103011302220,102020440242023,101230000302304,103222010114132,102300121004102,100042024100140,111322224120002], + 1212010000200442: [110020301220324,100041000010302,102020100243032,100031001020040,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321,112003110242131], + 1012042300200011: [110011232100412,100220040142222,110232002101410,110020120040121,110200021210212,110100100031014,102401010202301,114240000001020,102112004001032,102204114114214], + 200020300100100: [101012324214020,100000041041202,100000004214210,100120010020214,103411120100301,102110211441000,100402110020100,112000320221241,102100120311400,100103301022000], + 121011120420001: [102223111000042,102320200221110,102140041342420,101040401032021,114200004110030,111102324104110,102000324013042,101301420312101,102330324110001,100010144101222], + 1100020002201214: [112211122030420,101031201001231,100010021034321,102000010202042,112013012301132,102001104001214,112100140200020,111004410022000,102023224000110,100120421004010], + 200022101140224: [111030144113100,111024044110202,110001000034023,100001204102223,111120120020010,103141000210223,111041104111423,100402120033300,112012304003323,111000122234002], + 102020011224440: [103342200140020,101002204000401,102102010210032,100104100414031,103202320101211,112111342310011,120203030102301,100020014313110,111042022231040,101002241110012], + 134000140103000: [114202130211223,110110242112211,132210024001013,132104221210012,100033114200011,140402143000011,102201130200131,111110100010302,102233402023133,100114114231141], + 1021023241230202: [111201032220400,114203000004300,100022120412132,100000321031423,110322100104010,100102024100020,114043002302200,101222121020001,102120230230000,100032021041010], + 1033202000022202: [112021201120101,101142124022010,114202002320113,101000104002203,102300014110023,102430001401230,100402120031033,102103422004103,100010024202200,100020004212223], + 204020230202012: [102101324130010,102100441341013,101440004042202,100100204101010,103312401404300,111141312211004,114002134022331,102020014003003,102000000223101,100020024212001], + 200210303004120: [110020001310000,100310201003000,110412121110214,110142300120000,112010220224003,112001040231401,100200001001300,100012104313201,100002201032401,111301332200104], + 310140200400000: [103342200140020,102321301000010,101002204000401,112001030221202,111010102203103,114232034002001,111320004120022,100104100414031,103202320101211,112124311100114], + 1103040221113200: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1104043040012120: [100031034311401,100023210021210,102100104000203,110200101200402,100000140100020,102021201410011,103211014030010,100034124101023,111010024402022,100212221002300], + 1000001002330021: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1004240110000403: [111001210042130,100001201020430,100422020030044,101020401034001,102440214020040,110001020021430,100230241000000,110102032010323,114330004032011,111414104421003], + 240330001220102: [102002301120010,102340101000014,201301011030444,111002100000102,100012034312220,102004014000430,110140332002220,114111240032010,100431240001030,114222302321101], + 202130320200132: [102300324010203,102100142002204,103000011402201,110113004402201,100030024303023,110301232000100,114110340004414,110303401230040,102013412000213,102104020202131], + 132042210002042: [110104112010103,100122004300410,102202414041044,114443330001442,100230120001003,112203221102231,114022400020320,103001104010010,100111201014214,102003000220111], + 1400024134002001: [101104121111010,112012000220013,112030022000220,110022012133400,114112112341240,100112401023100,112102420203002,100003220022000,100100201000004,112400124040001], + 100021042220040: [110020402002300,110200200400310,110000011301000,110013001200012,102341101101130,114010000033220,102100014000101,102000404021220,100000004102242,102412304022012], + 1011010320310221: [101220014012231,100104024303320,114422004110130,112210132031001,102010310213001,103244320114100,114242312322020,102021221120401,100121424231222], + 130002001402202: [100024234201100,102113300230021,100010044310002,130000420243230,100232104120201,102212234021233,100100341202102], + 1000002100003011: [100332010141200,110231104241010,100020044100330,102020401120022,114021102203101,103040230101104,112004040221232,110010020014000,111010042201301,103022010141100], + 1020413022423210: [101023211102101,102022001101234,114220102332012,102000304001202,100010101021044,101233100300011,114400020001022,100001314100400,112101201102130,101004040320002], + 222114100000021: [101131004020022,102004311130001,112224202021132,114002242303403,100013400002001,101032331001214,111100004100002,110001032100111,114104222313030,102433241111002], + 111144313000310: [110430430003002,104412212102010,111012104400010,100432200033101,114244120001041,101021020324310,102340211000200,103120140210020,110010220000210,114420230000240], + 1211000011002303: [101200400041032,110003000042343,100001034102143,103001224014142,114431224113420,111211002241330,102042031440222,101012021030223,102304000241010,100004144212300], + 1000402010444101: [102101320220430,110101001304100,102320014112013,102312010211010,100111120012323,112312201131301,100023100104410,100000011041021,100024000010031,114010404102102], + 221011410020010: [100020024300411,103001321404030,112000234001001,102242041114201,111102200020120,100404000020123,111000304402300,112211131100120,110102001001100,102214331110104], + 1000100031003200: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 1120000122110300: [110101231202300,100130444102110,114132202313300,110223310000311,103010304012101,103103124000111,102300111104023,114001304100010,100400122200001,111100414100413], + 221333210120002: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,101244324043222,112102232300222], + 1020123410230010: [100140101044224,101120004023340,103040031403031,101000211032200,102200010202110,100010044300131,111010130002222,102030021130002,110200300000010,102040201103400], + 1100042240010010: [104100111240003,100010101020412,100001200100310,102100200221304,112022131130201,112332101100224,101011024001101,100430000033004,110003004210404,111232402242032], + 1424400042000411: [114231202331202,100003021234044,111102032220111,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203,100122101040022], + 320441024033203: [102011121102202], + 1410100223123401: [110201012032242,102011001134111,114102034001211,102302011002003,100314111000314,103222004034100,112401420204002,102002101100313,100000211001010,103100020102004], + 100011404400020: [101224004040224,112014200203300,102101300233234,114201104110402,111330000011002,101010211001223,111001004410120,110221000110000,100120241012042,101200001200044], + 110322200421322: [100210304340400,102201032021231,112020044000400,111201314412204,102000200204141,103220100102140,103041130110112,110023014202232,102220021304234,101023011140000], + 122140021013404: [100221304220024,100111424233042,100202021001020,100000031203140,112202140204000,100142114233420,114320020000000,101100131114110,100100240003022,112122122012102], + 1044121000010000: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 112000400342041: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,103101024004200,112000021122010,100021111043012,103024000103302,103300021402104], + 1020041111300010: [110000220420304,112000014000010,101100200334040,114020410021402,110040000001340,101020004002000,110032002131000,101431404041202,112000204001204,103122301240101], + 1124210320022304: [110011011212100,101134030011000,112000244001222,103220211421421,110123230124040,131000001020102,112200412033030,110420001000202,100102110402220,110412310030001], + 1002204443010220: [100122004300410,102140014001101,102000104012232,112400202020003,102000224000011,100011124202310,100030300124130,114400202310210,100001100013110,112233332034000], + 130202204000014: [102120010230031,111202300010010,110011200022002,102020304000242,110002400023342,100120044233220,110023202200020,100020010423201,103402201212100,113031010134002], + 1142104000424200: [114022300022421,111210044410020,111420230003130,101221000312044,100400240013333,111001314111000,101031030300001,103100040210040,100210001002200,100001210100102], + 1220140432420213: [110020402002300,110100104404110,102110042001043,110200200400310,110310100011310,102204001111220,110000011301000,102000100220240,110013001200012,102341101101130], + 110030401041223: [104100012102004,110030002000422,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110021232000021,100001140000010], + 100202100020220: [102422114040010,100022041001002,101204400304011,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,102002202000000], + 122130302202301: [102123220220223,101203342123110,110104102010242,114004312330330,102012114001113,101321004220102,103132114000010,110001012000001,101000101004001,101011040322103], + 121002222000430: [100030324200410,102110202001010,100040041020102,114200020003431,114041002212302,101002200343110,103332044032320,100212024322044,100140004102001,114101024122320], + 1113421030104124: [102300321004202,103003441432012,102311410222022,102000401410111,112000112001400,114310020001120,111101304101024,112240000200001,101021010300000,114111000233241], + 1000330000414003: [110020402002300,110201012032242,110310100011310,102204001111220,110000011301000,102022020202210,114010000033220,102000404021220,100000004102242,102311011001213], + 143302203221012: [100310120141002,102324014112020,100301421002002,102404021403141,103022021431010,103200020111014,100010004313001,103104200210410,100002200410030,100121031014040], + 101000000030200: [114233210000201,110033032100000,100002001024100,102103130221330,110011002100114,114102220033034,103303041402240,100002121021022,100020200012311,102120100220224], + 110400203132431: [110101201003142,102124204002001,103020200102104,111002310022022,110102000024120], + 1440010033102120: [101020414010211,101142004000232,101410021100102,100110004101000,100040020201004,102000034000000,112400200201000,101212310301011,110402030400142,101023431001040], + 202010224022200: [112001001112001,100310444310004,112332000411020,102431200203321,100211001204102,110002400042003,102032010241003,102403204000000,112333412022030,100210124104100], + 222104300412143: [104100012102004,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110021232000021,110301322104142,100001140000010], + 231011000200004: [111102110012000,103220011420242,100031201030331,100141011011032,100002120200101,101000344010212,102100431342023,101033141030001,100104400021023,100040300103443], + 1432100024112132: [111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,111204000003031,100012004110024,102142000210040,102320214110001,102144241343120], + 1024013200100010: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,114402104142102], + 110132320110204: [103100130122100,102340011104001,112300002022101,100430101012411,112013212002212,100202301000000,103411014002010,132000110000001,101000000300110,103000204004020], + 100041410004001: [110041240000013,110131122012210,114010200040441,110032014420232,100012044101230,110412001213211,100000344100100,111304022202211,111021212200430,100021214210112], + 304200240230404: [110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,102000221442214,102040041320010,102402104022000], + 104240041010003: [110001030120020,102233034000002,112130004021000,213002142300033,111212024101031,100222240004231,102112314002011,102241414034000,102223001303020,102320104022204], + 302212022410010: [102400010200011,101002041000124,101413321300222,1211200120132310,110222202033213,114310224030143,102031011130110,100302001002031,103304201400304,100011040202101], + 1002021000441410: [110104112010103,111102004100101,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231], + 112120022123420: [101222101202341,100020220410142,120202201010210,112042024000020,110022100044100,110003000024101,100010024302100,100000011020412,102022400210202,102003034011323], + 204030001023003: [114202400003330,111201222220201,114201102324001,114330004003002,114404022311000,100020021022020,114200002321304,111231042242020,112100204041010,101420001010224], + 140100100102023: [110300202021130,101300231002120,103400104001022,102212200313103,100240020430431,114440420003022,110021010021210,100000024302220,100222021003140,100102404232033], + 1100102034330004: [100020214300031,101010211001011,111220030010210,114042034104243,100004030411141,100412030034000,103232114040140,114010002240111,100240401003203,100002220411002], + 120102200313403: [103201411402002,110022000023010,103101224000011,114020302300110,111002100021022,102302120210122,103002000104400,114100032320203,100400300013000,110114021000012], + 322030102010400: [101301014221122,114220040000201,102102204022310,111040032200021,103030040121410,114040210022000,100404400013222,112010420241002,112201010203210,100000214310412], + 1012320310222003: [114020000020001,1302101004142102,110001001100001,201014000241421,110400102312140,1043303323011400,1002000010441103,140011220320300,114200022340011,214301004122000], + 110302001004001: [110300204431104,411200142040000,101040211000300,110413401240204,100222100030130,102120402001131,100312401002102,103110001420121,110102112010100,112040022301012], + 1001313302413001: [110010220040411,100010021002314,100022441042300,103100111424040,103100104000230,100303021002102,103020040142112,103210001410031,102304000242033,114020200011020], + 112030010210140: [101011220324041,101300000310200,114220110001121,100031004311400,110020011223233,110013000002041,102220004001014,102141302001013,100401302200302,114200102320214], + 130221000143204: [101222101202341,100020220410142,120202201010210,112042024000020,100010024302100,100000011020412,102022400210202,102003034011323,100003341032400,103211031422023], + 1132300231224110: [100002021021021,102401004021010,102402000202120,102124004023202,110002100012000,100001104210032,114240102322101,110033301230100,110200202122114,100001100400202], + 1030030424020010: [102100102001001,103113201442104,1001221041001000,100101131200000,101014020300010,100130210421420,1302024401111213,100100014220442,1034022001022241,313010202340021], + 220400111010022: [110021130023004,103004204044030,102314321001312,102023232000102,100101001010214,101141200014120,103110001240102,101202000300442,111202012241223,114010040023121], + 102212121101000: [102142210212103,102310201001230,100102111040112,103110000104002,100023020410230,114121124120244,100131401010130,114310104001300,100032341030204,102342400213200], + 1130204101000020: [100310020420020,110012112012000,100401101012134,102000000212042,110000212102200,100100101000220,112403200202210,112044040201013,100404312200011,103110144002110], + 1001214432401203: [112404212020403,100002000100120,101202301022130,102110302004002,102100011413332,100112101042131,110200301301240,111221110000021,102001004000102,100010000121214], + 101110104000014: [100000100100200,102010020203010,114403210004014,102200010200000,112102100423402,111131232212120,103211301411024,114444012310100,103140100210101,100020200120032], + 1100432220020331: [110020242002232,124204140102230,100032400410212,100001120412222,120302031123202,101220001020114,102422300002323,103122024001010,101114304000100,133231404422402], + 1000212040002000: [102110000210300,104220041321240,114420000001024,101021321034010,103422421110341,102040300202332,100112044302010,110030140000021,100300030421240,102102201341101], + 110303313133210: [110110010022302,103000431240102,114011004114100,110101140002212,110420000104020,110410140000110,100000401031111,102004101410420,110204242124012,110022301301002], + 100002201402300: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 223321301031124: [102200100200422,100030001033001,112011122004000,101200301010101,100020040120103,100102234101014,114143412200020,100133000101104,112100000420340,100002010100130], + 104002002222221: [110020001310000,100310201003000,110142300120000,112001040231401,103012011412220,112040101120100,100023234310410,100402010010244,100102434221001,101001000314122], + 1000011022024030: [100422040021304,102000024011300,100002010413410,101011210300000,101433010300204,101002221140440,102040021424212,110324444424432,100100001010020,101000000322000], + 100033011001021: [101001040340004,102424204043100,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 100232002132304: [104011021220100,111040000020010], + 1122034232200040: [114201204111222,103300004021200,102004204041000,103230134011412,100012004101221,102301101004100,110432112111103,101410020300143,101000100342143,101012111001103], + 123302021211004: [100020344302010,101000024004442,100002100000100,114100102340003,100100414230101,110130030020000], + 1001400330104400: [110131214220303,101101200311102,100200204123011,102012024040044,100042021022002,112000210230234,102020104000240,110013120101010,100404042201022,100104020004002], + 1000040032000101: [102100211412223,100020010120131,130022004024002,102400130203000,144112000040122,100010000210210,103034444000240,111110423020020,121021010114001,114142033030202], + 130010004011422: [110412001240302,102044001440122,102400304042142,102223314042002,100110004103103,101004204000013,102023120204401,101003444003023,111120032214004,100200020012000], + 1014004200102344: [100432200033101,101230004040022,114244120001041,101021020324310,100020140121034,102340211000200,110010220000210,114420230000240,110414012023214,114021000044211], + 222020221310200: [110232011000001,102111301413000,111000212203022,112243004012113,103130101240011,102024331121001,110014024412202,100000010400422,110022022200130,111320232203130], + 1420302232040040: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 1404002040004022: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 1011230340000000: [101302134233230,100022001040322,100000130010033,101030404212000,114102224000201,110020030024004,100022021041122,100013011020311,100120041020012,102012204000242], + 1410040223010244: [101002204212400,102001004012002,102112300201410,100100121043010,102100240231342,101123110330200,100323120143000,110432111241204,114200200002223,112123142010120], + 1422130012420011: [110022004410312,110400011243102,102000401442010,111020004400234,321114010100340,100121041041101,102322101000200,101020041000102,1042012320010021,110413131000201], + 222101000000044: [114213002340022,102120140212001,110102030010210,114400210002021,100240011000013,100000021022400,144200203310100,1003022312322100,102001244001224,114213004000003], + 132201220024002: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 120040202211130: [102100002002024,110014002130003,110000010021010,102010344000024,110102144200000,100212004104211,112200002020300,114203302324202,101100004004034,102001434012010], + 111023100100002: [110240301111040,111123014100000,101042230304321,110011020002013,114200000003241,103103404004112,100200201000403,112142011101404,100110120023012,101042044010040], + 1030222410300121: [100202000030042,102202131004010,103040004012200,102200142000111,103220101413302,101420240302103,102200114011100,111314100042040,110020120040202,110224010010021], + 100011112004121: [101121000330012,103243011400102,100024001220012,101400010300020,111122004101110,114414020000010,102400000230200,114112224002020,101104010330200,100341211000000], + 1432101140002002: [111100114401014,110003112130100,103000230120042,110103011302220,100101141042243,102020440242023,100220010002421,111210240010100,103222010114132,101240204233201], + 102221100401443: [102012210222441,131402001003121,100440420024144,102030414000201,100304111000014,103300031403210,100022131043110,121041101020014,102301201200000,120003002411030], + 1113110002212000: [114130012310000,100100411041000,103241131401223,100021221030421,100400120013011,102232024002401,102202141120400,103011001244001,112033112003214,101211000301100], + 110334201200020: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 102042002020311: [111120030010031,102021020221104,110202312030114,114012042300202,112001112310011,124002022040202,100121410011340,110020100040110,110201014430001,100011130101220], + 240233100200404: [100002100100210,100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102200401111200,102000430221040,114003104031111,100100000422320], + 130012224021230: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,102040021121030,102102211140013], + 100330021402004: [110400124241011,112104034022022,114233300214304,111020204112021,103022444011022,102101101021304,110210000000040,100031324100010,102202000232032,100040004202102], + 1110002124202300: [101033101002303,102001104010010,112002030210041,103134244000000,110002102003311,101011344000022,100041130040040,112402334040422,111000030042302,111013004412334], + 1103130042020020: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 1014202222322000: [101011011000320,114420200001202,102200100200422,114110012200230,100000421021024,102020102000000,100030001033001,102024144000240,114121124124301,102102002002000], + 1420031100410010: [102320130240202,100034100023401,110140042002031,111001024132202,110010132030102,110012000002021,110223102022103,110141041304241,110033021204221,110120100000300], + 1040000023012002: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,103101024004200,112000021122010,100021111043012,110124041140000,103300021402104], + 1030010000221111: [100003211020020,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100122124300402,103031114000000,101233124010023,102400100201130], + 201022242102413: [100020121020300,111110010022310,100200001001300,100002201032401,100240010430203,103432001210300,112440134041000,100210240013000,110401214242400,100033201031241], + 202340400102321: [100020121020300,110412121110214,110142300120000,112010220224003,111110010022310,100200001001300,100012104313201,100002201032401,111301332200104,103012011412220], + 1013140101010012: [102010040210212,104400301202200,100030010000110], + 1011030010402001: [112113214020100,103300344012201,100122200012014,100000130013400,100011200201400,100001321032243,100201104224131,100002100204114,102211430202033,101031321022412], + 120240402131302: [112000302000201,103013140100312,100000424301231,102133114020301,100234124224203,110032224202331,100100030024102,100044010000141,112043200240400,110022000133124], + 1141001131414123: [102301201004041,100400122200202,100124001004410,100020024242001,114300122321020,100120300400022,110040012100142,114302430004110,103200001200010,101000000324014], + 121003221210302: [110330400010040,100101231004020,110013112004021,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022,110020130044232,110333010013100], + 100040410300200: [102011001134111,100000344100100,114102034001211,102302011002003,100012441030002,101022114003000,114024210021201,102323014020022,100314111000314,103222004034100], + 1121004120121020: [110210114434301,114220024004132,100020100101101,114230012340300,114100022310024,112002030232410,111123224101232,112104020200001,102222001000203,101104300332343], + 120210040211010: [110114001202122,103034031400131,100001010100220,114002114012041,102000004012011,110101100012002,110001002004240,103322000112244,100030220002102,114010000023421], + 100120401334202: [112002002000410,102221230200001,114100212200003,110001040443212,1341242223200002,103001044021102,100020011230001,100023201000300,110420034220220,1010001300240320], + 110000000103000: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 242010100022001: [100422000031421,102220021120430,100102000010243,100024334203210,103031410122401,100040021031201,103000300120001,110100000100314,112012032034400,114043010040012], + 1042023313300310: [104120011242011,101230114202200,114300000000002,100400000020230,110020002104100,102111400202120,102000301101102,114100124002210,112400034040002,100000020201032], + 1401144043023210: [103004204044030,102314321001312,114111042314242,100010031030401,100101001010214,102334004110210,101141200014120,103110001240102,103000000101400,101202000300442], + 310040013312302: [431013031000023,1411024442020100,1002230121400101,103020110002104,1300100202010022], + 100004014223100: [101240210310204,100200011002200,100211041001012,112200000201104,100400010022002,100234124120220,110030010120002,114001024011341,103003041221441,111003212230033], + 1020102311100202: [100014030122001,100340204310400,110302220011010,112143002312100,103000121403344,111210300001213,112041004000223,100000221032000,100220320410004,110121000403344], + 100041030110220: [100242024100001,110410021002000,102000114002003,112042012000041,100020034311000,102041120220020,100010030104002,100010044103130,110040002120031,100001241033300], + 114022000201020: [100110034332223,101223100300200,100001130001003,111303214132004,112000000220402,102204004042041,103001201221020,102120231403010,110200110000022,103210021401242], + 1100101312431001: [102423204023200,114114010021023,101000000320000,114220212340004,102202000200000,110301004420202,103140244030030,101402114043020,111102024102110,112000002000300], + 202324010321110: [112014112303102,110312000010412,102002121103100,110103022012204,100214200004002,112200034012002,114104114000202,111201322223442,110024211210210,110003411213000], + 200011401213020: [102242320200020,110030021222310,114010104030002,102010011011210,101041020321002,102013131134030,103312010110013,114101042313041,122112024242100,121211001014412], + 134012304322131: [101022014222024,114230004110101,102142002000030,114000024101202,114201024112001,112020021120403,100002114104410,102130314134001,101043200320000,100103120104110], + 210230140104000: [103100221440010,112202000411103,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,114201104114111,101041001003300,100001100411302], + 1040042210202022: [110120144200000,114022412330004,101200221022044,101041030320401,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210,100014204201000], + 101001400020000: [103111001422000,102203004042010,111244302220204,100042100102211,101114000332010,112112211102024,100142044103021,114004014011110,102410004024030,101100010012423], + 220021202412120: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 1411002302000011: [114200212322001,100401210020002,112210322040121,100402042200000,110001440041003,100010111022102,100220300410430,102000224000000,100002104302110,101022440300020], + 1040400303000130: [114220040000201,111040032200021,100404400013222,102241044033231,110000312201003,103042320101230,103004004001222,100311000422101,101402031011101,114130004101132], + 112102200421412: [100122230031414,114222042332003,114011120024030,100101121010100,112304211102104,102440024021100,110110420034120,100203304122231,101100121020020,112023032001201], + 130130011420024: [110240301111040,111123014100000,101042230304321,110011020002013,114200000003241,103103404004112,100200201000403,112142011101404,100110120023012,101042044010040], + 130202004011110: [103102300102243,102113020210120,101012310342300,114020404101101,102321320224101,100002404310212,100020004310022,114012212302132,100003100122232,102000414010131], + 1000123012130031: [110001422030011,102144314002302,114200112340002,102343014022001,100211000430431,102240320200212,100140200410200,100020020120200,110210001214000,100001024311400], + 212130134000202: [100400001001300,102000220220104,114202044111100,100030004102002,103110114000220,103200021402002,114001200041204,114020114010322,102030401014002,101232444041012], + 131130004121201: [103300121401234,100122200020013,100400320033201,102331104112002,110121112010004,114132002200241,102330144110211,110214202124100,114243004003002,101200004233120], + 113100422304001: [102442211414022,110401440001204,114400322311044,103224401422304,111231012220013,110022300420031,103214220100013,102340301000304,100023011030111,100101220101011], + 1000310040114224: [100400224300040,100000020001023,111144042240304,102141201342300,102140210230000,101001004012413,100220121001003,100002001020024,103321024020142,114023230030204], + 232102014421130: [103241000112010,112020104001300,100034114100102,110330002104200,114101012201420,111032414402324,101114420310142,101120244000002,101300000340401,104240102023211], + 1001012022404232: [110301402000211,103030201402004,110420104221220,103200004030020,100320014310021,102000110221110,110240214432004,102122141142000,103041204010000,114432234113040], + 100012142330110: [103000111421112,100110001000423,111000000041000,110211010101001,100403132200002,101400004022000,101022440331440,112030011121003,101120100330133,101041001022001], + 1001241211404240: [101002001110304,114121112313010,102331400243022,100003004241212,102300434110131,102020021100000,110400431340433,100112004032301,110300202001421,102030001134223], + 1011100420200022: [102012201321104,101002011001110,103012301401041,110043034212101,101001301000011,101200034044124,103042224001110,102110040230322,100213100410301,100221210412004], + 112102000201110: [100010424101430,114000224101044,102110022001111,101020301114001,102102300210103,103024011431131,101011324001431,102320200224120,100030014210012,114100300000120], + 120011020000010: [100103301002044,100040104331012,102240041122001,112102010202000,114213304002022,110020200030000,102001001130003,100030004100221,103120304003121,103141021212342], + 1120202112004304: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102311120222404,100100000422320,102100012002000], + 131203130042210: [110013202003320,101031241000010,110030332100203,114404232310120,100020010200022,110011300010031,102300010221010,110221021202011,102002040200002,101212402120014], + 1012200000230411: [103130021444021,102100104002224,102031001411010,101400004022210,102031021441200,102112204131410,102300031004340,102312301104422,101200020303202,100000411002023], + 1401140101201040: [102010114022011,103340041403223,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,100010031222001,103001114001210,100001111201214], + 1122002220412040: [102202000201220,102203011120021,114202400003330,101000424210014,111201222220201,102103122004211,103022230124332,114404022311000,101010334004200,103003040102120], + 1400200110010303: [102000121122000,110000214202000,100040011023003,114223212320410,100302114311412,110232011000001,100130004033423,102111301413000,111000212203022,112200422011002], + 1022002022200100: [112124004022322,111300210014020,102103201320411,100100031043410,114403210004014,101033214211000,114001100024243,111000142201220,114100012204104,110141112044000], + 203010000010042: [110220202124002,110402424222014,102030024010020,104100212101210,101001011114020,111320000001004,100000100010110,100300024313211,114022012202024,112023212001400], + 1142010001001310: [112110020230222,100000100000104,101410204001212,103102124002001,114212004004022,101002224003212,103312304020314,110110001000304,100310110420131,110001200432201], + 200110013201000: [110413304221020,100440000030040,100023101001004,102101000233302,112130010202041,103210210100210,102012404000211,101043004211000,112340340200112,100001000010010], + 142434043404021: [110322011230103,100023230123400,101020031114000,111004012200100,102340024021002,111212140004022,110112202001101,130100014120020,102000031101300,102040001440133], + 1231200400131040: [101012000320221,102101204002343,102010031100000,100200411000410,102022001101400,100131201202420,100220111000200,102221014033000,110040200001210,103100110110403], + 133022010000010: [112101024021220,110401201001320,110034112134042,110022122120212,102102244030020,110041404412124,101032114013010,114102022202301,100000420422200,102000000220210], + 100002200010220: [100430021001320,103214301421201,1000001214032041,102210000240404,114320124031023,114220020213314,114011310043003,103141111442241,112020141130103,101020001101203], + 113102120431020: [114101004121020,100040301042132,102102241341004,103002020101431,102020431101132,100000041020230,102041021121210,101404104000404,100012104210032,102120204131302], + 1002210230221001: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,101120014204000,112001024000200,112020012002031,111021022200000,100030120004242], + 1013021210111121: [110020402002300,110000011301000,114010000033220,102000404021220,100000004102242,102311011001213,102000020223021,112024101112213,112003112000011,100010000013012], + 102330200000042: [111121100010021,110310034424102,111240220002100,102101211410144,102010214000120,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202], + 132203124014002: [114112012210120,100400342201103,102242114044013,100101301001312,102122001120420,112212232030211,110120024200104,101431200303432,103204100103414,100130214030022], + 213102202313202: [101221020011201,112310132020030,101101401020424,114030220011120,103122011241020,100011101011002,103010034004303,102101440201242,112002110240403,100100101220114], + 1001222000302310: [110222020012300,111012104400010,100432200033101,101230004040022,114244120001041,101021020324310,102120111142201,110010011212411,103230010114302,110010220000210], + 1022402000420104: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102012104010301,114123014001020,100004004303030,102001424000000,114001400031204], + 1040103010311041: [111120002211010,103122000100403,102023120241131,110014300041302,104103101240204,114241000002004,111232000010230,110020110400102,100424200020200,110321001330010], + 1002022220222004: [110001202000032,142020040041320,114200004110244,102102402003021,101210101010023,114422114140221,114032104123010,114303122321110,101201101023214,100130104300103], + 1041100003000343: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 1004421031024022: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1020001040241100: [111220202240410,102200020211042,110114002004014,100010114200031,102341041000204,101224110303300,110003020001402,100000144311102,110100200402003,114001000010302], + 1111123130020200: [103324024030212,111022412140224,103030304021102,114110004121301,100104100422041,112002220220002,100121301023030,110000130020003,103120321442020,103002144001000], + 1000010312302114: [100002100100210,100400002201113,102420424042020,100010001032223,102111024000402,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011], + 123040011220200: [112032012004300,102000401442010,102000014004040,111020004400234,321114010100340,100121041041101,102322101000200,101020041000102,1042012320010021,102121321410143], + 1142220230210441: [114011002300120,101221004042212,100303111000101,102011101321222,100010001023120,101121301100014,102002101120132,102010200213332,101100320320310,101000004211110], + 202201100220210: [114040210021100,102002220221002,114100234004010,100030410102000,112240334012440,100020124303001,110020200001031,100034021034000,100022344101140,102230400202203], + 1114202003003122: [101002204212400,100111014100342,102112300201410,100100121043010,110432111241204,114200200002223,112123142010120,101002321032002,101121100013002,100132034104220], + 1212242010210013: [111201032220400,114203000004300,100022120412132,100000321031423,110322100104010,100031314241140,114043002302200,101222121020001,102120230230000,100032021041010], + 222110021443312: [112004300230022,102300030220022,103201311412000,111200004440204,110243100000014,102202101300230,101022130300021,110202001000101,112010101111102,114000102304201], + 200003434220004: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 100101022240032: [110002042230121], + 1433201112213400: [102302340241312,103243130100004,100410410002011,110133000404002,102202000200000,102101224002210,112104230200100,110311232120010,122203322100011,114141142204022], + 1011002002001120: [100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,100024101022010,110212424242341,100101014300100], + 1401200030012020: [112000302030120], + 1003040244002213: [112020000230440,110041014413112,110004002133140,100040031020241,100411400030100,100002000102100,110122000020202,102120221120200,102100211143330,101000221144002], + 100233404043002: [101000024004442,101031104002100,101101230331040,114132100210100,100400032200141], + 104021103122020: [102341411000203,103010210100220,101121000330012,102412000200222,110200402121400,102323020224000,100024001220012,101400010300020,101121101104211,111122004101110], + 1120312242400312: [110023002000211,110031240011133,110010000002013,102401231110301,102010404010110,101002301110132,100122000400000,100001101040302,101400001014101,103232330101002], + 1102132400000223: [110200400000020,100324140141402,103122000100403,100002204340200,110000410001034,103102224034002,110020041310021,110001001200323,110102111204210,103013100120001], + 1004310203140131: [104104200011003,101004201144000,111112000011221,103203101201011,112113410202210,102210001404312,112220101100102,100101100020112,104130211242240,114002212300440], + 1142203133132102: [100200104321000,110000110410110,101021000341001,100021214210112,112010034020230,102103231340304,102100010222101,103021004011210,112001002300431,114212010211143], + 104100320021034: [103001001400034,100121021040101,100000220100300,114110002344030,100002131030310,100242221000000,114010310044021,102404124020040,110020022133202,103220201402330], + 1242110022200014: [100002044211310,110430122111140,104012302104014,102320221000230,101042014003022,1323100312100112,1300001101120141,101141224002302,100402002201033,112011011111121], + 100204432220400: [100101231004020,110013112004021,114004004112122,100100004100200,110402302023020,101432201010330,102143211343014,110001122101012,110212020000222,100030124202201], + 1402221021030324: [110311011200000,102122100201100,110202202032022,101002211110002,101020330314241,102311031104220,111001444401000,110242101314034,114244202322332,110042010000012], + 141200112200130: [101404110301130,102000001322140,110030411202403,102001104000101,100042114342002,100432101014010,110311102100000,101000030310000,111020104123120,102314144114220], + 1012030422400010: [100013204331410,104123000021013,110233030400302,103300201404020,110000400022241,111300400001004,110000321211330,112203044010404,100121021044204,102200000201020], + 100100000030100: [100002101021120,102102012003220,102313114114000,103030304021102,100000101001431,100104100422041,100001044241012,102030420223110,102120200201042,100200011000020], + 102143100211320: [100222004320102,100110004103122,103020200141000,102414034040100,100022304302043,103031300144042,100120010421220,100000111034100,103132114002002,100412200002013], + 233203100000114: [103300014023010,101421000301032,111302012221000,114004200041442,102004010220020,102121122000024,101011024211030,111020242204241,112020300223020,102313304020100], + 200103003200003: [110311002102104,101000040341000,100001024102000,111330004130112,100202144121213,112001032003010,102010020243104,110000042002101,110100020114200,100230101202040], + 1002022022003402: [100002100100210,102420424042020,100010001032223,102200401111200,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011,114200302341234], + 1230001024101201: [103000011402201,110210134244100,102121041441000,114102022200000,110233010002020,111203034103022,102101304000012,114020202241323,110004402131000,102132421000100], + 304001222420400: [101210320301302,100440024301100,102022200220022,100101041040330,101400014040400,103341124011404,114101000221221,114010214101003,100031130410243,112400222021010], + 1004421012222010: [100014001011003,101212120302000,132011240110101,132044444002002,122001102242001,112104401000212,110013401320032,112040011110303,103001234020121,112020212022004], + 202030010141222: [104404322124241,102032031130301,114023002202030,100013401040442,102200124012000,114002120023020,121400013334402,100103201040210,144442110010421,144000213202010], + 1212200122110000: [111121004103434,112203001103411,100212024121000,100001001033200,100221110101420,102441030231300,103032000144301,114002004100042,102102200220144,102001024012440], + 210332202021040: [102224420201000,103013034012221,110302311302101,100000120002200], + 101020012020400: [114002044012422,1240210023303321,111011220004001,121410130210200], + 1102002121232021: [100041001023101,103340440140221,110030000010100,100003024100303,102010100200312], + 1204001300004020: [111214100000104,102103034004032,100430221011100,102221410200012,110422010000200,103112021442033,110044014410012,110030231214100,111121012243322,110100144404220], + 121211140020242: [102210100313100,100004420014012,102240210240022,101040401032021,114200004110030,102024124011010,102000324013042,100030124212213,114210102320112,114234004112000], + 241440440000204: [100014100100001,102100004130301,102201101122100,100021424301033,102003004003400,103340410140122,100102114100420,103000121434032,114104012311322,102022100223142], + 124110012023230: [100030220100110,100002114314022,102000100200100,102020400244030,111004012200210,114402102312001,100413131013301,110001102103432,112033300230131,110102002011031], + 1113122102000210: [100222004320102,100110004103122,103020200141000,102414034040100,103031300144042,100120010421220,100000111034100,103132114002002,100412200002013,114312004002020], + 1000034443143001: [111301240010310,101300400310002,102400014040241,101120321040104,100303101000021,111001212232021,110002300420010,102202110230404,112004031112020,100240011003010], + 143010403220012: [103000140141214,102422021113012,114020204101200,101021321034010,100140014100401,110001120421122,100000101024224,100100030402102,101440000330201,111240142220304], + 101204220003242: [100313324320240,102002212000021,102013201320403,100001310421201,110000110021420,110100410011143,112000221133021,100130000010204,102443324020000,101134004004013], + 134202134322003: [100032141000004,102302221002020,111020112231430,110003222001121,110221222240310,110020401021000,102103234023110,100222420432002,112110002014431,111002024410131], + 1121200020230243: [101100230013304,102330420243012,114011024102042,114402212310021,102310100240232,114230200210013,101030320340141,100300004314400,110020312200022,111302222202200], + 1441010013200133: [110011000020032,111000044400210,110004204210030,102222021012222,100033304311024,112231212040100,110240142123020,110012322102010,101230004013020,110220212120101], + 1010200132121021: [114020010030200,100004402212111,120011211132142,110020041012320,103210010100241,110140430013022,111011202110211,111001430040243,112000014004304,111024204120312], + 1024411110244001: [100100411041000,112010012000201,103241131401223,100021221030421,102101101021304,100400120013011,102232024002401,102202000232032,102202141120400,103011001244001], + 1040424440410030: [114230000001013,100002031032111,100022211001110,110003214210201,112000002310000,103002000122134,100204224322300,112004000230002,100402222200122,100422000432002], + 221422402030000: [114201204111222,100104001041200,102012200202303,103222114034232,114122112202230,103221204032410,100004004102410,102301101004100,110432112111103,101104001101000], + 1412100222020022: [101301014221122,114220040000201,102102204022310,100404400013222,110012130410040,100104101200201,111040100020010,112201010203210,100000214310412,103042320101230], + 200233421020404: [114000000032100,100122124300010,100110034101010,110410224241010,111300402201232,111011100022010,100400444100202,101120101424040,101200111010033,112100404020132], + 240220300110300: [102102101412200,102403004020222,1000030331001004,411002200000033,101111220222002,110144110000000,114320100012003,1042001130040011,100424222031420,112140022310000], + 1104201022123041: [110421102023242,112100200230014,110011414201101,110001000023414,111440120030122,110202002231020,100120400400010,112104334041420,103043221414000,114400104140001], + 1142010011033222: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1023212020000302: [110222304210114,101003000321222,102011131320100,114020000023210,110034002002003,111100202242202,100321104310301,100012011020041,112440222014310,101023031030021], + 1002120030130000: [100300024310001,100012040401120,101001110343210,114000334010312,101022030300011,102214211122201,112300101130000,100000004100300,110004232203001,114400002323224], + 133100012102102: [110011032010001,101001131021120,100000224343122,112011010210200,102310030202020,110020101010020,102420201112010,100002110000403,100242104310100,101021200342003], + 1021010132024200: [112212320200423,100044011022224,102301011004011,102200111110200,102130001400000,102012100200021,112224304041202,102034010220333,111103044400100,100314021003440], + 100202121220013: [104103201240410,100300204010001,100011320043322,102204100232030,110110012110224,100200011220231,101004410311320,100200310110000,102002122014040,103112010212244], + 130024244021232: [100430014323000,112100021100243,100212101003134,103030014000020,100020024100324,101230011020020,112003002001002,102012201414304,114001404032310,114000200041240], + 103011221104400: [101044214042221,110024010120300,101122001110002,114102002340031,102200011300300,100122101200000,110114022122200,101442404002102,102200101102002,110200340000130], + 1000343224004101: [100400031010020,103442024002002,100320024212400,112003300212122], + 310140200012220: [103114001444241,111324002200000,100030211020221,102013110232000,103122340101040,102012114000000,100001214214401,112140422012414,101411100302340,130300134014230], + 1140002401203124: [140021043021204,103120420210322,102143020210410,110412000000011,112100214000031,103100004000304,101002014211041,110022002132302,110112402141330,100400302201014], + 1021233321020042: [110104221201402,111101302241011,100003000102230,100100134100314,114232230211044,101112314022000,101001104011010,101410020300220,101101241113422,101102201113101], + 104201002410004: [101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,112143144020012,101000100340001], + 1011040102010244: [102021421100320,110441010032000,110000401222110,100020341221002,110410031002012,110330110101124,111010022200110,110003031232031,110032311222214,111302002203001], + 102201000400010: [110101231202300,100130444102110,100001204342232,114132202313300,110223310000311,103010304012101,102210044010110,112000404000001,112000001121002,103103124000111], + 1120210230240223: [102440001113120,114311204002010,110004221040341,103200204031212,100001024240030,100410110002020,114004102201202,101010014001032,100222014121024,100402002200000], + 131001110000200: [101230002122040,110100041200400,101210241204043,111311120014011,100123011004113,100420001002101,101134224001001,102321234111310,101004010323441,102000024000002], + 1022240011021003: [110203131211112,110021100023210,103122000100403,114103412201420,110014300041302,110020041310021,114241000002004,110020310022021,101121021020012,110321001330010], + 220404102401302: [102422114040010,101204400304011,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,102002202000000,100022024100041], + 101000002020402: [102203344011410,100021324100000,102103430210003,100012014300120,102414014022212,102012220241003,100032000101014,101430211012120,100204021000012,100032134101100], + 1000101040140100: [102022404012203,110210334214024,112020010222102,100100324232004,102141240210423,101410014024001,114100000212230,102100031320041,112141102011002,110020234201010], + 1120220203003222: [112113214020100,102010202004402,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004,103113010102100], + 102102301442122: [110034012104202,102300444113103,110402002023040,102443120230311,100411031000011,100032111220130,114020130030141,102010014000110,110220004211001,101120214002100], + 100410004300121: [101220040300414,114410002324204,101003140301001,403111002011011,113210210400400,1140104002020100,1010000000034010,1304032042210300,103100001242220,1120100002011010], + 1000302211014221: [102101222000102,100113004302233,101000110324210,114221002303200,101022204002023,111201012201003,110200122222130,110140211201422,110123012044100,101002114213204], + 1044023000010101: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 222022013141002: [114020000030002,100113220020101,114031000022030,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 202000201124400: [102123420200002,110201022020301,103322110110201,101212002120024,100033334311001,102122141343010,101002400300211,101014204002243,101001004010030,100400010010032], + 242201000220003: [111431110000042,100302141003012,102004441124110,103303201400021,100000301221024,101224322120022,114100200002120,101004120224442,110310020040401,110200010014000], + 1030200204000441: [144131233204044,120130001004000,101001131032132,110102030010210,110400010031401,102220211120002,114112002313010,114014010033321,101400104042212,1003022312322100], + 1424411400140110: [110224314430000,102203301123001,103100134001001,100000001030003,114030314123101,114020142302420,114442222312000,101001001030440,114031010001020,114000024014200], + 300104204121110: [110001332120300,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011,102130000312121], + 140320333023422: [100010101030000,112020112300102,112002100233204,103202300102400,102442004024220,102032440200402,112400024011003,102012141440022,100420101011004,114030424122003], + 1120432412431011: [101020204002030,114203042330220,103102211440104,102111022001024,102102231400111,111101100021200,114023010024000,114000204101231,100000400412200,100002020101023], + 142410011140212: [114021004032120,112000104023000,102323234114200,102002200244011,102201014020311,103000304013020,100210021001204,102101022004020,100010304110000,112022020242001], + 112344400302043: [114421022321142,101000204010010,110433002111222,110202441103213,112002100212411,103011010100014,103420201210023,100120110002024,114032102210211,114202332300110], + 1010100200403041: [103443024000000,114112124140000,110044220021000,100231020112302,102101231341022,110122400401032,102440020200020,102001020222140,103122411441211,114102004002022], + 202124011001042: [110030002000422,100011004343022,110401140004202,110040002034100,102402330230011,110201434430102,102110334020204,103200001420012,112002002000344,102120020230022], + 122020010401214: [114021104120000], + 141330010000210: [102101211411000,112032040234431,110010232004000,101020004000000,101004310324302,100102224033421,100120040400011,100214044220201,100400110020244,110410002020200], + 100024000322202: [100041000411231,100010101030000,102140040210040,114110030002020,102010031444104,103202300102400,114103200002100,102410010201202,102202244040132,102211201122230], + 122022030000101: [112002110220340,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,100010031222001,110020200001031,103001114001210,100034021034000], + 1112113200012020: [100013200204000], + 1001201041120242: [102340101000014,102002240241140,111203032220113,110232222040304,112241010203003,102120010230014,112104004022110,103010101412020,114020110001011,101010330320400], + 123102103100020: [102304030220001,102141124004222,112042422001032,100134101022112,103310200110020,100020031030323,102140041342001,100001001032400,112100022010403,103100130100043], + 1011021143020413: [110121130100010,112000111110400,100140001011002,101000401120424,102001114002202,103132120120100,110400004243120,121202102031102,111100210412220,120000200000202], + 111410240120200: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1001000221331101: [101100011102402,103100214000130,100002020122000,100002244244011,103001031403201,114040410020022,110033020003012,110023100420044,122333020133040,102011024010121], + 323212001001010: [102001404012100,1010400230221020,102302200210010,102340120222440,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 1200212020220311: [102302214110044,103041014030230,110113122120330,102310101100011,111012312140331,110041202203140,100021404300231,101100020320003,112120200200410,110332242220220], + 1001030011212013: [110032211204214,110230102122422,110103101002440,112432104012111,110130240011301,102002101410044,102002104011330,102100000220121,110222131200214,102103411140402], + 103301202212100: [111423000022420,140102120200000,110400444243022,110131001002021,203201100012000,122001000320022,121104330112000], + 210001203342400: [110240301111040,111123014100000,114200000003241,103103404004112,100110120023012,101042044010040,112021014022022,112002322032030,101040401030013,111300002204430], + 1111023030001104: [110003410004022], + 232030011020243: [110103014401023,101143214201102,100001044310021,114030444102123,102024000201400,103244411400010,103301201400202,103010031401122,102000404011100,100133044234004], + 111002014410041: [103300344012201,100122200012014,100011200201400,100201104224131,100002100204114,102203001300000,102101004001020], + 100020020103001: [100402004300002,110020134410001,100300020142022,102043001021033,101210211022100,110421202110000,114100202200202,110004100002122,100100121010222,110100122010310], + 1000000043202304: [112132434020310,100000144104100,101040100302002,100013030100002,103340114022112,100310034310200,101014014000004,100100104102141,102111210230204,102200421003014], + 132100430000410: [102343230224321,114201104111034,102310140240012,100014204201000,111130210020000,100141101044100,102114022004023,101022121001000,102102201340311,101410201010030], + 141200013120120: [111102004100101,103122020213112,102140014001101,102000104012232,114122134140002,103012011434022,102101010202004,101001220303224,114400202310210,100042030201341], + 114120403000020: [101121211101004,101001304001101,103000110142041,102002112041034,112401144042000,112200124010030,110422010000000,100020024100400,101000102400130,101304320302121], + 124320101203003: [112021001121302,100020001001030,100100311010420,111100022114001,112202131104100,100102201220030,103000021220401], + 102013202343203: [110200201311102,110332000400401,102100044001000,101012340321223,100020011230014,100011314203014,112410030231014,103023201244020,114200020212020,100222420432042], + 1104242102104010: [100100030022201,103200010100022,101000121032422,110400300400024,110202101314010,101000201031210,100010230021121,110034400040011,102000221103012,111300040040303], + 1020300002112112: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,103022110142241,103012000100422,101002024000400], + 100004032134001: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,112003100241220,100301104104210,102101004000001], + 1400202301000120: [110011414240022,111142010020301,102100104000040,100010044300003,114130210231020,112120224040040,103301410110110,112114324040000,102124031023100,100204104320231], + 1100001000200030: [114011302301400,102304034110400,100043010120010,102101124001310,102430300201034,100130001014110,112030122000001,100004121030301,101102104020404,101031001004201], + 1010020202012022: [101404110301130,102000001322140,110030411202403,102001104000101,103000200000240,104121003020042,112210200412300,102010020200000,111220034440403,122410423203002], + 1001401431202110: [110021031040112,112004030241132,110344041332022,110322102201011,114302300000331,100342131201000,114032402301302,101420010300301,100211244340000,101010334002200], + 1000001220030040: [100030204300220,101021334000222,114010122330030,100011024201101,111222442222413,110030122102303,103044001412002,102211124032000,110400200000240,110101301000001], + 1001404440121400: [100122004300410,112400202020003,102000224000011,101212040303123,100021021000101,102030200240232,100011124202310,100030300124130,100001100013110,112233332034000], + 114010004120201: [110000212101040,110021410020203,112024232302040,114013022304040,100040131021101,102322121000002,102021311100042,102030100221011,100201020140421,100004001002300], + 1004304022120141: [110100104404110,102110042001043,110200200400310,114100002204212,110000011301000,102000100220240,110013001200012,102341101101130,114010000033220,102100014000101], + 132022120032410: [100423004302232,100110034332223,101223100300200,100001130001003,102001034002201,101104401020410,102032031440302,100113004304010,111303214132004,100001000100200], + 102002000030000: [100104010021241,100004301021110,114101100211240,114102102344110,114010002300003,100112110020301,102022200223242,100000004102124,100022301000112,114121030220301], + 130010121410000: [100441200021020,102122041411241,100003000102230,100100134100314,114232230211044,101112314022000,110004331321320,110224102020200,112023024000400,102202240230002], + 100101022000030: [103030411422014,103043334040203,110422201312402,102120131401230,110200302024000,110210020104031,113130020101411,102041210224224,112200030203124,100130334030100], + 212110000000102: [111222202220021,111432124443120,103423201200020,110332111334020,111042000000020,110000001012000], + 1001401010120004: [102201124020122,110210010400143,100103034003113,101020301142101,100130120400120,112401030203302,110212000400101,112003420210300,112212022020100,103020021423140], + 120241321204001: [102010040210212,140230300211231,100030010000110], + 100331300001000: [110122120100022,111100424100021,110111121011004,103001020104102,110200422113400,112000000223310,100002214210110,100011200201230,111001002201034,112024144002202], + 100401000111100: [102304200241002,112144232304210,114401212321020,102011011133120,100001004130003,114013000011100,110102304220300,103204100112201,102102101410121,103242110100304], + 1400340212321013: [100002031120341,113020001020004,100003044210040,103243401401133,110012212132410,101210014200430,110014011320012,110400022122040,101111010020120,100223400002001], + 1020000322341344: [114011002300120,101221004042212,100303111000101,102011101321222,100010001023120,102002101120132,102010200213332,101100320320310,101000004211110,101230420300200], + 1142200423022124: [114033120034402,100023221022210,100040221211010,102104010311220,102230022023230,100014200003002,101122001110433,110320022024110], + 122241013202100: [102002014000220,100002011042020,102010200221000,101041201002422,114402320000202,112000002000420,102012401001012,114201224110141,112431004013030,114003002301122], + 1020042002200222: [114300304001000,110214110004122,112021020220112,110003020001402,102000401102000,103021000101321,112231202030221,110011102103221,110102400111401,101301000310233], + 200014210230001: [101221020040220,114022412330004,100103104302044,101041030320401,102141212000200,101203121020430,103130021444021,102100104002224,102020004000014,114144014122041], + 134200121024220: [102334004110232,110002002000100,103013000104404,112200102024122,103000034003300,101000100322140,100000040001141,110002001231100,114010010002314,114124002341030], + 1430001204234321: [110200100002031,101420310301020,111103224103001,103010301402112,100011401031000,100020034100101,100122214300222,102332100243030,110004424200024,103134021420204], + 102023043030212: [100422000031421,110302040102004,101402114042420,102220021120430,111341300012200,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401], + 210200000200202: [101230114202200,100400000020230,114300124030100,100202031002101,112411140200242,100121114230123,102321014111202,102102334000400,114323400212122,110030110140100], + 120001200240102: [100310120141002,103000004002012,100002011042020,100301421002002,100202140000111,103022021431010,103200020111014,103104200210410,100240101000030,101003104212220], + 142000220213430: [100030010011002,101021301022041,100402300013130,104402130010100,140320413003120,101201220402420,400040001020004,1001120000022000,1323104441242212], + 1121200020110210: [1010130003011221,1331041104430100,200142102010231,1032220014300112,101301220341310], + 1140010130121200: [103000020120220,100004001020100,103030340110000,101420110330224,111023102200413,100110100000022,111424124422102,101030101022201,100022001231203,110020232200300], + 212034003213120: [111123010022304,112003001133011,100201134100140,110213002132000,102022420220121,111010132204402,102401214020202,112102204024002,100100424030003,101000131030120], + 1111400101000301: [110101231202300,100130444102110,100001204342232,114132202313300,110223310000311,103010304012101,102210044010110,112000404000001,112000001121002,103103124000111], + 1010140041312320: [102000004002101,101403014020203,100402004300002,100042030120422,112100000200031,110003032000041,100003200120040,103300234023033,100112000410320,114010340043300], + 101023332233040: [1302101004142102,1043303323011400,1002000010441103,1122204031101014,140011220320300,114200022340011,1140332400310103,214301004122000,1020002000321320,1003033202212100], + 1040043400404100: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 1001104232404220: [102110230230004,102020034010140,103102010211110,100021000122000,112130002012100,112203420410100,100020404100041,102320204112104,101004210301301,101001100301030], + 1012020010022101: [100004211221210,114022042302201,103310101401010,103220030101023,401300041114001,112032302000220,112003000230001,102004301444000,111133030010200,102103231340304], + 200004120133002: [112120200204001,100030024301424,101011114210004,100024234202001,112102010201010,101211020302000,102102001342202,102420034022021,102130000221211,102013004023003], + 100001020423013: [100120221021011,111242212222022,102022411100012,100020100100300,100001210102104,101401140300101,103220200100320,101030004004303,114102404120000,114000020034200], + 1000131040022130: [114022412330004,100103104302044,101041030320401,101203121020430,100002004104004,103130021444021,102100104002224,102100224000210,102020004000014,102103321411004], + 1444010010040200: [114011220041204,100301031002201,100000224311320,102120121212031,112000400223100,102022031324020,100211111003420,101100004022130,100344041000232,103123314002423], + 120401221004200: [110141201302122,100023001222000,101002124002220,100101004230030,102103012004030,114034000012210,101044004000132,114114004140010,101010241113102,114030142200400], + 1100140342302400: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 200024300000202: [114444244144110,102001200221011,114201004110120,100412114304000,103001020120202,101000020302400,102021014012210,102244221114031,112400000200011,111101400011011], + 124110421221040: [102100010233022,102120400212001,114313022302101,114021002302020,102313204114304,112100102300200,103001324000110,100002014200021,102300401001010,103212320212011], + 1100020010130000: [101044400340202,114101422201430,111014314400310,114020000010101,103121041440100,111130010032011,102012321321040,110020232132221,103203011404430,101012110312230], + 200323144411410: [101001421031220,112220322030220,110210301200101,111000034110311,110400241240242,102200001002100,114443304123123,102000024010002,102413100201310,111001102202224], + 1001142124010100: [102100304000010,102332320243001,102202014030001,114003040042312,110201400000100,110400204221003,112021324023000,100100340400000,103202011201000,111000000020410], + 234421004212212: [103011431401300,101302134233230,100002200103104,102040300241403,100431000032001,100013011020311,100202031002101,102103331400000,103013004020003,100120041020012], + 1030130231314220: [100411410430220,101410011012112,112300411132120,110131310000224,112104124022321,110100022012033,100221004340224,100103044230022,103222330131101,110020124201103], + 1440320203000011: [110400112011100,114420304140242,110441010002400,102300120242120,114203104001000,111210002244201,114000004102022,110001022130201,102430001113001,114212102310100], + 1140211300000040: [100030220100110,100002114314022,112030122000211,111130202220102,102000100200100,102020400244030,111004012200210,103112100101020,114402102312001,100413131013301], + 1022312240013142: [101001131032132,110340014422102,101022400300001,102140004000100,103202130122102,100021000010213,100231004220242,112430010114123,130020100202200,120002101133400], + 1003020300103014: [112012000220043,102414000203000,111101400022211,111320100000001,112002202000010,114001102301101,101010041003004,102000121442001,114011020020242,114030100040000], + 102402330013411: [110034300021014,101042401000112,114400112314022,103004104003011,114014010043112,100112440013034,110104140001020,102011114000320,100041001211002,114200134110042], + 1140112030002221: [101201111021101,103131044031101,110211100000033,100012010200202,120001020012001,102121042000004,114004312330002,114304304030022,114034424023412,100000220112324], + 1002030120203312: [103041220111410,101100202130022,102004201032002,111001212200200,114101012343012], + 1424403001321040: [101000201232022,103204024030020,112200011102023,111430004410400,110400304211041,112400040204203,101020304214000,101101011201302,114100000210113,103422044042141], + 102030010002014: [101224001202324,100002001024100,102103130221330,102011310202304,110010311210011,102022421132024,100002121021022,102001331441012,100203014121400,101400201102014], + 221212002022030: [101012131000024,102120221022200,114221104114000,100001111032112,100400212200322,112400004020421,100120120112100,103221021412001], + 1020010314001321: [112004302004223,100011030420233,100000014100111,110112001300220,111024132204021,100400032200141], + 240312210011031: [100004401212000,102123242001200,114120320224032,100000311022110,100202004324201,102041020200401,114030012303012,101003131110001,100000001232300,100240130000020], + 101000400012240: [100400142200030,114020020001014,100001144201220,102120304001402,111212204101240,103210031410020,102330044110040,104103022103210,114400130000014,110232012044212], + 240003400214010: [100024000110221,101301014221122,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,100404400013222,111001344400222,111000000000411], + 1000130000200201: [1010400230221020,111320012221132,102302144110440,111101040014040,114140004123122,102143202000400,111020002202333,101321311004010,102110241342210,114122302311011], + 1041200221400003: [100030040101021,114310102300021,102400124020001,100102224234101,102010321411140,102111131410342,100031120413224,101304004220404,114104214003030,114004004100210], + 140224000241010: [103324221401420,110400332010004,103111004004332,112204340204032,101020320320424,110324011300003,100014121020424,114300034032400,110313010000400,111002022220000], + 320410000002201: [103212014020132,102102030214401,102021420233130,111130410020021,101022000302211,101232020300432,100044004210004,114020204024101,101031320320042,100102101000203], + 120122100110241: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,104110100014103,110341300400201], + 124022102000302: [110102401201204,103020200141000,102400100230000,102414034040100,100212030414010,100412200002013,114312004002020,101200020303202,102020041321410,111340300010010], + 1102422243013103: [102304034110400,100043010120010,102101124001310,102430300201034,102143432000102,101031001004201,102040010200101,102200434012013,100021301302122,114001110033210], + 101404002000100: [102121240200000,101212040303123,100001100013110,102402000204104,114024142200303,102010042000041,100011221032200,112401042010001,103223200110112,102031021133300], + 1141322000013000: [103140211443110,100030001020201,100242141004122,101302401003202,100012200201130,100004004102002,112020201120340,102300001002140,100204220000112,103210200100000], + 1102404301201104: [102101141340120,110123114221102], + 1004340442022302: [110300010040010,100001044200004,114121222313401,101201020300000,102011201441000,102100112002212,114202200002400,100113410410314,112230004011202,100131124002410], + 124200240100040: [103201411402002,110022000023010,103101224000011,114020302300110,111002100021022,102200042000104,103002000104400,114100032320203,103002144042123,110114021000012], + 101120402102000: [111202114103220,103000121421121,114404302200120,110140011300020,303320304020413,111020012233400,1000313001212002,110013024421020,110001002010000,101043021021030], + 200101434110224: [111100224102032,100102244032220,111100214402203,102310310210000,114201124000012,112104124041104,112043222001113,103412024004004,102041011123103,110011301033002], + 130411300102120: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,102023021321020,114040204014042,100040401020413,112414334044310,114001010044120], + 1402020002003022: [103100030100010,100003414100400,101023221000031,114221004002212,112010022302321,101000214211011,102300131102000,100110204101020,100000001020034,111322242223400], + 100401002000040: [104230032202131,103021014043200,101001024040001,114111300210304,110022002010132,100220210000034,114000212212000,110012112002100,103242100130004,103022004011103], + 220012021000000: [110010000020000,100400200022410,100110201000134,114233330000221,102322011000003,102123304002000,112000004002402,102010224000100,100040340003012,100043004310410], + 100011024113021: [111003204111140,110200421002003,102101142002021,100403304320200,110200024432011,212240000101000,100210020430111,102110211120323,100233031002400,100310014101030], + 320401200021010: [112112402304310,112200122022200,114430104142400,100011040420210,111022002200300,100002000120011,110003042002123,101104004000220,101000120303002,101300240310433], + 201423042210004: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1423003010401040: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102312000240002,102012104010301,114123014001020,100004004303030,102001424000000], + 132001001231014: [102302340241312,100410410002011,110133000404002,102101224002210,112104230200100,110311232120010,122203322100011,114141142204022,102010010220014,110330022021224], + 1004030020020100: [110202000002301,100021401041100,114020000011320,114002204011413,102010111411204,103040020122222,100031001030010,103433144040432,102310201001420,102420321400201], + 200340004100220: [100032041021210,110004301222000,102040011121100,114310000001232,111322234130000,110104002010100,103100104000121,110024140142000,114304422323310,100212204243022], + 320023042101041: [101210320301302,100440024301100,100114104101001,101023221000031,101400014040400,102012034000402,102100122002001,101000011021414,114101000221221,114010214101003], + 1010104303302014: [114020000011320,111020032203301,100031001030010,101000210303342,103433144040432,112100034020100,112102204020000,102021104012002,101440400302320,103000121424330], + 320201430112001: [102220011110041,102144032001002,101004344002124,102402030203003,103022011400040,102011011133120,114411400000121,114023240040131,114310024002102,110423300004001], + 1024112110330043: [102000001132113,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,111321314133000,100004410120102,111222214101043,114412142320040], + 123320213104000: [104100002100221,101200011020000,112000044002102,111300220000230,114110032343001,102230021122000,100031224102002,431300131230002,102001024011010,100010004130413], + 101210010120004: [101444024041143,114121002310100,110000010033022,100001101023021,110200332041001,102020032000000,102140101342121,102023214001142,114002004033124,121012301123040], + 122400302230121: [101220040300414,114410002324204,403111002011011,1140104002020100,104402130010100,103100001242220,101201220402420,1040212001001234,1001120000022000], + 1011133000312204: [110111111010000,100001114111300,114120014004003,110300021330100,110131311200401,112400114041020,100100441000034,110242140012303,101030004000120,110441222110003], + 1403244101212021: [102440011414040,102010244010004,102031004010230,114121002310033,102122014003000,100020004100000,100211001000020,110201222031001,111101202241011,112302311103001], + 212111014111300: [110000411313130,110400000001201,110000010430211,110001212130303,111403414421302,101221311022241,110100231202400,110020102102000,100000201022030,100402021012201], + 200042300340212: [102133011413110,111001200041102,114022424102243,101223020300040,102034324000220,102022400203211,101230020303000,111340130010314,110200422121211,101214240300041], + 1003002200122031: [100413311002132,112220322030220,110210301200101,110400241240242,110023102103200,102400140230123,102112300222001,102000024010002,103302020111204,114113020221100], + 1023040031411001: [114001210033034,100012200002000,102000141104022,111221102222020,102102010211012,100230220410213,110210002100320,102100220220023,101111211012031,101213110301020], + 1100211204102022: [110213100122010,101212101023221,110213001300231,112120222020002,102130100222100,110200204432001,102020411123201,103024041421002,102200034042002,102030004010204], + 200041001110112: [102242320200020,140203123020300,102101244022242,102010011011210,102013131134030,103312010110013,102004004010011,114101042313041,122112024242100,141000201412111], + 201200000121142: [102021001132040,102301004110004,110402420402001,110021021210300,110404000000012,102000101120123,110221022101104,100020311220412,110123004401121,102203031121210], + 112120004022400: [110011414240022,111142010020301,100000144104100,112114324040000,102124031023100,100204104320231,114002104020100,101032001032200,103132004002020,102001204001021], + 1122002100013102: [110130432010223,101023312403223,100421310020001,111220012220010,111102302241002,110200002132202,112441000200100,114100040223000,103020000002031,101144124202103], + 1000100122031223: [111210000001101,114013400011030,101201104040034,101020111030400,103004104010210,100202200003011,103210210100210,101013101033100,102204204042220,110100301000100], + 1010020431322121: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,111001224121320,104042022102100,104030002100140,103421124042304], + 300000003200320: [102210011101414,102110201342300,102102011401410,114032124013234,102143020230411,101340141003001,101210100300100,101014424010103,100102014301210,102043024010103], + 130114241002003: [114213004100220,100241210430100,101220301021003,110032424422200,100231411001200,102014031102230,100130044231012,100000230400204,101210014040333,114411330004112], + 100120010200012: [102432004021410,102111120200030], + 210112341303120: [110400022010030,100214121000000,100042034200032,102011041100210,101400240300010,110002131200133,102412241111002,100424104302020,101013234000010,101122420322200], + 100003310020001: [102334004110232,110002002000100,103013000104404,112200102024122,103000034003300,102011000200113,101000100322140,100000040001141,110002001231100,114010010002314], + 222124002003130: [103202004001120,100120204003012,1300022002310414], + 130343014011100: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 1002110232010033: [111102440020002,101202001024340,103312010113222,110130022140122,112002304004203,100034110413403,101030040320021,102123411402002,110100042013221,101042201030422], + 1120112042000122: [100220034323210,112121212300101,100001124102222,100400100022003,114420002322000,101200034044300,102204044042410,100020310010001,102220001112023,114302014032021], + 112211200402101: [111220204101421,110042120021013,101001010300011,114012020044224,102122401340101,110021020001220,110112030401012,111112204404021,113030210140400,100030120004242], + 1002140220101040: [110411104220124,114210412314301,110112202140320,110041024412043,114410302313304,100144320410201,114442002310100,101101001100002,103102121242202,112024402004000], + 103120100230203: [100034244210020,102012004000003,100411000030110,100041014210020,102041201121230,100000030100102,101012400320002,100002131000002,101001244010120,102041104001132], + 121001031130240: [100003211020020,111000240044102,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100330204322010,102111211401000,100122124300402], + 1101000200000322: [112213102031413,100340311000202,103100011242104,110001044200212,102102000202442,101100301110000,110122022042030,100220201000000,101010000300401,112012022340101], + 104123333420233: [110013112004021,100100004100200,101021404000220,103120140210020,102143211343014,100112000410320,103002110114402,102012242000404,102100214000001,102012100200002], + 201201211000231: [111030212113431,102001111011201,103222004032000,110044320441241,102233034000002,110410122010102,110123011200000,101122404022022,110311110410340,100100200021431], + 1034100301040004: [112004210244200,110210010400143,101200400303422,112024424001400,102100220202200,101020301142101,112032142000000,102102044002304,112003420210300,102100321123023], + 1103322102400200: [110121100004131,102000301101102,111122200021102,114032234033303,110102022000200,102200034040443,102323004020100,103114211441300,112431104040041,100110204300200], + 1032000000001432: [114031022302044,102031011441221,102021201410011,114103020221100,102002024000132,114430412322343,102400004021004,102240021302000,103202140103403], + 1002103400401013: [111121100010021,110310034424102,100100010422000,100024201030210,110100001014311,110043400012000,102120400200312,102122134021133,110030401311204,100013014100101], + 101120210201211: [101020024001041,100200201000001,100422211004214,102100000210002,102121010210004,114013214010111,112224232044014,100010004210020,112002100240200,100001404100110], + 1413223440100023: [100310444310004,100211001204102,112333412022030,101411021100200,114303202300104,100210304340400,112020044000400,103230004000322,111201314412204,102100300233312], + 111412024243241: [100402230013203,112132400200233,102030441134200,102103024000200,101032041032203,100221114231001,101222024011320,100021304310000,100400022201011,100010004313023], + 100034304104031: [110112102211042,114314300012000,114200022300033,101400220303133,110431442110400,100100111041320,101420010300310,110000004210112,102334001004100,104100001240034], + 100000301314232: [111130312211003,103224041400220,111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,101001010300404,102410220200004,102100211340043], + 312300424003002: [100010400013202,101001201110100,100113201011032,102230000204000,102003134000001,112010420232040,100001324201100,101440004041103,110240220012030,100220410101001], + 1002010331200340: [111100114401014,110003112130100,103000230120042,100101141042243,102001221100211,103222010114132,101240204233201,100110004332200,100403211014030,102001004041400], + 1030121204003023: [104120011242011,101230114202200,114300000000002,100400000020230,114100124002210,102432044043002,114300124030100,102211020204231,112011204004112,100003000002034], + 113040023020204: [110002130002020,110112040101001,100031201033102,110004031320244,100211204030111,102111001023033,100212204221011,100024001042210,100120101042400,112130024024102], + 122322100020401: [112211122030420,101031201001231,102000010202042,102020001100001,102020324002022,112013012301132,102001104001214,111004410022000,102221241110321,124301340333312], + 104022213410100: [101000024010001,111101222101212,102001310224010,114000224102000,100112034103110,102000104012012,110101101241222,103021001412410,111200200000421,111024104121140], + 1040120000401000: [102103222002012,102010011411233,114004322320200,100403220020024,103102100122414,100121034230014,114322002322044,112040200210223,100002414310100,102042414010212], + 1404230111101211: [102013024000211,114021004011100,102140140310001,100402022200102,111010302203001,114144212340021,102110111023103,102302104112440,114100102341011,113112341020242], + 1000002000400321: [100024000110221,114130014001202,110010220103020,111004100022110,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000], + 1030120121200302: [114012304010103,102211034013100,101232404040100,100044000201201,103320304021024,100010214313120,112040022002231,114401322310000,101110404001000,100000000101012], + 100200200340202: [110010220040411,103100104000230,100303021002102,100010020101220,100310301002002,100021201031200,101221001202021,100301000142122,102101301342021,102324204022104], + 213102140031231: [101010001000031,100021020104221,111120024101141,103201214021013,100030220410304,100011034302423,114200144110020,102142002000002,114120424122030,102104432003102], + 112100003040201: [110201012032242,102011001134111,114102034001211,102302011002003,100314111000314,102311011001213,103222004034100,112401420204002,102002101100313,100000211001010], + 130120034003120: [114240324110412,110020000140010,110200012030221,110212010000420,110000001102000,112002002034420,100000014340041,100010300404300,110204321003100,101212210303021], + 120000142320021: [103122020213112,114101100211240,114122134140002,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112], + 1010111422021134: [110410000104042,100014014203233,111422100034314,100000040413000,102030414003000,121310232003222,141000013100220,100220021000033,102112104004041,101020041110132], + 130400102000042: [102041310200042,101000304014100,110301030010140,104100002101431,110221000111302,110100222001100,101010001002000,102030020224102,111330020002213,102011440201423], + 104110011124210: [101122001110002,114102002340031,102200011300300,100122101200000,110114022122200,102020020224002,111302004133300,110200340000130,110100040100302,114101040212102], + 1021022200102142: [102422110202040,102304030220404,114004200041442,103000101432004,110200402121012,100301111002101,100022000101100,112010042000010,102020001120230,100310011002143], + 1000404220210002: [104010100010424,103010014013304,102103030201001,100010221031023,100140000024021,101223024200014,112240404012020,101201024203004,104000021220030,112042430240120], + 343003000320410: [110013312204132], + 221202030120330: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1014114220020004: [100310120141002,103214010102022,102324014112020,102404021403141,103022021431010,103200020111014,100010004313001,103104200210410,100122020011232,100002200410030], + 1102000313013301: [110441234224400,114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,110013122130200,111403100030130,114020204102020,102402330230011], + 1202430201011220: [110400011311001,103300120141130,102110004000221,111144202220301,114224204100310,101434031010012,102304011004310,103101410212231,102100144001112,102000041441002], + 121424241101130: [110044320441241,110410122010102,101122404022022,110311110410340,102300104110220,114201122320100,102303014110142,101442104021041,103020040104002,112021000221430], + 1002221400234232: [110204400000120,100000121020303,103122114004113,100200020431202,101344140314114,110020004203240,112001202031004,102110001141443,100020010420242,110001040133002], + 300001012000400: [102020100211004,101023000340120,102241210201000,101012400320002,100002131000002,114040222301101,102140110210424,101201000300222,101002020342202,112004044022023], + 1402010301022130: [110000000003200,111401200000040,102300122004231,101041204222101,100024024211001,102110001342114,114342044032200,102330311004110,114032110040320,111203012221030], + 1111040034440220: [102340221000300,101000130320340,100110020031042,100220124221000,100402002201002,101011014002032,101002201140040,100211000412142,101010010320010,100141021004020], + 1133024112120201: [101232314010241,100301300121100,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,100414004300100,112102232300222,102200000201120], + 1004122020334002: [102120010200131,102044104002014,100000204214001,102022000220004,103001220104301,100102434300310,102004004004200,100421200001003,114024200040223,112010004020300], + 1022122220000220: [112401024044240,101222121020001,102000230223303,101004020340241,102012201412022,102101021341021,102143112001423,100003211021332,103202034020000,103002144021100], + 120422002400140: [103020401400041,102020111124232,110042042002231,100100031020131,101000321141220,100141034102022,103000204000002,100030041031020,100403110013000,100400230013130], + 1040020000442222: [112010121120420,101401014022004,101204011000210,103000001240214,111104040020043,114132404003001,102001000200101,101102001111120,100114210414111,101010104000142], + 1041002420020314: [100301300140011,102022420220121,100030031220122,103210000102210,100001301214030,111140000012120,110010201320213,110103010011301,101010404001431,103012204004212], + 124004200104402: [112030004004130,101340041000104,100000034301140,102111011142022,110211130002000,101420000330441,101040111003030,114022102300021,100023104101112,110140342044321], + 1010204014240103: [100001020120010,100103030001121], + 1432421112203400: [102114340204022,101000011030111,1303043020124234,1142022100220102,111143400421100,1212333103010100,4002031124040120,1001002042020200], + 121132013002022: [100040014331413,110130104401101,102040044001211,110044200021204,100220301003101,110004402010202,100023234240221,101410100302222,102130204000301,102111000210000], + 124100110113300: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 113001000112022: [114430202311020,110302140014102,110431341000014,100342121000040,114411202310423,103021121400104,100020041044202,100011041020300,102140004000231,114021102303340], + 101102130002210: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000,100010044101002], + 204030401130004: [102230040200031,110122001010214,102023301102400,100030414300112,114043140010022,104120110010402,111010214402000,110303104423010,102000324040402,100100401040001], + 1102240210123102: [100021200124422,100022211042104,114020132303131,102020014002022,110022120020002,100300421002040,102040004010020,110004021102300,100400322200003,100002000002212], + 114122013002030: [101230114202200,100400000020230,114300124030100,100202031002101,112411140200242,100121114230123,102321014111202,110020004204120,102102334000400,102412001111203], + 323204032022014: [100140201011204,101203104200224,112010030221031,100140000024021,101223024200014,112240404012020,110110210012111,112122004020414,102000220204011,101201024203004], + 123210000212012: [100120011004032,101100400333023,100303111202002,101003201030041,112314322001102,100421320432102], + 210111302310000: [112224111100141,100040134340044,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031,102041210224224,110240411110010], + 114000220112010: [114101020033111,112202212040211,103020004000410,110004022101020,110142301120031,102032001030043,114211224002144,102001441133310,100202424301111,102020001321030], + 1010004402301311: [103130424000200,114010204012441,114000240030002,114002322300200,103244034020020,103201034020234,114013402304000,114043342241044,102240101123140,112002122000310], + 1004010101034400: [110213100122010,101212101023221,110213001300231,112120222020002,102130100222100,110200204432001,102020411123201,103024041421002,102030004010204,100104011041221], + 1122231242203212: [100220210034042,101210004011003,101230044012202,114000012334010,114302200002200,110010204412200,114412402323000,103021304001000,100014041020302,103023001420101], + 1120004030200000: [114113104123200,101210210300031,110002021121023,102300040221403,102201100200430,100114021040000,100021020412110,103110000223000,103000210120000,100014001041210], + 1440001443102401: [101302134233230,100000130010033,114102224000201,100022021041122,100020001042002,100013011020311,102103331400000,100120041020012,100020001041231,102012204000242], + 1002020201230240: [100000131032010,102300011004200,101010001030220,100012200101131,110032302102400,100140204233112,101042141032030,111020134112040,103403044001110,111012020040441], + 1104432224020024: [110000001324024,103100314001030,101020111001331,100040301042132,101000001111200,114010040023411,102300404024300,102110001342011,100402120030401,102001010222103], + 201141101111313: [102110000203003,101010234004042,114002010040032,100400012201120,110311011330111,101204014010434,102020022000021,102000114010020,102102000312101,100220204342200], + 114440004442103: [100410231010401,100020104312003,103101000124210,101421104043100,114110000002020,100410124304100,120111111221111,100040400100302,112240222024012,101010101140202], + 1044124201010001: [114311022304002,110421002110220,103020101244010,101300010310004,100123100000010,110301130112204,102111004000012,101031001020222,101020014002021,112111104043211], + 1044120100040200: [103340041403223,112002110220340,102002220221002,114100234004010,100030410102000,112240334012440,100000221020014,102101010210022,102003224000022,100010031222001], + 1202110101013440: [100121230031032,112000431120410,100122200012014,102120400212001,103042024040104,102304104110001,100104211044110,114241222321321,114313022302101,114021002302020], + 310001101000412: [112224111100141,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110021340020022,110210020104031,113130020101411], + 1111000400112004: [101004201002001,103112010213010,112200410200142,101212000301013,111400002102112,100034100124302,1320102201231021,100000211020034,100000040413022,101000000323000], + 1021303301042404: [100002201031130,102003104011100,110011024414011,100011104344414,103300204014142,114203022320321,411231400122100,114201130210110,104103100010141,111101222240010], + 1030212041030224: [110100034204020,114030020020301,110000030020101,110402040103431,101220011020043,101410101102110,101000040321140,114233210000102,114403334142212,112424004044002], + 1104430130322133: [114413100031332,102101001412002,100210000032130,214000110100040,103031420121210,112114222301010,110133330100020,100001001203011,102210220202130,102200120234012], + 122133411003003: [110010020020011,103141100120000,101200400303000,112314202020400,112400002013000,112314212000021,100010210000422,114310424030011,102000214004031,101001134014021], + 302002120320231: [103130021444021,101400004022210,102031021441200,102300031004340,102312301104422,101200020303202,100000411002023,102303200241200,102140202001100,100022200121301], + 122410120011244: [100010021034321,100031004101422,112013012301132,102001104001214,112100140200020,114214220001140,103144001420031,114024104100321,130040244231421,114311002324012], + 1100130002121102: [112213000200301,100003224334120,110202120003032,102410434000220,110110440020002,110202022102130,100001304103100,103340300113103,111121014422331,110210102122100], + 1400204220112410: [100221424320111,100203104322011,100021101021200,103240321400010,102010134012140,101204211020322,111102002240013,100011411040002,101002114000002,114010000020004], + 1041022020031240: [100031034311401,102000200200301,100104211044110,110200101200402,114241222321321,114013124030022,114104200220022,100034124101023,100022001221001,111010024402022], + 100140112230042: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114421242204443,100000301221024,101224322120022,110104422010121,114100200002120], + 102020100011102: [100000241020300,110000100022040,111021030042411,100302420120212,110131011000142,100201134320102,110000302122001,103302031401001,110202012020000,110043414212400], + 1011020220440242: [102400340230442,102100244130003,101000400320004,103220004020002,110320024422220,110003011010210,110220231211201,111211232220002,114123134000320,101000110323132], + 133220000001222: [101011321003202,114200204000420,102000031133000,102101401342211,112300210210310,100122300411032,110044121211040,100410130034202,100112004034240,101023244041002], + 100123004300302: [102101211411000,110010232004000,100102224033421,100400110020244,102021001411110,110041102012100,114222010213042,100022014302423,114011120010030,102310100243242], + 121211100240203: [114004142244000,102002004012310,110000011220204,111200024102040,101330120302103,102111301402121,100021204341100,102331011001020,103002104011000,101210041020340], + 101310240040224: [101042410301221,100102024100020,110040344210011,100003320401100,112143144020012,103033044023040,103231224012042,101000001001104,100110121040003,114211410004214], + 1104010440011401: [110000002100440,111214100000104,100430221011100,110422010000200,103112021442033,110213401202110,100400440012042,110044014410012,110030231214100,111121012243322], + 210140211040201: [110002004410202,112041002002124,140343100002103,100001424102041,111432124414000,410423004242042,100001222200102,102000004002001,100400422200410,112410122010012], + 240120313012101: [102400040202040,100102011010403,103121420214211,101022344001121,101314041002010,103222014000001,103000121400401,110000221104000,111210022244041,114000010012010], + 100032012041130: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,114201104111034,102310140240012,100014204201000,102103321411004], + 101202230003021: [104132340011314,102203304123030,114012040020310,103132004002242,110000212104130,110200200004002,114131040224332,100123020032031,121002023311103,100021124203441], + 202204101440400: [100341320422234,110020422002214,110110132041402,111010430000202,101040214002020,101404114023200,111022124400200,112034310220200,113200210100211], + 1000011102304301: [110100200030100,111300030012334,110012000141104,140300020110000,100003301030120,110132020031210,100101004230030,103044004034040,102300231000210,102412140201410], + 224003030221012: [100001104314010,114441040000300,114003044024423,102311422001002,110022000421200,101132021101004,103314000101210,100110000031033,101210104011000,111111024101000], + 1000200020020031: [112312122020210,110332000010101,110022331320122,110000030132210,114002004103231,100001004311313,101403030300132,102321021102143,103123204002120,101010011001214], + 212000120431123: [110003000042343,100020341001100,102304000241010,110011000043131,114102400001020,110220201301140,102414424041004,100022221044012,110312300010200,103214210103210], + 1001302000231100: [100414204320344,100002314210021,114220102332012,102310001001001,101011431002033,101322204220222,100010101021044,102040214004110,100012201040023,100420311002420], + 1102212004214200: [110020001310000,110214024430312,100011014100041,100310201003000,110412121110214,100212341003212,110142300120000,112013212032000,112010220224003,112001040231401], + 101100134000304: [102314220240000,114210034112304,100014201221340,100400000013012,100044240002100,110122200000100,110313204431110,110211042120021,111210200002411,102302210211000], + 130033304044002: [103111001422000,111244302220204,100042100102211,102110030200120,100202140000111,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 111004020241333: [111030212113431,110001030120020,102001111011201,103222004032000,110044320441241,102233034000002,112130004021000,110311110410340,100100200021431,112101202012010], + 111040010211310: [103024420121003], + 1002300013001013: [100222004320102,100110004103122,103020200141000,102414034040100,100022304302043,103031300144042,100000111034100,103132114002002,100412200002013,114312004002020], + 1022020000021003: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 100200010401011: [100040014331413,100213020430224,110130104401101,102040044001211,101001004001001,110004402010202,102130204000301,102200210202001,112402204042100,102111000210000], + 1122100000040100: [103100030100010,114034220041220,100042000102010,102013000202010,100200001210240,112010022302321,103204101402321,114233034103301,100110204101020,100004321032032], + 101010000102100: [100000020004101,110130014400011,110011232100412,100220040142222,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300], + 1123110410210020: [102310000222133,100101220021240,102220011122100,112013032002214,101404441100012,112123102010143,102130201140012,112422320200210,112100211100021,100021300412024], + 1102110012000103: [102401030231212,114020012211143,100014011034234,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,100000324303120,102433214043112], + 221220202002000: [103100314001030,111201000013222,100402120030401,103300024014002,114211202324143,101203211010000,101200314040213,101021104212100,102100022002102,103031000121000], + 102012020210411: [103232014032341,103000001402120,101022000320120,111140130020034,132202044122440,100100104032130,111300224132411,100020314304002,101424324042012,102100004001040], + 1000120104010320: [110101124221101,101421000301032,102121122000024,102301004113010,101004004003140,112020300223020,114020014100200,110002002104100,102222102020220,101300201001121], + 1110200001311430: [101200001021021,114100210002204,100202421000201,111011022203204,100040204101003,103102014030320,110104110101023,100410024302300,100302001000220,103210031422000], + 112410003021011: [111002100000102,114021010040140,114222302321101,102101024002121,110014024202014,110220130100010,100020011030330,102404221402210,110203022032320,101222014230110], + 124000000130411: [100001004330113,100311304010012,101104300320030,101120101101310,101000100343012,100103404234443,102020010244020,111013104440122,102202130204021,110000142132013], + 100333140040342: [102120140212001,114400210002021,103103221421013,102010002000402,100240011000013,114233112330324,114213004000003,100044001020100,100000300410101,102034011441041], + 1021400101210102: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102122412001012,102311120222404,114020404020132], + 120100010220201: [102142221342202,102001200221011,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420], + 110000010300212: [110120100120032,114010140023413,102003201410111,103222004000111,102431204040221,101221001021011,100301100420002,100040200001201,112000000210003,100000211231010], + 1103321010030130: [100023101001004,102001014013004,103210210100210,101043004211000,102120230212201,100014200010022,102120011340024,101004204210100,114031424101013,100002121021340], + 121221324324222: [103021220104200,100021020104220,102120001343001,114202332330220,112000210211020,100010324210003,103043011400000,114100210002313,100022124101240,102300200210240], + 114022020222200: [100032041021210,110001041213031,101110044200100,110414300030001,100030020011022,111202012222402,102000221442214,102040041320010,102402104022000,103203401400132], + 100122314120030: [114201402332241,114211030021301,210412232040000,114030214020000,102230104030012,103011101400213,112000102000100,121120101242321,144201000012040,112030040224030], + 102034021220430: [103134014000340,104103100010141,111101222240010,100040210411102,100110004102034,102040140220220,114010400014304,114300132321233,110000140032001,102033340222200], + 221010011014302: [100121230031032,100122200012014,102120400212001,100104211044110,114241222321321,114313022302101,114021002302020,102313204114304,100013200100011,112100102300200], + 1044102440002010: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,103142111441040,110104002010100], + 1042010202200013: [102342214020012,100214104301120,102421004041011,103000404000100,100040004331010,101203001022300,102320234112041,112420030202242,110012021200100,100000220000004], + 101330021401231: [100002100412200,103200000101100,114200002331000,101012220324031,103042004010003,103320424022421,110410412110241,114203134112000,114220034000000,102133020200241], + 104122144011423: [101023101033021,103020134004314,110242410001011,110131211140311,102202100240010,110000121220010,100400130020302,111220340010010,114000004020044,114200022320103], + 104021022122200: [102420302023011,101100401113220,101402004040110,114220402322030,100000010402211,104303003022324,100210213323004,110221320110211,100402032000143,100404020040102], + 1102101004130301: [110310404422210,111030222201023,111001200003214,111230322242002,101220034202221,102200010204000,100031000413030,100130241010201,102010000203220,103024031430001], + 1100200032242224: [110141201302122,100000411231000,100023001222000,103140021211010,101002124002220,100101004230030,102103012004030,114034000012210,101044004000132,114114004140010], + 1030200004002214: [110200004243223,100000021030000,101000204001222,100033400410104,114102302311130,100413300430300,110020122000000,103144401421000,102240001100210,102120204022100], + 1031240121020103: [100042320001030,110024001010110,100100014300230,102043104010014,100001004300242,111120044100110,102200201110443,114240314000100,101002411030000,102002324011002], + 120103201012310: [114032104100141,101213114040141,102210101002412,111140100011101,103220120212134,112001144002010,111103314101000,100012011022000,114140104122430,102021241324040], + 1040000003000010: [100002044211310,102320221000230,112102200200001,1300001101120141,242022202122014,100001000100000,103014004000240,101141224002302,103430000133134,111043124112002], + 120010104011202: [110102042010220,101020124000413,111210000001101,114013400011030,101201104040034,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 1043043042131340: [101022014222024,102203344011410,100021324100000,102103430210003,100012014300120,110100120400020,102414014022212,100032000101014,101430211012120,100204021000012], + 1130012201033220: [102400010200011,101002041000124,101413321300222,102122001404300,102012421124224,1211200120132310,103313431403212,110222202033213,114310224030143,111214003022100], + 1020110402111022: [112004300230022,102300030220022,103201311412000,110202001000101,101022130300021,102202101300230,111200004440204,114000102304201,112010101111102,110243100000014], + 1430140000003320: [102202204040010,114200402332011,103333040110114,101022200343023,102000000221222,102011014001111,102331201001140,102101001342004,102103001414002,102022011101012], + 332121301003040: [110403302023130,110001004204310,100010311020030,100020000200000,100141230020203,101031121003021,100200120030203,103111201443022,110101214400030,114104040220130], + 1120411220011023: [100200101000000,103110431441100,100011004340114,100011200121231,111201102224324,114040020021023,111230114102201,114201102342110,101400300300111,114430204112100], + 1020124010031010: [102100404000000,101144424002230,100040240023421,110200110001001,100012421031241,110012110022022,100010211220210,101401011014022,112402412301221,110112031341002], + 140012210440003: [101000410321210,102001041100103,111102324104110,114021004100002,101300201001300,102100221400312,102010101130220,102304331000110,114000100041333,102330324110001], + 102001000022012: [100010104331200,110010104201022,100012031032234,111132300020000,100022301030201,110302030004323,103040301410224,100040010000023,111000302232021,110220422230001], + 214200213000024: [104100012102004,110030002000422,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110301311303102,110021232000021], + 1013100140111003: [110101124221101,103300014023010,101421000301032,102121122000024,102301004113010,101004004003140,114020014100200,102320214110001,114411004143412,114000312331020], + 1041002013030001: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102], + 1040340203100012: [100410100030211,114110034120300,102410031403042,102320241001011,102013300200042,101001030303020,112410140202000,111300204123114,114040104103220,100020310101012], + 1000020244020400: [111300232202103,110122120100022,111100424100021,110111121011004,103001020104102,100242444300104,110002202001202,110200422113400,110022300021012,112000000223310], + 102100030020410: [103044301431001,102101142002021,102010220220022,102301044020300,103211001412040,101004114210003,100403304320200,102202030203203,102213241100111,110200024432011], + 1000003400010004: [110023002000211,110031240011133,110010000002013,101140021101302,102401231110301,102010404010110,101002301110132,100001101040302,101400001014101,103232330101002], + 103100402200010: [101000141031222,102000421131000,102020111324004,100421242201010,110200200001000,114023024101231,101410114043204,102101041341001,112431402022004,110022411320200], + 1004004001004223: [102111432002020,110211341302302,112012002311040,112011020211403,103200021200400,103040310110122,100323420421134,114121220031320,103210400104101,111011044400101], + 220122010024032: [112012111114213,102230004030112,100100221012100,1002022012411300,214021333002200,112102000202302,103013200104400,100130401022113,111103304400022,112001421111242], + 102043123002200: [114000042302220,112100404022020,102141300232324,102301024110000,102020201410111,103002421431302,112033432004122,102341100242122,200030234030020,100310221003110], + 210020003213120: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231,114022400020320], + 1040024313000030: [114134334101203,103004010113000,100431024302303,112004020202021,111201002224213,101110311041004,110101100030120,100413201001140,100211020412021,100100024030402], + 201120302001024: [101020100322242,114300420002320,102000220240200,100320220142241,102023231442022,100012004201010,100120201022022,110020040002032,111220432220020,114202304110422], + 121222222024013: [110202000002301,100021401041100,114020000011320,114002204011413,102010111411204,103040020122222,100031001030010,103433144040432,102310201001420,102031200220232], + 101202201302202: [100040401020114,114202400210000,100302014210100,114011012304232,100043111020130,112001201110014,110213300002210,102402200200000,114103040222002,101020124210122], + 1040441010340224: [111212022200012,111412020003222,103021020002400,103031041402200,110231202040203,110302242202220,103010441402001,111121004402312,101110231041223,103221000100141], + 142101230030010: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 323101010222201: [101012400304201,100031044300340,103212014020132,102102030214401,102021420233130,103220300101010,100102104301413,111130410020021,101022000302211,101232020300432], + 100003431201032: [101444024041143,114121002310100,100001101023021,103020001400040,110200332041001,102020032000000,114004020010203,102023214001142,114002004033124,102222420200211], + 1012034133040002: [101010020320410,114003202303312,120000042021310,102103404004000,100300414022102,100000204100420,100221040432012,102110244130222,111202012220424,114121102204304], + 1132311020100101: [100000001220044,102022200220022,102140114001021,100040400100203,102410111110002,100101041040330,102000100210400,114102302311211,114034400040402,102122000212204], + 200314001211101: [110212214400114,103001001421100,101230011021204,110201110001030,102302000242323,114200022331002,102330104033012,102214401124121,100002001003103,114004200010210], + 220242102101030: [102101401400100,103032104010203], + 210330221122011: [100030204300220,101021334000222,114010122330030,100011024201101,111222442222413,110030122102303,103044001412002,102211124032000,110400200000240,110101301000001], + 100334401132240: [102023104002000,110230010000000,111114010020011,100011014101313,102011114000320,100001204302200,102100101140030,103120334003000,100000004204201,114002104011010], + 213434010220231: [110024021040134,101230044012202,110301001232000,114000012334010,102001201443121,102101320234011,102400204022024,102002101410204,102321400210323,102111002004022], + 1030020200302040: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,103222114034232,101110404021211,103110041442122,114210400000112], + 103022012003010: [111220202240410,110114002004014,100010114200031,102341041000204,110040112132130,101224110303300,110003020001402,100204004121023,110100200402003,114001000010302], + 1040210203231102: [103122114004113,102242301122200,110030110122402,101344140314114,102100201400122,102110001141443,100011111022300,102001011120002,114032300011302,100234004033234], + 102204211320000: [100002021042230,102122220214101,114011244103110,110022224202024,114112012310000,100120210410001,114043402214302,100104210400100,110213042222211,110002100132300], + 320200002321230: [110032211204214,112002132303300,114420232314210,110103101002440,112432104012111,101104100331011,110130240011301,102002410220200,102002101410044,102002104011330], + 1102023031211402: [110430000400002,111121102240240,100101130423301,114000100020002,100040321020030,100400000010033,100400000013010,100022224212020,112020002002301,102003320200100], + 1010111201314040: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1032202230012124: [102000034011002,103204000110000,100001014340021,114203202330210,110214110004122,112032000211000,102300121000111,102331221102213,114212000211101,110021204411214], + 1010021201242342: [101210121032211,111310114132200,100002311224241,110430030000213,112031204023020,100022211040222,103043001412001,114332202301021,110002030413104,110041302001023], + 220013411003310: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101042001021012,101100104002023,103230011412301,100102001000000], + 1020141212421032: [104404322124241,102032031130301,114030234020304,102200124012000,114002120023020,114421000001111,121400013334402,114413200000230,100103201040210,144000213202010], + 132221102102000: [101400004022112,102200000200201,103110020210000,100022141030334,103200211410311,102100404021014,102303001102431,111441004421100,102000200223003,112030222004121], + 1020000001300010: [114200212322001,100401210020002,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101,110431022023040], + 1130331004102100: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 1141240012302340: [110011414240022,112004202302034,102100104000040,100010044300003,112120224040040,103301410110110,102124031023100,100204104320231,114002104020100,101032001032200], + 1041403000014002: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 100110011012100: [114110002202241,102102004030020,100002000000003,114000012210041,102002100202041,110301302001430,101023010304010,101131011104040,110000012230024,112010130232300], + 1001244040010101: [110001041213031,102300324010203,102100142002204,102040011121100,110113004402201,110104002010100,100030024303023,102042204000300,100001134100120,114023214101310], + 1022021010400001: [101201211002121,113220210222001], + 1014210214100020: [100404404302042,114010010024103,114020444100202,100004004210020,110202220010410,104100010014103,100404000020300,114241034113010,100014044200222,102110142004430], + 124332301200240: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 131010000020202: [114221114103012,112120120202201,102010440220124,102122211440420,114133102311014,114400004140002,102303104110000,114444200000122,100244001003311,102200204033100], + 1120302040122310: [110200100002031,101420310301020,100020330100100,1002443410030003,111103224103001,100011231042030,102100141413100,102110021342213,112002310211210,100010031020102], + 1011443132101100: [101230002122040,111124004101012,101210241204043,104102040011120,114103220220104,102120004001310,102430121110340,102020121102120,112141104020201,101200111020111], + 1010200033100003: [110220122044010,110042304412204,114020124021122,100002201003312,110110111010042,102230121120000,103300001402013,100400010013330,102204011110020,112111400203031], + 302000003030010: [112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,110030222130000,101022440300020,101402010301000,103140120112001,110204434434200], + 1122104440001011: [103030420104431,101421001011423,100444010421002,101040214213002,114033010011401,102222320200001,102304014110202,112002040214231,111100300024000,114203000003434], + 244342100044030: [114001204020002,102010221411024,114230000001013,112012040220020,100010201030300,112420104040020,100233014224240,100403430013124,102030001131120,101002100322211], + 1023201001004030: [114031022302044,102031011441221,114103020221100,102012030213014,102003320200411,102002024000132,112440114040203,101044001032114,100401001011010,110031200023240], + 1100202300000313: [100030130410021,100000020012240,100040034301300,101010244213120,100010001014210,102103210214042,100200100401300,101133024000013,110401030000402,100011404310200], + 1022200020001200: [100010400022200,102420221112201,101224044041002,100010344310042,102103214000210,100402012200112], + 232002320003011: [102022004012201,114201104111034,111130210020000,101022121001000,100000024210130,102034221103124,102300104110002,100024000101404,100020134212021,112001120220130], + 1130103021400102: [100000100100200,102010020203010,102200010200000,102001241410312,112102100423402,111131232212120,114444012310100,103140100210101,102323001001000,100020200120032], + 103200103012132: [111133110023322,100400024103122,102000021101201,102141300232324,101024401112120,101001440303020,102000124010400,103002224002043,110140141201202,112012030233024], + 1440130113021200: [110121100004131,102000301101102,111400214442024,111122200021102,114032234033303,101041100300001,100000020201032,110102022000200,102200034040443,102323004020100], + 1120320131223141: [101004120224442,100413311002132,100320421001431,101233021020010,110210301200101,111131102210013,110400241240242,101001024210000,102210101121104,102000324010303], + 1400300000440232: [100030010011002,101021301022041,1043303323011400,100402300013130,400040001020004,114200022340011,101201220402420,1001120000022000], + 1023020041401422: [101020414010211,101142004000232,101410021100102,100110004101000,100040020201004,102000034000000,112400200201000,102221204020110,100103121021000,112100020204342], + 220040241220103: [100002121043000,102400234020130,101202001022000,100133204300040,102000124002111,110400410030000,102320100242001,102200031002000,100101021012040,114021112304224], + 1101104002110311: [110200411140130,110114120120100,103124210100201,111014200024034,102301002004242,112020014000340,110021404214210,101003014210212,100130220400031,100210024300001], + 1004422144020030: [100023324302420,100104341010424,111121004103434,103111201422013,112203001103411,100212024121000,100001001033200,102441030231300,114121024121404,102304110220101], + 110320230001124: [100324400111300,110320024422004,110002022103210,103202210101000,110022004204211,100010200012114,100002030001021,100204244330221,100022024100220,104032200010101], + 1222121220311102: [100121230031032,112000431120410,100122200012014,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,100013200100011,114104200220022], + 112110002131310: [100310120141002,100004001021111,100301421002002,103022021431010,103200020111014,100010004313001,100003000104203,103104200210410,100002200410030,100121031014040], + 1420040230200021: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 111402100102040: [114042032210200,100011120101004,100000120412021,100030101041442,114242304004011,102302200241241,101202111022400,110201040003402,112211022031124,100004201233320], + 1400202004010010: [110201122032010,110422210003030,102112231410401,102430301112032,120123111200230,114002102211121,102300104033220,102322214020000,100222000432020,111012124400030], + 1011220020200204: [100002201031130,102003104011100,110011024414011,103300204014142,114203022320321,112234142031230,411231400122100,114201130210110,111101222240010,110430400101001], + 103324014001014: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100,114402104142102], + 1140200210334002: [100010441032031,114402414111240,101231211020143,100022021024200,102040444014121,100024100201424,101012011001200,100003014211000,102400204024124,103241134020044], + 102020002304410: [101121211101004,101114101012020,101001304001101,103000110142041,102002112041034,102041111020030,110022001201023,103101124003110,112401144042000,110002001231100], + 200342310201020: [100000211041234,101130000023030,100200400000010,101221200010202,102100014031110,101010101034002,100040001022001,110004342121110,100100340412100,110030104412010], + 322042110301230: [101301014221122,114110200212210,100102224033421,110012130410040,100104101200201,112201010203210,102021001411110,114222010213042,110041102012100,100120430411222], + 104204022104122: [112303041103203,102100111341030,102020231440400,102144200210031,102121104130242,114104220000003,100112011040312,101013200321014,111000220020441,102211304043141], + 100300143300020: [102111220202433,100100431001421,103030001240001], + 1040311120340120: [101000404014420,100020204211040,103010144014002,102020301413010,101112020330001,100021211030200,102220201302400,100023221020004,101012130300004,103001010101420], + 1004204203001024: [110102401201204,102200130202201,102414034040100,100212030414010,100412200002013,102020041321410,102301324112020,111340300010010,100120421044222,102110042001220], + 1110021032011401: [110200411140130,110103014401023,110130102010010,102301002004242,110001010030000,110102202013213,110021404214210,101003014210212,102024000201400,100130220400031], + 101101134034100: [110413340401411,100201104211021,100020104100331,100432034100300,100400040020030,114021140030212,110420241240103,100030200001122,100004341223313,101200101022022], + 132312120020420: [112113214020100,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004], + 1000233213201010: [101022000320420,104101000012210,111010200042110,102202030232200,101322130310304,102200110234042,102102330211000,110002001312200,100020014211012,114123000000123], + 1004002300202031: [110002022002032,110000242002021,110042130002002,110211114244021,101010000324423,102421340201120,112000020240422,100002204300121,110402332010103,111111110022110], + 1023001031200010: [110000212101040,110301011234204,114211102321011,102110221412210,103330421400224,102000200201422,102412004022002,100032204200023,100023211030203,102104301004310], + 1042101141021002: [100001401221100,101204241200204,104100212101311,110404013244040,110000001210300,101203134230142,110142101000021,110141004132001,204144002130204,100001131021011], + 1001200003422220: [100040020100400,110104010020022,110000300030110,110030010040441,112100300200332,101220030300042,112200211103401,103210310104102,100110204030443,101030004010100], + 300120022222042: [100114004100001,112102201102030,103222244003021,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,101100120334014,114233002340141], + 1010031331102220: [100003020421130,101120104004011,100333004310032,100402010020402,110120100120410,114220022321121,111202220001312,114024120021041,112004002002243,111010414402003], + 110301213122224: [100121014300312,111144004103013,112012030221400,112202022022311,111000002221010,103020031400120,102000114010112,100110024300032,100012431020010,110220442220001], + 100100220042201: [100020004313034,101400120320033,110430030000041,102140411342420,103243024040441,110021014412440,102020004000301,114114204001401,101042214000121,102000121102220], + 1103000100120411: [111112002210022,102024021130010,103211010211331,103200224020100,112012010230002], + 1140011020023200: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1102424111012101: [100210201001001,101000224223002,111120402212201,100101021021114,112240000413000,101040201112304,100100301021212,111011024411424,102130000312131,100000101223200], + 1010310132014010: [103102101422031,102100221340112,114002244103320,100000001020034,102101001412044,100012001020221,102001120222010,101000031144204,110221002033200,112103014021210], + 131033014100032: [104111102100000,110000102100212,110130042014110,102110410204321,114423100002212,100011401040040,111121012212042,110022134200011,112320030202004,110012102130100], + 1003003202420203: [103111420110210,102022400203211,101214240300041,112430210020301,101002110310112,114202044001301,102021001414200,110000014413004,100404400020001,102100124000134], + 121212202001201: [100020004313034,101400120320033,110430030000041,102140411342420,103243024040441,110021014412440,102020004000301,114114204001401,101042214000121,100014300000200], + 1102042200320021: [100200214321010,102303024110011,100010040412121,100001040112010,100030101033421,110002222104304,100013140102040,112003112302111,100000340413320,101011021020240], + 120111412313022: [102213210210004,101220121101403,112210141104023,234010311030401,100003030202011,110103420020232,100010041001440,102302421103304,103220010130113,101210020303000], + 1022413444114134: [102100221340112,100003414100400,100114104101001,114002244103320,101023221000031,102012034000402,102100122002001,101000011021414,102102201121020,101000214211011], + 204230100241112: [114202120000302,101000314012210,103204020100331,110414222010040,110000344201200,101044230300020,102100000201214,110220224213000,101032400342331,114014220021140], + 111140041000211: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 120041221022240: [101021134011012,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,110030410040101,101300401002320,101110434020010,114330002300133], + 1022031000130304: [104100421240110,110024042103114,110213012044343,111113004102021,100012130010240,101001101031102,100014014203023,100230114221102,110041221200014,102202121300311], + 1400210001031204: [100000000004323,100120001204102], + 122002222004211: [112224111100141,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110021340020022,110210020104031,113130020101411], + 1014120100001402: [102120031140142,101021204010011,100404410022320,103012101410102,102131304003000,100002204100101,102220220201011,100222044100141,101400000300101,102000110222120], + 1040010100200410: [100403200030000,102330130243430,112021400230000,111344004132104,101200044013000,110201010013331,110104120000112,110322102100121,102110031144222,111100024421114], + 230000002002020: [103114010100442,110400222110100,102120244001000,100002411024300,100112101040103,110304220401302,114120444000124,100110304233020,100104004030002,100101000402002], + 312000302021421: [110110402011142,110210014220001,100010010121321,102140011440001,110401112220304,101011220342010,110200004221020,112241202024021,101000001110010,102000300200231], + 202213100022144: [111101010010203,110110212010011,103120101441202,101002121003112,100004104210221,400014404414011,100000010101402,102010414013103,101201021022111,114100030221300], + 210000431200200: [110114001202122,100001010100220,114002114012041,100414031001210,102000004012011,114023102303000,110101100012002,110001002004240,100030220002102,111010024401332], + 102302210111114: [110012244202012,114220124140201,102032011134420,111410022220201,100240220112202,100001020001222,102210201010102,114104422324400], + 1102440343040140: [102402024000034,103012024004312,102214020242110,101140320330114,101010010300020,112120020230024,100000204100304], + 101020100040202: [111001440020003,102001000212142,110200020010003,114121000002140,100002214100100,102120104003011,110123042010000,102120402000014,100041000100422,114020002303212], + 103211040042400: [100041000411231,102140040210040,114204120210000,114110030002020,102010031444104,102410010201202,102202244040132,103303001400240,102442004024220,101224231020422], + 1122100041103333: [100400210010032,102011211321000,110010144200414,100142244232110,100210014343102,114002242203043,111122412110000,103201431202043,102423111110121,103400014003022], + 1412100222102320: [100003004302243,101221214042201,100210031002311,110001000134002,101203000300012,101002424000211,114102002341430,110420222224222,100214214101020,100000004311204], + 131012331014331: [103101200221334,102003040210002,110041001300210,100100304301220,103200004030010,100400414300130,110332030011233,114000210010231,100021101220000,100011104103200], + 110311413430130: [100122004300410,112400202020003,102000224000011,101212040303123,100021021000101,102030200240232,100011124202310,100030300124130,100001100013110,112233332034000], + 1141404232302001: [103310101401010,401300041114001,112003000230001,114000044101422,110003002010301,100003014101004,102001421410020,102001134000000,102004414001114,100420021000320], + 1010242010112220: [114034030020130,100000301031020,100221000031141,102422310203100,111120020014001,104130142103020,114224200210241,101010244002013,102343001000312,103400021212203], + 100030302212140: [110020301220324,100041000010302,102020100243032,100031001020040,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321,112003110242131], + 110204242100032: [101204004040140,114000224121024,110344021203140,102200310230230,103001134002100,112020002001230,100022020402123,110441340002101,112000030210004,1304211130012304], + 1140000210203143: [112132434020310,100000144104100,100013030100002,103340114022112,101014014000004,101033141030001,102111210230204,102200421003014,103214430100103,114000212300210], + 224400342004020: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110012101102100,102102304001200,100010040001210,102002020220000], + 132000014424004: [101021120323020,114111200034310,102001111412134,100001021030011,103230040101112,100010041032043,102110234020204,100004131024040,102441311400421,114020214033220], + 1010001003034302: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,102100014132110,100021304103002,114001012302043], + 102042304000030: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000,100010044101002], + 100304100012010: [100023341032000,110121001321020,111112402101001,131120400002024,101001024040001,111203444130002,101202110304201,103103243020231,130211430311301,100422021411001], + 310021030012401: [110000024201210,100044004100240,114403000001001,102020121321033,100000421021000,110010120042000,100024330000002,110102022041040,102101100232020,101002000310100], + 1100102002200001: [101400401012014,100403402200101,100213001002313,101001000200001,103140404001201,110024021232043,100402000020330,110421010000410,112210000412200,101024104000402], + 241242413100310: [101020000323002,112112014020004,100221020410001,114314004030042,100111001020220,110321132002134,100411000433012,100210024221001,110001101011030,111301030010001], + 1200202101100010: [110113004402201,100030414300112,102104020202131,101300401004400,111101222244101,114112324000301,110220022100020,111430412213000,112023202310000,113404132421101], + 1100431000211240: [110210000000201,110040421041000], + 103301003032000: [102301324112020,102100001400000,114404020002102,112102002010300,114013222204012,100011401030000,114212034001403,100000000012342,100044004301023,114012114030220], + 1011344402021011: [102230040200031,102442211414022,110122001010214,111010214402000,102101204000010,111231012220013,110022300420031,102000324040402,100100401040001,114230230000123], + 1433202202104010: [100002024201011,102004410220430,103220120212134,114200014001032,103013411431022,100344101004202,103044004012014,101040004222021,102400004020303,100001214210212], + 1030223414223014: [102200130202201,100001300012442,102414034040100,100412200002013,102133001404002,102301324112020,102400101111034,114102104124000,100120421044222,102240344041020], + 1022100200001100: [114130012310000,100210201001001,101100001101401,100243120430140,112214431102032,100210010430242,101411001011011,102211241120212,102130000312131,110120032013303], + 132000130034242: [102100200234203,110203204241122,110001214200042,112002242001000,100021111211003,112010204003014,102032220221210,101032240320040,112001302302020,100000004310202], + 1140124010014040: [101003114002014,100202121002020,112220000422230,112020031122001,110220020001020,100113414201210,112000000210212,101021200320340,100044100002002,110041001302020], + 130021204021211: [131402001003121,114420000001024,100304111000014,103300031403210,100022131043110,102010021413001,102040300202332,110010001011032,102100100230142,110030140000021], + 103004204041100: [114201102320021,100001004104043,102104241412020,112014402034232,100110100410210,102000000211031,114333212323001,100002214201101,111303034134331,101402041101020], + 101003100020334: [102010221411024,112012040220020,102430401401200,100201211003004,102030001131120,102221414000020,100011214104320,110004204420320,101230031023440,100023024342204], + 1140300100120200: [100113214302002,110000002133140,101233341022410,103021000144000,100040204240000,114100012313002,110023002200241,114440440000034,101004202403121,100304320140012], + 243122200030101: [102232120200100,112000142000331,112100302012200,100022341030311,102010100223003,102101001341304,111004314403022,100402100022022,100040210100004,112042002002400], + 1420240002010223: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 300002111204404: [114423002313120,103100010101002,102300041004010,100241020000000,101403004040100,103000140101310,102310204023400,103111240223100,113104030104020,114401010001000], + 1042020101004004: [110000112003030,114243240004343,110300024422133], + 210000320003221: [114130012310000,102112432004423,102402124022000,100243120430140,112214431102032,102032204000102,100400120013011,103011001244001,110120032013303,102101230310000], + 1440002200022022: [101022014222024,102203344011410,102103430210003,100012014300120,102414014022212,101004411032102,100032000101014,103030104000102,111311002224001,100032134101100], + 102014201101304: [102133011413110,114022424102243,101223020300040,103111420110210,102034324000220,102022400203211,101230020303000,111340130010314,101214240300041,110214220002020], + 1423223123210030: [110043132100300,1321200010022312,140403400240000,103002124003020,433402331200202,102222034401200,110030221221100,1330044041003024,111200100002230,402102020002420], + 100000004112013: [100100004100200,103120140210020,101432201010330,102143211343014,100112000410320,110124044400220,103002110114402,102012242000404,102100214000001,110233124211010], + 120142001110232: [114100204101002,101101230010000,114100020033022,101012034000001,102002100000102,103112021441120,110401101144000,103124201212022,100002001020202,100422100432000], + 111010000202013: [111200140000402,114303202300104,100210304340400,112020044000400,111201314412204,102000200204141,103220100102140,103041130110112,110023014202232,102220021304234], + 102142201040320: [101200100304010,100102000022402,100000001033001,101202404042303,100121231021002,101010200321022,112402002010210,102200231120202,101021220300001,101431311011102], + 102040200210010: [101013004002011,101300011002044,101011324004222,114000322300011,100002314302420,143310043400402,114411312312124,101010404213432,102110411342400,100022014100321], + 122024000000014: [110224314430000,102203301123001,103100134001001,100000001030003,103210400110122,114030314123101,101112020300011,100400201010000,111220020010043,114020142302420], + 1042200020200001: [110200400000020,100324140141402,103204301402123,103102224034002,111100100004430,110001001200323,110102111204210,103013100120001,102000000222203,101001301032024], + 100402243210110: [101220011200202,102211124010012,100411221010100,101420300301140,110102202210222,100200200003210,114213204002010,111311022202104,100414014102130,103030104000000], + 130000300220100: [100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110,101213110310042,101424044043122,112022221120403], + 322210210314001: [100121230031032,112000431120410,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,102313204114304,114013124030022,100013200100011], + 1100220132200013: [144131233204044,120130001004000,110400010031401,102220211120002,114112002313010,114014010033321,101400104042212,103441112000230,132042400010214,112030200211020], + 224121020102300: [110130314400100,100104010021241,114023142202040,114002014033200,100004301021110,101010124001000,100210224243223,102330020242041,114021300010020,114020214022000], + 122224100040420: [103001111221030,110042400130000,111200020004203,104101201240100,102301112004021,110000011012202,100201230412211,101301000314000,111010002110212,111121022221002], + 1123222000212401: [111200200000232,100101001011114,101430004040203,103122104002013,101020404210020,100000024301031,102220024122101,112022140234004,100143440001301,114102104121201], + 1010000022123200: [111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,101020031030240,111204000003031,100012004110024,102142000210040,103243411400000], + 1100003101030412: [102102430310202,102002301410122,101001414212120,102142020212310,103304004023413,100022201043312,111300032204432,102002410201020,114142200030000,100030001042331], + 221012000100001: [114030230020144,110000120020000,100100134234041,100340100422001,110010002103101,103042041243304,101410200110200,110104011001220,110120010011024,101013021021140], + 314343000100322: [110020000030400,103210220100310,102220000202044,100001104102110,103101030213102,111311304133413,100000004212021,102441030200210,111110200020323,112400332010200], + 122020214140410: [110033000022043,104412212102010,101230004040022,101021020324310,103140021211010,100020140121034,102340211000200,110414012023214,114021000044211,114000200010000], + 1110240400400121: [112002140242302,100022140001044,100010204103214,110013100422233,101214301020044,101213412120001,101001311004102,102202111100020,100100041020000,112412202010110], + 120100310012122: [100021311233000,110020200420132,103111104030033,102300024110101,111010204111010,111200302222011,112021221130424,100113144300434,100010010004402,102021310220414], + 100013303040013: [103100021440001,100120100032121,110000201324002,101200400331110,102200302000412,111201022200100,102100100210100,100002244341113,101000141033304,112400230200400], + 140000210113020: [101011000322203,101012130310043,114102344121242,102011001411100,100001410411142,114003300023020,114421102322111,103224324020100,101423004042333,102104020232002], + 103100220140000: [100000241020300,110002012000400,110020422131120,110043414212400,100402000010424,100002004301002,102000124000220,102113002001101,102140011343001,100030020010422], + 1002031233000321: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110003000024101,100010024302100,100000011020412,102022400210202,102003034011323], + 1001310141442432: [111210044131101,100021100013401,114032002303014,101242421020211,110310042021341,100204011000000,100000001224221,112301111130031,103123200101000,101002401002132], + 1020222312400100: [102210100313100,101200210302201,100004420014012,102240210240022,101040401032021,100102001040033,101242004043300,100002324211100,112100204041010,102024124011010], + 1000013340001010: [110000101304203,110040020001022,101104020300301,110010022003021,100401241014100,102101004000011,101401001010021,110033002000020,101200200300020,102010214004210], + 102401001142343: [110000000441321,100120004300000,101211011010400,100022411221040,110212300122200,100121004301043,102010021101132,111220204102302,100222401210112,111101210030022], + 140004212101020: [111020120021001,102422221110121,110120010013100,110410004221142,114003044024423,100432201000300,114022200011010,100011104302132,102103010200201,102040031124231], + 212430302310110: [104100002101431,110221000111302,110022140120012,111330020002213,102011440201423,100002204310140,110110210011002,100020320002000,110101210402402,111130042240210], + 103020323300000: [104244002023000,120133001040211,111320124130040,114012412200022,110000110000231,100142041012023,110000000411120,110302100010342,101301030313022,111440222100012], + 1023113301404241: [110002420020000,100020010010020,110003001101020,112011340213224,101300011002200,110311020011020,110002100043200,100204130001213,114441400031030,112213100413130], + 133011400041002: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,100111221011100,100023104101340], + 1431220014210200: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 113020202032132: [100422040021304,102000024011300,100002010413410,101011210300000,101002221140440,102040021424212,112400020200104,110324444424432,100100001010020,101000000322000], + 121021030422100: [103111001422000,111244302220204,100042100102211,102110030200120,101114000332010,112112211102024,114001032300011,100142044103021,114004014011110,101100010012423], + 1410010043031010: [103123041444340,114002322301113,101431311011102,102211201110013,102142002001031,114220110000102,1320030020310312,101210004012132,102223240200000,100102044302112], + 103221220012000: [100203321001221,112000210242204,100100224031000,103111001212300,102310400244210,110010112102022,112111040230130,100004101023023,102022304023433,103010041241404], + 1030010032040310: [111214100000104,102103034004032,100430221011100,110422010000200,103112021442033,110044014410012,110030231214100,111121012243322,110100144404220,102420024020120], + 130210202000000: [100020004313034,101400120320033,110430030000041,102140411342420,102020004000301,114114204001401,101042214000121,102000121102220,100014300000200,101031101024100], + 1001100022400112: [110001202003004,102114101444001,100022121031020,100103240011013,100020210101002,100042420003120,102300220220432,101020120322020,103130004003141,100043240102000], + 1041104220001241: [100001201220014,111001200041102,100210000032400,110200422121211,101213311020021,110040411222022,100041120200010,102303001003004,114010312213204,102140004002412], + 100202423330142: [102414440232000,104130210010324,102201204040211,110024102010002,103010034004303,101324030311010,101402001013023,111433000002144,101434300302410,101010231002430], + 1012022120223104: [100131424302300,102104004021010,112033000244420,104132001240113,111221000010010,114302044003120,112211222041401,102000100240000,100202234032222,114400220000013], + 101000002200242: [110421202022110,111142002114321,102101020220020,102030030202212,111420022210032,100023020100300,110013140400124,110103334401021,102201121001214,101000000341320], + 121041001123102: [103102101422031,102130124130100,103214021400010,110100022010014,111110420014032,103144220102102,100000001020034,114440020003320,102101001412044,100012001020221], + 122424002020134: [114400034111031,234010311030401,110002201200100,103120044002023,101121420321412,102210004034010,101010111030103,100430020420000,100422210013104,101210020303000], + 1201010010230040: [110010000111020,100430014323000,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101], + 131411004102021: [104100421240110,102001000212142,110024042103114,100024121030022,100012130010240,101001101031102,110020422130021,100014014203023,100230114221102,102040211440200], + 1000241110002220: [100020244100302,100002200412020,101320310311403,102024011413201,102331201001140,102103001414002,103222024031400,114001042203020,101002004010200,101102301100010], + 120410041211143: [111004122201200,101100104021220,110132200012004,110030441210222,100220134100412,1301000101110210,400142440224000,103022040121103,1441130121130001,113411000100230], + 1100122034120010: [100022001022231,102314032000332,102300001100200,110420020000202,102023024010033,100001144201220,114240010000411,111212204101240,103210031410020,114430000004001], + 242123101000102: [102000201100400,112123000200343,110034120023130,112121040200102,100134044003303,103002004002222,100121100111000,101001401032000,102000110220314,100143111222020], + 1030401420201234: [114020000030002,100201211003004,102014002000401,103103241421322,102030001131120,102221414000020,114121012340044,102000400240203,102104304023201,103310300140324], + 210010010404032: [101420104040010,101201201022032,111301210041010,114340002303220,100021204100214,103144224004012,111344320041124,101120011040200,110042004410444,102043040200002], + 100132312020010: [110042220002210,101112404231342,110011401011100,102221200204022,103021030102410,110430314220010,102423100202400,100004014300341,114100212211004,100020011230424], + 210200023300222: [100214121000000,100042034200032,102011041100210,100200021000412,101400240300010,110330000400112,110103041012020,102412241111002,100424104302020,101013234000010], + 110012141123341: [110320442100100,100030000104003,114020012204013,101020224003300,114422000000001,100411410002011,100044204210304,101200220300302,111201310013231,102100101320311], + 1011002011031422: [110000204210130,110222020012300,100100100422103,103101001422002,100021140000322,110010011212411,110102322040111,102002104011244,103230010114302,114010304010030], + 203002012302021: [100021414104212,100030001033120,111021004400020,100242000000002,110011114214043,102420314024020,114111202200420,110121002010041,100000101030212,100203041200002], + 1204213141330013: [100100021040144,114101404004011,100102404100430,114142044000010,111230032242001,102300200221021,114322222322000,100104020022212,114024104032203,102023110212012], + 102021222031240: [100020031000013,100024004310330,111100012111200,110410324244300,101001001000302,111034020021310,100110040411303,102101030311301,114121012211212,100223401013100], + 1001230102424402: [101004201002001,103112010213010,102121001410120,112200410200142,101212000301013,111400002102112,100034100124302,111112214101000,1320102201231021,100000040413022], + 320300002010000: [111101034100200,114003410040220,114021004101032,102001140221330,110332124420001,114221122320002,102010244010004,100000204310000,114104200000400,100011000410042], + 1010421111021020: [101230114202200,100400000020230,100002200103104,114300124030100,100431000032001,100202031002101,102021024004322,100121114230123,102102334000400,114323400212122], + 1010002000010022: [100000100100200,102010020203010,102033021130021,102200010200000,102001241410312,100000121042240,114444012310100,102330021000131,112041031114021,110400240002411], + 114210100203001: [103000104004220,110243010010124,101010340331320,111000024410303,101100424003101,100201401010000,100241131003241,111002212200000,100220310411013,140101212000204], + 1014111400001131: [103134014000340,104103100010141,111101222240010,100040210411102,100110004102034,102040140220220,114010400014304,114300132321233,110000140032001,102033340222200], + 101200430240230: [102421011111120,102100004004440,103423101410042,100012044303001,110113222010020,100220211001224,100042444310422,112220114010021], + 1004000044030131: [102300221004024,102031101124431,100003314102102,112224001100103,103100014000022,101144404004021,110020400130000,100411004100111,111010004110221,113114001024000], + 121021322032443: [114011114123044,103042141430211,114403210004014,101033214211000,114142044000010,102101404000000,114322222322000,102003104000032,103211301411024,101122124202002], + 1041103000010020: [110140300430002,100021300412300,100002430012110,100000211021200,111122000031124,103013000110110,102420244023112,114322402322100,114400244140102,100132300400011], + 213110000024004: [102003104011100,100011104344414,103300204014142,114203022320321,103134014000340,114201130210110,104103100010141,111101222240010,103110001420420,110014010003041], + 1020220102030020: [100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,103202014031021,110212424242341,100101014300100], + 1011201011001041: [110121200003300,111040104401311,110102031222030,104101041240101,102400304041032,103121004000420,100040311024300,114110020212130,102002102043132,110041300410101], + 1000123000003000: [111012034402110,114221004034110,102140014002141,111100104104202,102302000220440,102002204000124,100011230120014,101104024002242,114220144000001,100400010013033], + 113000000242010: [110000112003030,114243240004343,110300024422133], + 1143241300010200: [101202001024340,101041310301004,110021122100000,103312010113222,110130022140122,101003101000000,102232110201100,111203040002344,110000000143124,110100042013221], + 141023021411330: [110130102010010,110100030123401,102301002004242,110001010030000,104100302102030,103200030110000,110102202013213,110021404214210,101003014210212,110000242104040], + 101004000200213: [110033000022043,110100200030100,100000411231000,100023001222000,103140021211010,101002124002220,100101004230030,103044004034040,102103012004030,102300231000210], + 1000402020041412: [102322014113341,101022104001221,100040201012040,110021422000000,112021004003303,101120030330110,114100222310230,100011120000004,114131002342130,110002022003101], + 320000000232100: [110212214400114,110201110001030,112300020201040,111200400003200,102330104033012,102214401124121,100002001003103,114004200010210,110200010000103,100001214300200], + 224230410221210: [114000120041100,110100002012444,110313012100114,100210304340301,114000222300110,100022201021001,114001212303000,110012200403213,100103244100022,114422104110002], + 213202220224013: [100010101043200,100030100004000,101001221022240,100401320020240,110201222120421,101000011020103,114121202312210,102212040312301,110010402103240,100020120112303], + 113012032020401: [101041301000320,100210104322421,110100001200142,103242311400421,100020001224324,100022340021012,102002001133122,110010204412200,110240010100402,102100220230201], + 104040021000211: [111122100010330,102302231004020,102110031342012,103001000141212,101202104010412,114234414102011,103211324003020,114014442200003,100103121044231,100101201041310], + 1101010001230030: [110402402020010,112421302011301,101023431001040,110001210120320,110300404422030,111024100022301,110200310012010,110102110124010,100000404341421,110000022100112], + 121144003201141: [114211010000210,110200020110120,100003040101420,101440004020212,102234400200230,110100201000100,100000004210012,110202102231202,102112000204313,111111024404430], + 1422130340314011: [100201030430140,100004024100043,100241214220112,112021142000002,101000104000400,100021000410443,100200144102020,111001422230001,110103002040131,114001110013231], + 101031043002220: [100000000102140,102200011002302,100402400013000,112102302301410,110001030430030,100220104020000,100341024211220,100400100020200,114104014001020,101042000300011], + 142104012100202: [110210400114203,100001100104021,101101300010301,101122200300011,112210201100012,102120200221403,112001122302311,101001211004233,102303011002000,102314100240010], + 1100100110012110: [102342214020012,100214104301120,104130011240303,114300014030310,100040004331010,102320234112041,112420030202242,101001424004240,110012021200100,110000200000133], + 140232403042002: [102111000202241,103232220103211,102022004010004,100202204222000,101201114044200,110422420000022,101412010300001,110312121300022,110040304210001,110033111221230], + 102014030304000: [112413224040101,100220100110400,100001121023210,101200031020230,102010110232121,101024001034211,114001012300002,102121100232012,114102330210021,102140320310003], + 120202411002010: [110321031234422,102342120222031,103021004014220,110302100111410,100410434302212,102023001440404,101023014004000,100020010101201,110412042010210,102312344020020], + 110221102021410: [100001101024000,112021240233200,102012020200430,101024000322412,112320330411100,112202332033141,110231222101120,110002002104010,102330021100410,101230111021024], + 101001021013411: [102010221411024,114020000030002,102430401401200,100201211003004,102014002000401,103103241421322,102030001131120,102221414000020,114121012340044,102000400240203], + 102012401042334: [104441021202022], + 102341202023000: [100200011001220,111202014132111,100003141022321,110201434240143,111030044110010,110041304201404,112101414041022,100040211022000,114000134102201,111103412240000], + 1000002421022310: [110220100000102,102100321320100,114042102330002,102102011414242,100041004100221,102310030240210,100000000412112,110000010033022,102330040242220,102310400240000], + 1402124300113003: [100430021001320,204020131034103,114113404003030,103214301421201,1000001214032041,102100204001030,100102240020100,114000332302320,102210000240404,100040004304002], + 1001424300100241: [112014422001023,112410310201130,101010200344040,102120044004401,114100220033300,103021020110143,102010400200202,103000004002040,114130114003242,103220104020120], + 1010012021012304: [100040240004024,100010000002400,112000013244041,114020100001120,120020211120020,101002041000124,102100000231232,102030034011211,102031111324402,114201404114100], + 100121010001240: [114033300040100,100313030142202,101221020300020,102013401100100,102043030202102,102300014110023,114230024111000,101021110322104,114420302320210,102112411341000], + 104111011231030: [102240221000001,112041002002124,114000024101102,100020124204330,112202412030001,100010000101004,111432124414000,112410140230303,100040024103120,114210142321120], + 1000013001100401: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 144110111101000: [100002031120341,113020001020004,100003044210040,103243401401133,110012212132410,101210014200430,110014011320012,110400022122040,101111010020120,100223400002001], + 111101300123204: [111342430040130,114014120011010,110000202132000,100202041213213,112000230220010,100103021003000,110312102103200,112030402000043,101001020312121,100043001220111], + 103421110041022: [100010101020412,102203101113311,102100200221304,100001120400212,100122101040003,102100001341200,101421011104010,100010020410014,101001004003201,100040141042400], + 110021203010201: [100140010100100,100022111042144,101221201020204,101000314002223,112020240233004,102300420220003,112200004010122,101320400340000,110220102020014,100210011000412], + 122020112221010: [110130201302200,103041021430301,114000402211404,101000100302003,110343042000030,111302204120210,100203211002212,114140022340203,112032222300033,111300302202002], + 1020004441140020: [114001000020102,101020040300010,100213001000212,100002004212420,102121014002022,100141404233000,114131002342130,101020001030204,100403122201202,102303304020122], + 1101000000000402: [100044041022000,103003311430003,110402020001421,110010412101002,101410104020340,100131300422201,100014030414202,100401200033020,114002204023003,100100234234040], + 1444230033311212: [110201320000011,110001100140240,102230114040102,100244204311004,112001002030133,100240203220201,110200114241402,112020201122220,114000020043211,102000331322102], + 1102210000002002: [110011414240022,112004202302034,102122214131011,102100104000040,100023031000024,100010044300003,112120224040040,103301410110110,102124031023100,100204104320231], + 1110224000020422: [111302020010000,110204400000120,101300221003002,100000121020303,110200220010220,110020004203240,100020010420242,110001040133002,100100204232000,110031020114222], + 221402110224012: [112003002001002,100122204301140,102120100230203,100023004100032,103332430114042,100020014100010,103313021401232,102021224002101,114110200221240,111201004100241], + 1042140031004402: [103001111221030,110042400130000,104101201240100,110000011012202,100201230412211,111010002110212,100414004300100,102000020241101,112311000204002,112312041101012], + 1002200132000420: [102231130213210,102000402041014,100043324210140,100023024211011,100003201021001,100122020011232,110002021121023,102201100200430,100022010411004,114121300224141], + 1143041002141401: [110002320424340,102031100200300,103130311444100,114102134122020,101040004010012,103000204003200,114004030023211,111100404100043,100000120412410,101222220302400], + 102240012000210: [102011214000000,102110111410144,100031010010121,101001100300012,101041104222000,112000202310100,110001102102020,101012031033100,100400030013102,112023100230412], + 1100000411031212: [100002121043000,102400234020130,100133204300040,102200031002000,114021112304224,111214012220202,112001404000330,100202004323143,100302241002010,112040101110000], + 1140122200001330: [111011304114002,100000021023020,110013410002100,102000111441024,102001014002221,101110204004210,114240000000041,102120400200003,112440140200000,101013024000102], + 240042210123300: [100002004303100,110130010102101,111000122201420,100212034221414,102000041101100,100042004301301,100012021031014,100000201032010,100121301023030,100404000020000], + 131014040400203: [104310001300102,114021132202032,112012004004324,103001314001021,114122220031004,103040024041111,101004004213014,111124002211203,101211231023001,114022214031210], + 1100022000004102: [102111040210242,114110000002430,102010011412143,102323124020210,114013422300032,100201010110320,110101101120302,100040201030342,110210402031211,110221030000000], + 1100004010022112: [110001022000001,110002012000400,110020422131120,100001000100000,110243000001123,114024400030020,102102120210120,100402000010424,100002004301002,100103120023100], + 1200400022220220: [112124004022322,111300210014020,102103201320411,100100031043410,114403210004014,101033214211000,114001100024243,111000142201220,112102100423402,110141112044000], + 1410134011002122: [102004024000402,110031101012110,110231004212304,101124004002042,114210000210402,100022011220014,100032340422310,100100300004321,111334234120033,110234001301040], + 112243000110330: [100000020421013,101020024002022,100100224230014,100200110014030,110012404411012,102340411101202,103001204012032,114121224000302,102041314012004,100232000001001], + 301040112430410: [100002004303100,111000122201420,104134121240044,100012021031014,100000201032010,100404000020000,100010210410420,103000300124010,112311030201000,102430010202411], + 1002134003002041: [103011041410132,100102134031030,110233000100021,100112104301200,100021242211014,101001210201440,101110040002210,110211104432213,111401304441341], + 1012100302403002: [100013010004000,102200000204231,112020022000410,111232100010040,100010004203011,110001420003002,103230330100204,112033012312000,110021120110240,100401000022224], + 221013010204002: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 1000210430142022: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 110001002100022: [100021301030034,100020214240402,110014032200004,1113004122042140,1400000110100020,110400302220030,110013222003112,100104341202202,122002012004004,112124400420024], + 1040300031240011: [112210010201431,103100024002220,103303000112122,100003011021244,114003100020203,104210021140401,100112101024230,102042030211303,101000400301224,102010124001401], + 1401001002110320: [102104201320013,101023020301100,114220104000102,114004020010203,102100221341001,100011301000021,114310214033042,100100001040210,102014001441210,100203030110000], + 1014010333020004: [111410210001002,101023020301100,114220104000102,114000332302320,102100221341001,100011301000021,114310214033042,100100001040210,102014001441210,100013224103322], + 130224340411032: [114112124140000,110044220021000,102101231341022,101004004003140,102001020222140,112020300223020,103122411441211,114020014100200,102213040202212,114100010210310], + 212040400001401: [111120230020122,103100221440010,102140000212141,114301000000002,112124310203104,100113324103000,102424114020143,114012444020220,102001000221124,102023021321020], + 203000000000301: [112201000413102,114301000002344,100404040022004,101111131042000,100402030022312,100020301020010,110102021301220,102314341000123,101000000312021,101241201014000], + 300444011012130: [110241024242442,110444010032242,104132420010010,100001041031013,110300112023012,110224200113042,101000020301410,114000102210200,101041001032310,103100100100104], + 1001100100140000: [111124004101012,114103220220104,102120004001310,100410220030300,101021204000200,112141104020201,101200111020111,110001200422320,103210114021430,114223242332100], + 1200200200000002: [102332004110243,100000340100242,114003122300200,102000200123303,112223042043112,111340032200020,112012132300102,112402204011010,102301001101100,102042421123404], + 1031121000220130: [110100221223104,101022024010004,102102112002431,102412101112121,102404200230330,102110244000130,114000312301300,100102304302000,102400231404200,111113022242200], + 1401120004202331: [101221004014002,103100000124030,110100121304130,101421210300314,100014041001100,100400300013200,102232001124214,100030100030030,100000204310002,110122002210114], + 1401212021441101: [102143124001400,101204400304011,100020440122040,102002034010400,102020030220401,100040211031313,112010244000200,111100034100301,112404002023002,100033134104200], + 1014000124122034: [102030004002200,100040014210402,112414102011010,110014012001011,110022410420343,100100410401030,102000040222041,100400430022423,100201314104221,112323230202030], + 1010001022112102: [111020030040120,110002000134011,114301022320021,101122040304410,103344200113430,114101104102004,103030404010000,112100102012303,111302202204022,112003402002003], + 1002041020112200: [120032010212320,220103022224020,411001103222300,1002022230124020], + 1040003233111241: [114200212322001,100401210020002,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101,103000104001003], + 1024330040310402: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 122010220021224: [103000230120042,110111001300044,100101141042243,100101100022012,102001221100211,102100132000411,101240204233201,110320100402023,110220411214021,100110004332200], + 203021300200420: [100020310412200,111014124400030,100244420430210,110000200110230,111434000000313,101021344000412,101100101111040,111102200011210,110240312020042,100204420011023], + 1042101022144100: [102314220240000,114210034112304,100014201221340,100400000013012,100044240002100,110122200000100,110313204431110,110211042120021,111210200002411,102302210211000], + 1004203101302131: [102401030231212,114020012211143,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,100000324303120,102433214043112,100221200002204], + 1110401001202210: [102103222002012,114004322320200,100403220020024,102100244002003,103102100122414,100121034230014,112040200210223,112002142310023,100033010002203,100040101020201], + 1110322123410430: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 1000133004321111: [104130301242304,114000124014210,110010104412000,100220100410211,112401002021204,100400300012210,114001132330140,101010204011004,102022024000010,110002112102110], + 1022130000421100: [103001111221030,111200020004203,104101201240100,102301112004021,110000011012202,100201230412211,101301000314000,111010002110212,111121022221002,102000020241101], + 1100300302202220: [114012044100020,110014012001001,114203204001211,112144220230212,101012300300123,100011114240200,112210104010231,102201241303232,110010002001202,100202101210043], + 1201320100000200: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,100032310000111,102010421413322,102114020210302,100001100100040], + 131000422300201: [100440104303400,102122000214201,102024240221040,110320011200230,100342024100204,101422034042201,100011114300334,102303004110022,100110201042101,110134201140010], + 202001002404013: [112200431102021,111320124130040,110042234410000,102424111401024,102030200222404,114040340020333,101100240320232,101010204224010,103120011240001,103102420123201], + 1031004124140010: [110001202000001,111040304401000,100100120423101,100000040120302,100120000410100,100201004102032,111424002100100,102102041124313,101101231100421,112002030220120], + 1100101223222122: [100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100022410101442,103202014031021,110212424242341,100101014300100,100400242201410], + 1420420002431422: [101342300314204,114104200220022,110001244204302,102010244010000,103003204011330,114430412322343,114200034110031,100000430014301,114423002314000,114010134021022], + 1010322341002003: [111001440020003,102020204001132,110200020010003,102110004000221,111144202220301,114224204100310,102304011004310,102100144001112,120020201100121,102000041441002], + 140301140120320: [104210402020230,141401003011030,102331004110020,100002110402000,100033410001200,110024222100202,100040014202402,100020200000102,102222021110020,101001320201113], + 1000340024122141: [102001404012100,102340120222440,102122214131011,114223204100010,111041202200140,102100104000040,100023031000024,100020004101012,102402000201011,102311011000200], + 4020222202404120: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100], + 1012140134022034: [110302040102004,112110340200041,114000300001030,101220030300302,103233000101300,114020204100412,100013144302033,100002220412021,114120104002413,102111410210032], + 1431202004221002: [100442024301200,411231400122100,100003104342121,102000121100012,100400414321103,112130220202322,114320314031401,110404201113410,110302030412400,112003210211300], + 102410022421000: [110022004410312,102000401442010,321114010100340,100121041041101,102322101000200,101020041000102,110413131000201,112012002302100,102121321410143,100201120000000], + 134011101021021: [110101420400120,110110420012114,101210001032303,102103122004020,114021020011222,100040204304024,112001010231321,100304100140104,111102010032024,100213444314000], + 223020402022002: [100021200124422,100022211042104,114020132303131,102020014002022,100100204230423,100423202201102,110022120020002,100300421002040,103131000120022,102040004010020], + 1001311212012210: [114010332302001,114020400022001,102020220201140,110021021120041,110044410433321,102002221100222,112110022014320,114123100221401,100203310014042,112000221110010], + 240131120143301: [111121100010021,110310034424102,100100010422000,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000], + 1121231100220222: [103324401401404,114411024141202,102203320200340,110233430000121,103003204021222,101010004213230,112014104000224,101001010301410,102300200210412,100010010400110], + 1000020010022134: [101020030332430,101022004214304,101010000323030,101001414212120,101001020322010,103310220113140,114200202330330,102114104001041,100022201043312,100000101031020], + 101012000310101: [110041030411301,103301210142043,100002024200142,101110044200100,102411000200000,100400014321101,114100122342002,112012020230301,100010101020023,110033041200104], + 122410102043310: [102003224011000,101113140334114,100101400000132,101221414041100,101110301040312,100030310422011,103011024000103,103041020101400,111300402200003,110000314200200], + 1422400440300103: [101400220300033,100012021032040,100012021040320,102130224023220,102100401143124,100010001030140,102110101410144,114142204121324,112102421102022,111320134133110], + 102034200403014: [110013202003320,110111032140220,100020010200022,100023101042010,102410111400002,102112310210202,102330010243440,111211010002130,111011002200232,114042044100403], + 1000002312230100: [102130020200000,100012101223021,100021004302202,100002040102100,110023330004130,100001104303411,114102010220042,100224204323201,102021301441201,103103144000200], + 1034103201030310: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 1022030204204402: [112312122020210,110332000010101,110022331320122,110000030132210,114002004103231,100001004311313,101403030300132,102321021102143,103120121440000,103123204002120], + 1023000000003012: [100010424101430,114000224101044,102110022001111,101020301114001,102102300210103,103024011431131,101011324001431,102320200224120,100030014210012,114100300000120], + 1141100103113032: [110130314400100,100104010021241,100032431030100,102022004010240,102023211411003,102202031002304,102340200224222,114002014033200,100004301021110,101010124001000], + 1003222000202330: [102003224011000,112004310224204,102304420211002,110403042110030,100101400000132,101221414041100,100032424312011,101110301040312,102204010204023,100220000432400], + 1120211322100012: [100200400430003,114420102323300,110212022133311,110404122110112,110403010000304,114100040214000,101210021021243,100140024230240,112230240412241,101010200320244], + 1120000412044234: [102023210204300,100130101023140,100141314304233,110000004422320,100021304210300,100044304100100,101012341111024,103132204000234,112200002020013,100104010400030], + 1402400203042440: [110320311331332,112212030411210,111040032230210,110431201311021,114012244102003,114014200002210,100102004033300,102224300230021,101114120321220,110324001000140], + 102214021003000: [103302201400001,100021141223102,114323224031011,111000012222230,111303000013003,103131241240330,100220201001310,100000004342021,101222310302110,110200300012000], + 231001212202221: [102000004002101,101403014020203,100402004300002,100042030120422,101134224001001,102321234111310,101004010323441,110003032000041,103300234023033,110124044400220], + 102002010311110: [101224001202324,114233210000201,100002001024100,102103130221330,110000300140010,110011002100114,102011310202304,100002314204210,110010311210011,114004020020313], + 101133314002201: [102400111402142,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,103103221421013,120020211120020,110230010010142,112003000230111], + 1440322140010000: [110011110144000,114410024110002,114402014112002,140400400201014,100020000120134,121022000104032,102402040200201,111041212200040,110013004410001,100002244100310], + 100204022110010: [100304004104120,111101200022422,110221322120020,100013121221320,101100231113103,112030030214000,101210030300001,110021320433120,100101304232004,110221100001210], + 220101020000111: [111400124420002,110201400400024,101033124000402,102401000201121,111013232200403,102214104010210,102201100240444,101013411000000,102100001400004,114011402240010], + 110010021000203: [100014111040241,102201124020122,100020104312001,101140014001100,112202101103010,112001104002203,110030002000110,112000100212200,100220244121000,100140100414131], + 1002120400042400: [110012031011302,111200104411001,102121200313040,111011104401124,100300021202320,111201004131300,111311434120141,102224202023120,110334102021144,110421000003000], + 120001202103000: [102004021410041,102004044011020,114300014030310,110100001002000,114100202204020,101200321020210,102204014032200,100402240013020,111023420020320,103000000000220], + 100243230300201: [110102224201130,103301201402204,102401121113302,100021020124002,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010,114042014014024], + 1131412411031024: [104103201240410,100300204010001,100011320043322,102204100232030,110110012110224,110000040041001,100103130412424,101210001020221,103100001242112,100200011220231], + 1400231200110312: [114020000030002,100233014224240,110110200001000,102221414000020,114121012340044,102000400240203,110004210004223,102302004110231,102203004032420,110000034212000], + 142301002100022: [103002104012101,114021000012031,122000430101030,114000022300301,100311000141022,114210202322020,114423024110004,102001101130200,100401301000011,124210120032121], + 130030002042032: [110220122044010,110042304412204,114020124021122,100002201003312,110110111010042,102230121120000,103300001402013,100400010013330,102204011110020,112111400203031], + 122220322000222: [102401021402212,102041020220100,114120204000410,100000001020000,104312001303013,114003104100012,114010214013020,112000224000141,102200414034330,114243312321003], + 1020414002422300: [102420300202421,102431104021200,114100004121100,114002004114040,112134220420402,102220030202124,101023221003021,100000311024240,103212014032110,102023024002104], + 1000113000240023: [103301210142043,112110340200041,100400014321101,112012020230301,100010101020023,114000300001030,102140101343110,102242000200420,101220030300302,100000011020021], + 1202024241242314: [110400200102102,111300040003300,102001410212441,102100034132002,100001430120120,121000000000100,122102300020200,110222034213101,101001130322442,101030400323000], + 1200040010022004: [120402022102021,110140101300004,102010002000402,110423221000200,110030211224203,114201402332241,114211030021301,210412232040000,114022000013011,120204020430010], + 1024024200112020: [101032141001121,101000321002030,100100310024040,103212010100200,132224022200202,100231004331011,100200010434042,123102041021330,114100444004011,102312201003210], + 1110211140441422: [102430401401200,101401000302120,100000020413120,114430014144403,101343421000022,114021424032110,112020002300103,102012021102214,111320122203243,111101004401023], + 224412020421420: [102103222002012,114004322320200,100403220020024,102100244002003,103102100122414,100121034230014,112040200210223,112002142310023,100033010002203,100040101020201], + 1122311101010222: [110201400400024,102112220202010,102214104010210,110042042120021,112010120231202,101011101032340,101013411000000,102100001400004,102310111000301,110032224422403], + 1402102400420321: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110], + 130002100302431: [114343002322014,100022314100104,114100022342130,114300010002100,100013024312024,111012002200101,102102211140013,110020220022010,110210020002243,110121220000022], + 111023012030222: [103100021421214,103312200112110,101000221031032,103402304003240,112402404024011,100332204310240,101112024024301,101231024010320,112001021122340,100340221201130], + 204002001022122: [111130224102101,102322020212020,114403304140021,100031131042030,112201422040000,114021040001000,114022300011000,114441124140100,114000002330112,102000314012111], + 1010342342312424: [100040020100400,110320311331332,110104010020022,110000300030110,110030010040441,112100300200332,101220030300042,112200211103401,103210310104102,101030004010100], + 130010200220202: [103000230120042,110111001300044,103210001422303,100101141042243,100101100022012,102020440242023,100220010002421,103222010114132,101240204233201,110320100402023], + 242002102122000: [102420300202421,102431104021200,114120004000010,102002001130001,102404000230201,114100004121100,114002004114040,112134220420402,102142100210120,101023221003021], + 1022000310012100: [100442030020022,110210004400002,102012011131100,100112101040103,110304220401302,111303042200110,100104004030002,101002210342202,112034100230011,101100111114011], + 1040020040200113: [110020010134221,100004020411020,100300321000010,100000421021322,112331012023100,100021010100320,101001030303000,110031210000110,100431024301030,101222321204303], + 1001201004041200: [101140130013320,100204210031132,100023001042200,103224034003141,114202022320120,110442122023340,110020240400120,101022044001032,103101404000040,100110100033144], + 1010041103400010: [112410300200000,101022420321103,110224102034030,100412210430201,102002004012101,102002114004030,100400000012403,101020231020220,101414220303014,111001214403102], + 1010241221130203: [103204301402123,103102224034002,111100100004430,110102111204210,100041014102004,102000000222203,100301101000021,110020140044140,101001301032024,201120000130201], + 1102222220310100: [110203131211112,114103412201420,110014300041302,110010022003021,110020310022021,101121021020012,110321001330010,100000300100000,111240304101330,100420010030240], + 241104000033302: [114101004121020,100040301042132,101021104212100,102102241341004,102323404112032,114312012320120,100000041020230,102041021121210,100031000101440,103313300113232], + 103142012230024: [111240220002100,110030344201413,101001014001021,110100001014311,102304244110431,100103224301304,114000100020200,102100322001021,102102100231000,102122000221020], + 1440402013020100: [110121200003300,111040104401311,110102031222030,104101041240101,102400304041032,103121004000420,100040311024300,114110020212130,102002102043132,110041300410101], + 130010001011042: [110040022130003,101120014204000,110014300001402,100100014230110,110201004241002,110130201000333,101000131142230,103042100100430,100104044230000,114022024012213], + 1142312313100034: [102120002000022,110201420003020,100011304210101,112200011102100,100010210104123,111130102210101,103121021443212,103021401244424,100001040102000,100100001001024], + 223201221310101: [100020121020300,111110010022310,103432001210300,112440134041000,100210240013000,110401214242400,101044214042221,100033201031241,110010114210202,102141000313022], + 120300024001004: [101421000300000,100004000004212,102020424011001,110210000123320,101043130321113,101120100020310,100400420013021,101212040300120,101410441011302,112100124020213], + 311023222001200: [100000431020101,100244100032320,110010212101240,104104001243020,100032040000331,104124102100301,110002010440412,110111420033313,103100200103020,102000410200403], + 302320110211040: [114400034122341,101444024041143,114121002310100,100001101023021,102020032000000,114002004033124,103204321414213,111120010020104,101100120332004,102100230210011], + 1103100044011014: [102121221343020,101400010303002,112104424022201,100013211002142,130030220200012,112200110000221,1300034431310021,144020001004041,1001010233020100,112012200120020], + 1004012200023020: [110202004211120,110341010044330,102031144010424,111021030042411,100302420120212,111212114131222,102140001441301,111012030022123,110031424214112,100001230120013], + 142404301142103: [114031022302044,114103020221100,102010244010000,114430412322343,100000430014301,114010134021022,114102224104002,100040240003341,114422404110312,112140134003231], + 1101330100342343: [102002014000220,102203004042010,114004014011110,102410004024030,114402320000202,114014112302234,102012401001012,111230040010002,114112000004001,101004421020002], + 142100121003020: [100000044301222,111012034402110,114221004034110,101223041020020,100011230120014,101104024002242,110133120011001,100400010013033,110100000031102,100100001043001], + 1113010140143422: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 100311220124023: [110200400000020,100324140141402,100002204340200,110000410001034,103102224034002,110020041310021,110001001200323,110102111204210,103013100120001,102000000222203], + 1041041203210240: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 113200100201203: [110300000402020,100014401210011,102323304112140,100004401212000,100003034100001,102000010200014,102110402004000,114030100040000,100002024212102,101000040343001], + 1112002131011030: [100002011042020,102010200221000,101041201002422,112000002000420,114201224110141,114002004012300,112431004013030,114144100031004,114424014110200,114420022314022], + 1012100002403103: [102401030231212,114020012211143,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,100000324303120,102433214043112,100221200002204], + 1001001200023002: [110114001202122,111021202200011,100001010100220,114110004102301,114002114012041,100414031001210,102000004012011,114023102303000,110101100012002,114421002320003], + 124114120100202: [110130302012020,102000100222110,100000211021004,102411134020204,114032200030021,102000000224012,110210120000001,101000120303020,102000001133312,102202220200320], + 200200104122033: [101001000322303,103120004002000,100021441032202,100031000422032,102404120202300,100001304100000,103022041401232,100213114342042,100212001002030,102123000200142], + 112223200442400: [102110112001242], + 124000111321230: [110144240011020,101040211000300,110413401240204,112000244001222,114441114123013,103220211421421,114000012334102,101000014012442,100312401002102,111022210021013], + 1101003400210121: [100303230141010,100010421034201,101000110310443,114100202341000,110203111302200,103012100000024], + 242214323420220: [114040102210432,100034004211240,102140121410131,101201340300430,112040200233002,101241100301411,102113111343110,114020214123240,114002220010031,100001010412000], + 1200430010000411: [101000040341000,100001024102000,111330004130112,110000042002101,100403440010040,100202210431000,100003020422102,102320100212010,100111324230343,100200000011200], + 1024200000322340: [111030302201103,101002330300234,100440134301011,110000211010231,110402402020420,111142142101013,103143031442112,101110104002011,102204204030403,102004001410212], + 202002000244020: [102121124130314,112032400230000,100042010200121,101022220302103,111010200000412,114200002320110,103013241240202,112010000243420,103032214000202,114233200002044], + 1101310100043441: [100112000402300,100101220021240,102220011122100,110122000020202,100001001034141,102040244041000,101404441100012,111120140021303,111020102204112,110421002110030], + 120000431112110: [102101211411000,112032040234431,110010232004000,101020004000000,100102224033421,100120040400011,100400110020244,102021001411110,110041102012100,114222010213042], + 200431043110310: [114300022300010,102011424013030,100420014301302,102201102000000,103012240110400,103012220110230,100120421004010,102012021101230,112220430200204,103121404002104], + 1020300131241022: [110020301220324,100041000010302,102020100243032,100031001020040,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321,112003110242131], + 120041020012002: [110222020012300,114244120001041,102120111142201,110010011212411,110102322040111,102002104011244,103230010114302,110010220000210,114010304010030,102140001402011], + 123003220030300: [110222020012300,111012104400010,114244120001041,100021140000322,110010011212411,100300020142022,103230010114302,114010304010030,114100202200202,102140001402011], + 100230403201114: [110030002000422,100011004343022,110401140004202,110040002034100,102402330230011,110432242020141,102110334020204,103200001420012,112002002000344,102120020230022], + 124400200400010: [103020031403100,114003104031111,102302331003300,102320000221020,102120141343312,100012020410120,114201022330011,114020420030200,100120400410300,100100310024321], + 104301422204142: [101022040322021,102042100242012,102144201402040,102100201400021,101113031012041,110030441223002,110100122212220,100420011010004,100021420122102,110000200023244], + 1010103211230204: [112110001104000,100102200021002,112002020220002,100010204013120,100010221221003,100110144032230,101000000310112,102201202022411,101020021031103,112141122310440], + 1110032200001010: [100312331004000,103301244010210,100101031041022,100000240003101,100032224101400,114110004002200,102311110222320,101021410320100,102301000241011,103001220100000], + 1111200112112311: [102204001121032,102004000220013,114003124010140,101000030322212,103000200112220,110101422010012,100120120112100], + 200430313010320: [110443010102111,114303120004402,100444004302301,111320004131241,102020101324002,100210031004220,101030224211010,102304321002412,114140304122040,114404130030010], + 1002002040230401: [114201010001201,100030024300201,100040300102020,102400110230001,102101011342100,102311210240013,101312211000200,100312131204422,100012230204000,110143101120300], + 112024240000100: [110110011340130,100210304330211,111121210031101,101041010324010,102104210214401,100011230101432,100032024240322,103202224024200,114400044140001,114120010000040], + 1112201420040040: [100121110032440,101030011141012,102200100232031,114221100213120,102211104033011,103210000102210,101142444001020,111420144421030,100031004202000,112012042001200], + 1002100102031003: [103103231424020,112203400410130,103232044020212,110300410040034,112000042312030,100013311220103,102101000310001,102100221124440,114203004000200,102103004001021], + 120201022314002: [110120144200000,114022412330004,101200221022044,100103104302044,101041030320401,110241112020204,100002004104004,102100104002224,102100224000210,102020004000014], + 120202030214112: [114004142244000,102140001441301,102002004012310,110000011220204,111200024102040,102103204000000,111301010002100,100020024100000,100021204341100,104133130010123], + 122402201402242: [102203004042010,111244302220204,101114000332010,114001032300011,100142044103021,114004014011110,102410004024030,101100010012423,103102211440104,100330020141212], + 110022210020204: [104100002100221,104310001300102,112000044002102,114021132202032,112012004004324,103001314001021,103040024041111,100110101040020,431300131230002,101004004213014], + 203220122341110: [102102101412200,103003000142012,1002201014202430,100112430012432,103330400114023,102403004020222,100002301031043,100040321042021,100302224314022,1211200224022400], + 1130000101424000: [101001400301113,103101024004200,100002120200101,103300021402104,102014111102023,102100431342023,102102024000001,101012044004042,112410300200001,102020304000321], + 1100000432221010: [100012001023022,102112012004120,111112242211204,100000041201200,110021410130302,102003340204010,110003004420010,100030201031300,100012401022403,100042431211020], + 1001002421332411: [100012320001320,102000331120104,100232214222204,110203111111000,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 1421022122020102: [100111211021233,110100201140241,112001022300000,100203210003004,100042204102400,112120124020214,111304442220340,110003001024303,110032001122110,101000044001103], + 100121200242200: [100000111000003,112400104044001,114423002313230,103201021402002,100304101200101,100203310430032,100201130410420,112010214003000,100404220013411,111102020010300], + 302200041100140: [110202000000310,110000010120043,102102011413000,102403404004110,102122410220401,110301311303102,102141410230020,110103111120042,114420000001301,101012410301010], + 1202002010204401: [102011214000304,110100104403201,102202000200010,102214204040420,112340020203003,102443011400041,100010430022021,101011001031001,111300030040030,101010001000231], + 201230032030022: [110320202023400,114101420030202,100011004343022,110104422010121,110302204433321,110401140004202,102402330230011,110022202130021,110142432042212,110203210002230], + 120030000000120: [101043042401310,104001222102120,101113012101010,110010102002310,100021220002020,110023132100402,112112410232001,103004041414132,102022102010211,110231202040203], + 1001230142004120: [111312000000403,102312010211010,111011242233002,100000011041021,110014210424201,100100141044110,114313200211321,102001114010033,101430020300303,111321010040420], + 122210123102100: [100000020004101,110130014400011,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300,114200444140203,100000124211001], + 1010012300010214: [102041310200042,111333104124202,101000304014100,111431110000042,100040011023101,110301030010140,102004441124110,103303201400021,114101420030202,101123232010002], + 302104300100113: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 1420111102101004: [102131104023111,102420130230104,103000004010400,100000004310002,101000004003224,100012114210011,111200304131014,100000340120221,114133104120204,102001340200322], + 100021000020012: [100000220100001,100122230031414,210303212040010,100000014200104,102440024021100,103231014021201,114000232300122,100203304122231,100122111002401,102000101120014], + 1440211140400210: [111134204102000,100400122201240,101000034000203,110422200000213,101020031000300,112044200243000,110000400000233,100202140430012,110000420020100,112000112030300], + 1020110310300200: [110102401201204,102400100230000,100212030414010,102031021441200,101200020303202,102020041321410,111340300010010,102013224003020,100002210201212,103013020123142], + 1102030214000300: [100010101030000,112020112300102,102140040210040,114010000021104,102431010203240,114113004140010,114004000040100,100010004203102,103202300102400,114103200002100], + 113034310204312: [102224101113104,100312331004000,103301244010210,100101031041022,100000240003101,102311110222320,100040310123023,103001220100000,114124420032020,112012012002100], + 131401244102202: [102001000212142,114121000002140,100002214100100,102120104003011,102120402000014,102000200210032,114020002303212,102303110220130,102223231121242,102103132002023], + 1100113332434120: [111030212113431,102001111011201,110044320441241,102233034000002,110410122010102,101122404022022,110311110410340,112101202012010,114240004000000,102300104110220], + 100101040000421: [102130020200000,101104020300301,100021004302202,100002040102100,110023330004130,100001104303411,114102010220042,100224204323201,102021301441201,100024040122220], + 134014011004200: [100113220020101,114031000022030,102014002000401,103103241421322,100300211000020,102104304023201,103310300140324,100002224244002,114310200002400,103211220100010], + 1042320131012320: [110441140102024,101004120224442,100413311002132,100320421001431,101233021020010,110210301200101,111131102210013,110400241240242,101001024210000,102210101121104], + 1032310024101130: [100013100100014,100120234300003,102100014000422,114010422330121,110020402100200,101401424024210,103044001403210,111300122200243,100000101040410,111222222244101], + 210140102011040: [120001021014002,102021204013000,110424200100400,100423110021010,101224110302431,100220110000201,102123024003202,102010011124143,102201040200403,114040022210401], + 1004314020004310: [114030110041300,103112004030003,103100311424002,103040224000100,103132424000410,114323010000311,100400220013232,110010002000100], + 244120023102030: [102300324010203,102100142002204,110113004402201,110301232000100,114110340004414,102104020202131,101412010334000,102020100213212,110021141213001,102332001001302], + 204310020011420: [110400022010030,100214121000000,100042034200032,102011041100210,114323000000130,101400240300010,102412241111002,100424104302020,101013234000010,103210014003000], + 214013043012111: [100423004302232,110030220000310,100110034332223,101223100300200,102001034002201,101104401020410,102032031440302,100113004304010,101310311000124,111303214132004], + 112001020320102: [110011001021000,111120002211010,101201200310001,102020000201200,111232000010230,101230000302304,102300211000020,110222100011043,101020320323422,102122004000004], + 102413100214132: [100240000032004,110221204243141,102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,114420232314210,100301004321221,110312300040010], + 244013143230120: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 133004040301010: [111000242201231,110320024430030,102040101121143,100002210000020,114311040000110,100000014312111,112003130224002,103404004000103,102000020220103,101002410300300], + 131100330042222: [100022041001002,111240340004003,102021024000010,111101222244030,114032424122040,112011012004300,101021401003220,102000401120420,100301020420101,100022024100041], + 1020300040010001: [110000002200001,100201024102012,110000324200322,100402002200020,111340104131020,110114132013304,100121324030101,110010431320002,100010034301040,110030001010000], + 1140431400240421: [103012004011310,111003230041302,112400010203210,110111022044102,100300004104143,100002224104130,101010410340000,111020210043121,100120010402000,101101201114100], + 101204202102111: [100310304310342,110140044401202,101300124221002,100010041031020,100042400001023,112402000200101,100020201221000,101010020301243,102030001103000,100040021031201], + 1434102314324032: [111302020010000,101300221003002,100000121020303,110200220010220,110020004203240,100020010420242,100100204232000,110031020114222,112001410232200,102012001132133], + 1111040032001420: [100000220100001,100122230031414,210303212040010,100000014200104,114011120024030,100101121010100,103002011240201,102440024021100,103231014021201,110110420034120], + 302123011110002: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100000100120300], + 1030012041401021: [100101021020221,100121014300312,111144004103013,111000002221010,100012431020010,110220442220001,101010000332203,110210142123042,110110400003300,101000201143043], + 120000030100401: [101030001001022,110230231300100,102010424000101,100300121000420,100402431014100,100100001220400,110330200400021,102100020210143,100030024303110,101423100300002], + 1410012140000222: [102101210213220,1001013211040100,101404203243201,1132012124324031], + 1003101201201020: [101200011020000,101202001022000,114012222301110,100031224102002,102001024011010,103042141420430,100000424201223,100002120011102,102112004132100,100101021012040], + 201210023004123: [100002024201011,102004410220430,103013411431022,100344101004202,103044004012014,101040004222021,101002114000000,102400004020303,100402200031004,114340400001040], + 100000200000321: [110014010012200,100400142200030,112233010221200,114020020001014,102442400231201,102120304001402,100024004103100,102224000214240,100141014231104,101201104042203], + 1000204112132210: [102004414000212,102010221411043,102003214013022,111100010023012,111020240024110,100002101021040,114013324102022,103102324002110,100100100021142,114212100023341], + 1021040410444201: [100220034323210,112121212300101,100001124102222,100400100022003,100032001041230,114420002322000,100141120014242,101200034044300,102204044042410,100020310010001], + 120100042004144: [101230011020001,110000201222422], + 122004111402000: [102111030204323,100010410021300,100033101030010,101133300043021,100344000422241,102113024003300,100010030420033,114302424032232,103410031210320,103222021204312], + 1100110210000310: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110], + 111010121010402: [102442024024214,100443211002141,102100330211131,100011014103012,100030220101040,101130031041024,101240021020011,100400020033003,100100110411000,112204130410100], + 100004110033110: [100310014310311,100400000031312,103230004000142,100400010013000,102011114000042,114110024003013,114142102344042,114114040001042,100000030003111,103002004001434], + 131411411011001: [100100100412204,103120210100100,101424100304000,114004000022042,103003444010014,112022000242003,100012241220110,110002111042010,112420122022130,110002321321021], + 1214321220001300: [100422000031421,110302040102004,101402114042420,102220021120430,111341300012200,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401], + 1420123210040202: [101200341010102,100004000102302,112011300223041,102200100241120,102030031133201,100240101000210,122011112200413,100000221233001,102142034004000,100030201021200], + 1022320020001020: [100121230031032,112000431120410,103042024040104,102304104110001,102000200200301,100104211044110,114241222321321,114021002302020,102313204114304,114013124030022], + 240234000100141: [102112204000101,100004210400203,100142414232131,100400002200000,102100100214030,112213100200230,100002221022420,100122104020004,111031104110300,110431100000020], + 100011012042204: [100114004100001,102012030213014,102003320200411,102002024000132,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,101100120334014], + 111030220140030: [102140411342420,103243024040441,110021014412440,102020004000301,101031101024100,112000210242204,114403014112210,100100224031000,103111001212300,110010112102022], + 132022104422222: [101004010304203,114104204002313,114300000002130,121200013012000,102122210230200,103110411212041,110421410100301,110244400212004,114410104141020,101002021110410], + 130010341202000: [102422114040010,102020004001311,100101101010100,114103212312012,102321044112101,100022024100041,114231212342200,100020011043020,100021231020200,112022200202104], + 101010213000232: [103301244010210,100101031041022,100041234101100,103001220100000,103210004031201,111231012242301,103240404032240,114444004140210,114114100214000,100011121022401], + 1434300020030411: [114033300040100,112021201120101,114202002320113,101000104002203,102010231120312,102300014110023,102430001401230,114420302320210,102103422004103,101000011111400], + 1040301200000100: [100040300102020,100012230204000,110143101120300,101101200311102,112401402023020,103142104001331,100200204123011,103031120143010,100103401003022,100101130101111], + 110413230020140: [110124010031144,110311312000001,100140010411214,110010320023302,100002120100314,112004431132202,114130202311020,102111031342214,110103022012204,100214200004002], + 1130101200220000: [110101124221101,101421000301032,102121122000024,102301004113010,101004004003140,114000312331020,110002002104100,102301214110003,102222102020220,132400144402210], + 1001000200002422: [100400400033012,110412321240412,101201020300000,100200444320120,112020204001002,100120200402000,100102030022032,100404340013222,100111200031001,100400002200140], + 1031041330034004: [101010241003223,100000201041300,101100300302102,114011200003102,101020104000040,114120420223002,114012402332300,102302020212101,100030004104210,103030201434002], + 1012224102421104: [114000044020204,103044010120003,102320000221020,110142020400012,100142011022211,114230344103210,100030020104423,100102011010000,100000001021041,102000000212122], + 1041121202302432: [110301011234204,114211102321011,102110221412210,103330421400224,102112042004203,102000200201422,100032204200023,100120431012000,112210204002124,102003014001002], + 1012010004022204: [120001021014002,102021204013000,110424200100400,100423110021010,101224110302431,100220110000201,102123024003202,102010011124143,102201040200403,114040022210401], + 112120100132301: [102211230244321,112121214040022,100004004100120,100041014210020,100000030100102,102140200224200,101012400320002,112002100233204,101001244010120,102200121300400], + 100001030022104: [102010200221000,101041201002422,114201224110141,114002004012300,112431004013030,114144100031004,114424014110200,100014030200221,114420022314022,102322001000202], + 121003123220221: [110130314400100,111121100010021,110310034424102,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442], + 200040101004123: [114201102320021,102010124004041,102011021132412,101012004212201,114000102202022,102442100201100,102222421012100,100000400120232,112001410240333,102310001003111], + 1000121020042000: [100000044204004,101020224210014,114202244101041,112423102010012,102112022001414,101212214011134,100001121023210,100012101020002,101424010301210,114204120000200], + 1100002120012100: [102014002000001,100004210100003,102431121110021,102320004111024,100144301040241,100020024342004,112031401123023,101442041011111,101101034200101,102111010310232], + 1040230030200114: [110400332010004,110132222014033,110300310011000,101020320320424,100014121020424,102110111122212,110313010000400,111002022220000,114202220210010,110030011010043], + 133200422110231: [100000020004101,110130014400011,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300,114200444140203,100000124211001], + 110001211000201: [100201114323042,102102011341002,102141024001000,114222144114122,103001000102220,102021010243000,121100311033233,103102044004203,111110202240200,100002000412000], + 1001212300011100: [102110230210000,101124201110410,101423221010210,100100224303300,112240002024221,100040420200010,114421302322203,102011204010242,101123010330203,101420111010123], + 101134003411022: [100014011034234,102240221000001,100000324303120,100221200002204,114000024101102,100101011013002,103002121432200,102141101410101,440203203132211,102012011104110], + 111010412400020: [110001022000001,110023342101220,100021004310222,110020422131120,100001000100000,112220322030220,110202222043022,110313312021120,100220214333200,110330234422000], + 1014200020002102: [100411024300421,114210204001422,102101001412002,102200000240220,114010302301200,110100242212103,102013014000124,102030100214200,114204140213040,110003320121201], + 130202300120020: [102422114040010,101204400304011,100020440122040,100301020420101,114103212312012,102002202000000,102002034010400,102020030220401,114231212342200,112022200202104], + 314100040210102: [100000201020000,102030024112031,102401011401222,100002002212000,102114341341012,111420200002021,111001224121320,104042022102100,104030002100140,103421124042304], + 100311100100112: [114212420211103,111200042221400,100342011201332,112224042022101,101222104020403,111022014110000,111004424400103,101012124044012], + 212004331010240: [102422114040010,100022041001002,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,102002202000000,100022024100041], + 1102201000100020: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 141000201201400: [102040431121110,100400002201113,114111100021420,112024212301420,100300310140241,100240134323001,102111024000402,114321002320001,102042000222002,102001011100100], + 1102120044000042: [100000044240301,101140021101302,111120224100101,114440120000030,101023041001203,100201021001300,100211400140102,102323110212100,101010040320111,114300014030021], + 1012024020222240: [111102110012000,111142010020301,100031201030331,100000144104100,101000344010212,101033141030001,100104400021023,102111210230204,101003400322022,102200421003014], + 242401011120420: [103303001404000,114024312202242,100020001011422,100110411200024,114020000022214,111240020000201,102221204020110,100103121021000,102203204123112,102302010212201], + 1404002001100411: [100422040021304,102000024011300,100021320123031,100014041042003,100002010413410,101011210300000,101433010300204,102114321401000,100002414201103,101002221140440], + 1030042010204412: [111003110010202,100104000024404,112100404022020,110110011140012,102332041000321,220132443001240,102330211001013,100002301221010,100000324201220,101041420322222], + 1031314220400013: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 1431000000000041: [112102024020402,114400202314210,102102010214442,103022110142241,101002024000400,102101211410144,102240231110222,102010214000120,114023142202040,102330020242041], + 1120004301122440: [102401030231212,114020012211143,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,100000324303120,102433214043112,100221200002204], + 101313100310010: [111400124420002,110020402002000,101033124000402,102401000201121,100112044024030,101202024231020,114100042311200,101010001000400,102201100240444,100103100414402], + 1430340000422012: [103303001404000,111111000014001,100020001011422,101023321000020,102010221132220,100110411200024,114020000022214,103113204001423,102221204020110,100103121021000], + 1141030001430141: [111130224102101,114201000004122,102201024041200,101223301020130,102322020212020,102144002001240,114403304140021,102103021340120,114100024004214,100031131042030], + 112301040212242: [101020210300204,100112020023021,112203122042414,101020214003103,103021210110121,110203100002414,114002100002414,101211011023023,103020224040304,101143031140312], + 1100001423232033: [114102210220100,114001210033034,111221102222020,102102010211012,100230220410213,110210002100320,102100220220023,101111211012031,101213110301020,100100210414012], + 1240203113110303: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 132201100020001: [112102024020402,102102010214442,101002024000400,102101211410144,102010214000120,102010111102410,101000110322242,102404110230202,100010020101222,101222104010140], + 143000200040430: [110444144241024,102001101130120,1000310103100002,102242301122200,101240010310200,110040230120420,100200020431202,100021430021301,102011110213001,114001002300400], + 1022011320030121: [100004214100234,103000011400001,110402410002000,102001011442200,100324200110130,100342120144000,102020001440011,100100031003220,100200034020100,100000041021200], + 1011222301013300: [110022004410312,102000401442010,102000014004040,321114010100340,100121041041101,102322101000200,101020041000102,110413131000201,112012002302100,102121321410143], + 1100040020240044: [114213002340022,102120140212001,114400210002021,100000021022400,144200203310100,1003022312322100,102001244001224,114030214020000,102023422000000,114213004000003], + 104011311014010: [102300401000244,101043004000042,100042034212023,100001404100302,101101014004001,102112220204201,101022020303401,111322022222202,110011114201210,102000021121130], + 132044004300421: [102430030200201,120142100101000,101202321024330,141202030000322,141200042321141,103110340030100,101044004010300,120120221230400,132141134410102,1003102040011030], + 100221120044210: [102431111110001,102323101101400,1003002030122040,202003402402323,101230330042220,1320124301012211,410142111403201], + 1101120114012022: [100020400410010,101211210304010,102010041122220,110314422023002,102100001004041,110000403400000,100000414104102,100001020044101,410310420012412,101000020100020], + 110010213034220: [102033021130021,102001241410312,100000121042240,114000332303001,102330021000131,112041031114021,110400240002411,114432422322332,114044240023401,111004002202111], + 1024342412040111: [101041310301004,110021122100000,114431224113420,114033012202420,111211002241330,102420001400320,102012000213011,112040004000012,112012032002220,112410214043412], + 120102320201223: [110411044221200,114200222340000,112024232302040,102423031402210,102322121000002,101012040320004,102000011410132,102321230240434,102140014000102,112000020220201], + 100200222011104: [110021040020010,100001140020000,111011030004021,100012101223021,100121104300201,101220330300003,110132000024420,100224204323201,102021301441201,103103144000200], + 1004020102010020: [401142101000022,400114001102410,102100000012031,431232000323104,1012100023110102,232023302143031,120200122422404,1020220210340010,111414004440203,1040100003200241], + 1003031240200000: [111041004113300,102020010203200,100011144312020,103110120210013,100020221040231,1012220402104110,102011204001010,103012004034001,102001410221023,101010111034000], + 133120230041403: [102140001441301,110302100111410,102111400210040,110010220121014,114000402300001,100020024100000,102142022001203,104133130010123,102010420212022,114132200222003], + 1111242014404013: [103412204020401,100014410420202,103304100141001,110201324240244,112002014003103,102012040232301,100402002200121,102442100200132,110202114242400,101003041032000], + 100004312224000: [111330120000213,101011014010102,110000100423033,111222004100001,110222002034040,103144001420031,103101130124033,101231400300040,100220114121101,100112204301144], + 1032140002100120: [102001404012100,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,100002301021040], + 1112030040102000: [100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100210301004023,1302011220000002,100401430030420,1300302112030020,100140221202112], + 123132013103013: [101203004040100,100142224230113,102104131122031,102320024020040,101100000320132,110402122111020,103040120000040,112010000211002,111041012143402,112130224021002], + 1100421422310024: [112024232302040,100040131021101,102322121000002,102000011410132,102321230240434,102140014000102,114020100042040,102020304012040,102144012001120,100400004100332], + 1010200334204000: [103100130122100,102340011104001,112300002022101,100430101012411,110112320021204,103411014002010,132000110000001,110302130004200,101000000300110,102112100210100], + 130002304011003: [100202400434310,100000010002202,114410024140040,111221024440402,100021344104342,101011121032013,110000300444443,100131310002422,101000024014331,100203021000012], + 1031040014131300: [102401030231212,114020012211143,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,102433214043112,100221200002204,112001030021004], + 120302002100002: [102401030231212,114020012211143,100014011034234,100002110100031,100230112110132,100110404103132,102100010232001,100000324303120,102433214043112,100221200002204], + 141004440010111: [114200212322001,100401210020002,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101,103000104001003], + 1020102000020042: [112001001112001,100310444310004,112332000411020,102431200203321,100211001204102,110002400042003,100000004244400,102032010241003,110024001211221,102403204000000], + 300011200341000: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 1001342410002023: [103101224000011,102200042000104,103002000104400,103002144042123,110114021000012,102304204110040,112020004002110,114242210004001,110031404200110,114033020020202], + 101133210200002: [114112124140000,110044220021000,110122400401032,114310000004320,100000324340102,114443200000122,102440020200020,103122411441211,114102004002022,103414020133020], + 111301210424031: [112002204004403,103013001430040,100402021000101,100100220024041,103030200142241,103010040123432,100003001040112,102112322004011,102334101001210,111203430002211], + 100430210211101: [102224420201000,103013034012221,110302311302101,100000120002200], + 1102402400440041: [112113214020100,103300344012201,102010202004402,100000130013400,103224041400220,100001321032243,102104244000010,101001010300404,100201104224131,103340004020422], + 123202224112002: [110113022011200,114010024033002,101201001024132,1042411340004022], + 102312020044410: [101004120224442,100413311002132,100320421001431,101233021020010,110210301200101,111131102210013,110400241240242,101001024210000,102000324010303,110023102103200], + 1220140112400113: [100322014312444,103010110100111,100120410111230,102022024010214,101030004002122,103232004020011,112013110224020,100000424310110,111114332113210,113030342402110], + 120022011130410: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102410220200004,102100211340043,103443104001332,112100311104022], + 1011304420320000: [101230002122040,101210241204043,104102040011120,100123011004113,100420001002101,114103220220104,102120004001310,102430121110340,102020121102120,112141104020201], + 1002422010322203: [102001201440040,100212000030034,102300001100112,100121010400103,100121111001223,110201030101402,101000120300010,110324304424130,100002024310012,114431000001000], + 1202000011001142: [100000044300303,100002030101101,103300220111112,103141324004100,104120021242040,114300024031112,114102002310230,102211124110220,100400102201000,102100100220002], + 144313310001020: [100131031020002,102031401100332,114003222201103,114120212310000,100022204300000,112012211120102,100101040400110,102203111103200,111000000001211,100404200013104], + 1032002104103100: [100002100100210,102420424042020,100010001032223,102111024000402,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320], + 130220011132020: [102114321402233,114310430002402,103202320100322,110300420102224,110242444432002,110021100022013,100244144101141,103000104032321,101023440300102,110140110023004], + 1440231030110030: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 104220402140410: [102102031320011,100041140201301,102140041342420,102140021410400,103011100120201,100000120202410,102300004110122,102202334040220,101001100320224,114000202300004], + 1102400401230211: [110002220002220,114300022300010,102011424013030,100420014301302,103012220110230,100120421004010,102012021101230,112121404020102,101000000300323,112220430200204], + 1020220231131000: [101121211101004,101114101012020,101001304001101,103000110142041,102002112041034,102041111020030,110022001201023,112401144042000,112200124010030,110422010000000], + 110020211102034: [102121240200000,114001232300102,102323324112410,101130314020142,101422210301101,103000041402003,100000104102100,100043044210031,114212344000432,100001021003113], + 120010142301020: [102401030231212,114020012211143,100002110100031,100230112110132,114220414000323,100110404103132,102100010232001,102433214043112,100221200002204,112001030021004], + 1021101401020232: [110101200032041,113402202420020,100000012212010,110041002000220,100040111030202,101142410330304,103110001242101,103431011210021,111132304100420,110433222223310], + 1420013100302320: [114003122300200,102000200123303,114402212311130,112012132300102,114020310024000,112022010222000,103401431210002,103313141402020,100001204200000,101013010320220], + 210230103011000: [102000004002101,110202000000310,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,112100000200031,110003032000041], + 210000234010131: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 1202310030214131: [102020314012030,102020224000000,101242101020042,100002104104001,102421010200213,114021040001000,114110000002010,102301141002223,102110300210002,100001000202200], + 311022002001000: [100422040021304,111111000014001,100021320123031,100014041042003,100002010413410,103100204000400,101433010300204,102114321401000,100002414201103,101002221140440], + 130101000212042: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300], + 130111410421030: [102400014042200,100422201002310,114403120002242,100021020021013,114020002203014,100000204203120,102401004042103,100024030000243,100101301041100,100003104300220], + 120314200012210: [112020104001300,112400104042431,101400110300032,110032412204130,111242402020001,100101004300200,114101012201420,111032414402324,102424040202123,102110024001402], + 1402011002010022: [100024234201100,100010234114300,100331200141014,130000420243230,110112204224100,102212234021233,110224102230230,100120411200320,100100341202102], + 1100402200221321: [101204004040140,100022102100243,241221402002000,1030200104020421,1000102021230333,110344021203140,102200310230230,103001134002100,4002244101001011,112020002001230], + 1040124103000020: [114222040214020,110200004210000,100142221012003,100100030402001,100121221022103,101000041142321,102120124004020,114101204004022,100120221222104,111440404400230], + 100200002340002: [100400000020210,114011300040140,110240032042222,110200022124020,102234341124302,100024110002203,112024414000023,100000104200120,110210200014413,100020134102010], + 1022144210100043: [114031022302044,114422004110130,102012030213014,102003320200411,102002024000132,112440114040203,100401001011010,102021221120401,110100331003020,101114000330410], + 300440311014202: [103401000120223], + 324212220100003: [110430341310122,100400100020024,100020211223400,101102241114000,110014142204101,100203321004410,104130230010032,100100011220404,110010000020002,101210001313401], + 212001013010204: [100002024201011,102004410220430,103013411431022,100344101004202,103044004012014,101040004222021,101002114000000,102400004020303,100402200031004,114340400001040], + 1011031002141401: [100222000004100,110002001222210,103122204002112,102120000202211,101103320301203,102011001102101,100402020013010,110003004212001,110310430012302,110041002120211], + 101044041410200: [110012220442042,100034204311021,101121024024120,103011131430040,112201104011200,100201244122014,103020420121211,101020041033003,100003221024211,111031030040220], + 1010123243314001: [102002301120010,201301011030444,100012034312220,110001000020034,102004014000430,110140332002220,114111240032010,100431240001030,102101024002121,110014024202014], + 140202003024042: [114022412330004,101041030320401,101203121020430,103130021444021,102100104002224,102100224000210,102020004000014,102100200210002,102031001411010,101400004022210], + 1004010001102003: [104244002023000,120133001040211,111320124130040,110000110000231,100142041012023,110000000411120,110302100010342,101301030313022,111440222100012,100420111002101], + 1043212000021040: [102000034011002,103204000110000,100001014340021,114203202330210,102103001340022,110214110004122,112032000211000,102300121000111,112021020220112,114100102202223], + 200014212120104: [101011400320030,114000004022410,102410012002102,101000134010220,112330302020202,112003042310200,102220001120020,100040000003122,112024140222012,114014022301200], + 222201003101000: [101002120301230,110010000411100,100400020022110,101030411030220,102111310313001,100123410022301,100001014301120,114023044020211,100001400404002,110401214221203], + 1401232020042113: [110322104424202,101202421002031,102102220312102,103004204021310,110012310020200,102030130241300,100232224340041,112400002011010,112011001113222,102240134031142], + 1411140200001240: [100000324342000,100000410412010,114412124141222,103300400140000,114002304101321,111002202221023,112002144000001,101240010300343,101010411112210,102340410242300], + 103412011010020: [100443120030100,103032411100001,114104002340200,100020114210041,103214331421023,102120141142220,100221421002211,110040030000044,102100030222020,120400000024121], + 1014024004102004: [1020102021344321,101030301001232,100104302001300,1001102321230101,220200021120010,140320413003120,400014401213001,1020423021001303,100021204230002,320143400144303], + 1001022111231200: [100214000430410,101100210320232], + 122100210311210: [100102000010243,103000300120001,112300042020334,110001212010040,112112122012022,103012200100120,110402000100440,100011110200210,110210101210300,100013024213130], + 1101124221301400: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 1224144040212102: [110000204210130,103102104000031,110201134243240,100100100422103,110020134410001,111100044100001,102204004042041,102101002004300,102043001021033,101210211022100], + 101000001100200: [102420424042020,100010001032223,102111024000402,114321002320001,103220011411101,102001011100100,102200401111200,102311120222404,102000430221040,114003104031111], + 1004030002312130: [100002100100210,102420424042020,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200], + 120103422003102: [102421012023000,114203412342202,102000021442024,101000410340001,103000000122004,101210024012220,114311204000403,102100001340121,100120211000004,101012014000204], + 110021314000002: [110311331003000,101020240300003,112021334001000,100144430411240,111000024401300,102321040213311,111210442211022,103222041413120,102103010312411,110433011310111], + 100110000242233: [102334004110232,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,101120030010320,114124002341030,110302322102041,101300004231010], + 1000120001110423: [101400004022210,102031021441200,102300031004340,102312301104422,101200020303202,100000411002023,102303200241200,102140202001100,100022200121301,111423014422320], + 1023040204100410: [102020204001132,120020201100121,111122012213410,142011110011130,120320000422011,110024000413122,100022200410202,102021201320102,100420231010003,144041310003010], + 110110202031302: [110002010000240,110124010031144,100140010411214,110010320023302,100002120100314,112004431132202,102111031342214,110103022012204,100214200004002,100400030013021], + 1144332120022040: [100240414222323,100210004030410,102304004110020,100003104302021,114342024030024,102021201440011,102202030200124,114132104004011,102103200312030,102000001101130], + 132202400004130: [110110011340130,100210304330211,111121210031101,101041010324010,102104210214401,100011230101432,100032024240322,103202224024200,114140404123402,102130031410200], + 1100230304230004: [100004300000204,121202234011000,102124021023300,114001014102403,112444304040204,122022100000222,103121420214211,100003024211200,114302402321024,100000020120210], + 230001222111000: [100002131024210,102410001402210,110000102100012,102010020223010,102120214001422,101412300302220,110320002024021,114201200004112,114002044114140,101400201100022], + 1021002001040202: [110103002040200,101220111020012,100000214101311,100004024202000,102112430210103,110310004424040,103000114012224,100033131043244,103000024040413,111102002220124], + 1040000013000201: [112222002021104,100221304220024,110121112012011,101400401012014,100213001002313,110020100004110,110200310002240,100211024101002,103140404001201,112100122300333], + 121232000414130: [102030211324014,101040344004000,103014201410032,100111211000011,103402210131312,102200132000032,114230324000001,111001030000002,110000204214122,110004000020130], + 1031040012210001: [100033114200011,102201130200131,112002024004122,100410040030230,112120110200240,100004120402124,111201002200020,100012020420232,100000101222004,103412114001210], + 1001200101223001: [103034031400131,103322000112244,111123412214002,114200220003001,100043121024120,100001011022100,100240110002411,103410000104330,100104104302020,100021201012224], + 1100020200001102: [112113214020100,100000130013400,103224041400220,100001321032243,102104244000010,101001010300404,103113010102100,102211430202033,100110301022230,100320114314042], + 1000101020041032: [101000024004442,101031104002100,101101230331040,121104330112000], + 1120020430031021: [202013001110004,101200020302200,1320010210001300,100010230021300,112012111114213,102230004030112,100100221012100,1002022012411300,112102000202302,103013200104400], + 120401401002412: [101213114040141,102210101002412,111140100011101,103220120212134,114200014001032,100344101004202,111103314101000,114140104122430,101100010302233,102021241324040], + 1100100220100210: [111214100000104,102103034004032,100430221011100,110422010000200,103112021442033,110044014410012,110030231214100,111121012243322,110100144404220,110004001040434], + 1002042422001100: [101300000310241,103103001442303,100031000410300,110001302002012,101020414001023,102110411023111,100102234100211,100010204103214,101000024000234,114104120220001], + 142120223030024: [101010201030113,114012012300010,111202024134001,100302000140001,101000004003224,111302120011012,100002314210021,103101031440430,102021014004211,100000211030342], + 1010004003121400: [102422114040010,101204400304011,114032424122040,102020004001311,100101101010100,100301020420101,114103212312012,102321044112101,100022024100041,102020030220401], + 1121201240200221: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000,103300021402104], + 134202004322020: [114210410000401,103210214003143,112210010201431,100024104100032,103100024002220,103303000112122,100021304103002,101120024021024,100003011021244,114003100020203], + 104041224043122: [100442404301421,112400012012002,110000002132011,110200442121020,100121221022000,103220110100100,114200124144010,100302220420400,111401202210212,103133001240012], + 200330200011013: [102242010244123,102023200241300,100400130010102,112000132030001,110000032130121,100202000000010,103131001210231,110200131311400,112101112300110,102100201143032], + 1001041000301243: [110134200122322,110200412020210], + 101302203404011: [110024021040134,110000310134014,114000012334010,114302200002200,102001201443121,100200024301301,101120000011032,102111002004022,103210031422000,102211211000203], + 201241022044100: [100034114100102,110330002104200,114000000030300,110011111104432,102000221034000,102143421000420,100300000441223,110201012040210,110000321104200,100104041000002], + 1012413000110222: [102101004000411,102434121112224,100024001040202,101200210300413,103210021401223,111110014101210,102000004001141,100002211032042,111344032200432,102100301341002], + 220201201130122: [110010022130210,110401304243400,102321101000300,102104100232130,102403241400023,102010020210100,100000404210104,102104211400330,101130024000302,100210310002000], + 1010042010300014: [102202310203222,100042001020203,102002320220202,114130210231020,100004410120102,111222214101043,101011211003002,101001040304214,103230430101003,103013144020404], + 1042210002212232: [101434200303301,102302100241110,114000224021230,102120031340220,102002244014003,102101120213444,100121044230340,114031442303000,102010214000002,101412101103402], + 211134301000322: [102041310200042,111333104124202,101000304014100,100040011023101,110301030010140,104100002101431,101123232010002,114421242204443,110100222001100,101010001002000], + 114000010022010: [102041310200042,110320202023400,111431110000042,110301030010140,104100002101431,103303201400021,114101420030202,114421242204443,110100222001100,110302204433321], + 304410134022101: [110034300021014,101042401000112,114400112314022,103004104003011,114014010043112,100112440013034,100041001211002,114200134110042,102002201413004,100033020104222], + 100121400000120: [101221422120021,103001024002110,100231114320100,100001000002210,100004130002301,101210300302302,110100012120201,102020131413423,110020204200342,100000220011133], + 120204001004324: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,101002200301130,100011120000004], + 1021234200200340: [102120214131012,114130312310220,101411010300100,111120114103002,100004100102242,101221101020012,100101210412030,102334110242204,103210000102000,103123321444000], + 1133110010022414: [110102401201204,103020200141000,102400100230000,102414034040100,100212030414010,114011200003102,100412200002013,114312004002020,102020041321410,111340300010010], + 120212142112100: [110120144200000,114022412330004,101200221022044,100103104302044,110241112020204,100002004104004,102020004000014,100014204201000,102103321411004,100400001001300], + 1000010241040420: [100024210002210,100000020121140,110200000112123,103022204000200,110241020002103,102023021100010,100221020410103,101120241102203,100010304340120,110020010120340], + 1122100002424110: [100410410002011,102101224002210,110311232120010,122203322100011,110330022021224,100410311001021,110123442011041,103021000110211,102201324110204,103010141222231], + 100210303240020: [100000110410000,100001004104043,114022212300211,102104241412020,101200000304000,112014402034232,102102104002322,101003011000111,102000000211031,114200340003213], + 111212300242140: [101001044211204,100031034311401,100023210021210,102100104000203,102000200200301,110200101200402,100000140100020,102021201410011,114013124030022,103211014030010], + 1011220024120202: [102242240202112,100102424230122,100241100430021,101040101001202,100022001231022,101010304000212,101010010320220,112000002000103,110010040002340,142112232110201], + 204010012101140: [114313304002310,112204010411101,103211010211331], + 212010120203212: [110201201211024,100032201024101,111124004101012,114103220220104,102120004001310,100040341020133,111101344104210,100410220030300,101021204000200,101200111020111], + 101040003402034: [102102000233342,102001140210301,103302220110131,110100111121002], + 220430220011124: [104100002100221,104310001300102,101200011020000,112000044002102,114021132202032,112012004004324,103001314001021,111300220000230,114110032343001,103040024041111], + 1123240110202022: [1300422220310121,120032010212320,1023422111011102,411001103222300,1220101103414143,320440200013001], + 1401430311300300: [103202004001120,100120204003012,110202102121400,200304020022101,114114004000121,102022034012314,1300022002310414], + 101313042403213: [114020000020001,1302101004142102,110001001100001,201014000241421,110400102312140,1043303323011400,1002000010441103,140011220320300,114200022340011,401400200400300], + 300213220001120: [110101231202300,100130444102110,100001204342232,114132202313300,110223310000311,103010304012101,102210044010110,112000404000001,112000001121002,103103124000111], + 200300020003100: [110222020012300,100100100422103,114244120001041,102120111142201,100021140000322,110010011212411,100300020142022,110102322040111,103230010114302,114010304010030], + 100100000002201: [102001001110120,110221220004222,102020020222311,102412300200000,100400430022230,100010200100020,102141200210120,100101414300001,103001004014140,112320020200312], + 1043002220010141: [102300221002020,103120000104021,100124221021011,114012002304110,100031200001240,101200140304140,102302234020012,102102010211012,102000110221004,101002330311011], + 1004300000012431: [102030410223003,140400400201014,102422001400000,100301224310100,101020220323012,112101102012030,111201122241213,100002244100310,114022302300000,100143110421000], + 133210000000041: [110033000022043,110100200030100,110430430003002,104412212102010,114102024123030,100432200033101,110132020031210,102340211000200,100020200102220,114420230000240], + 240231110100012: [100313030142202,114122220031004,101221020300020,100121021011022,102013401100100,1132202011200221,112210102030020,102043030202102,114230024111000,100402120031033], + 1040210003221001: [100003041020000,103100401443440,110030420441114,101002024212040,114110200004041,101000404001000,110210002031212,100000304102201,101010010321410,101213001014122], + 1000122100102041: [102302144110440,102143202000400,111130224102101,114201000004122,100143034304100,102201024041200,101223301020130,100041004200042,100341044310403,102144002001240], + 1141323022303011: [101032141001121,101000321002030,102000144014000,102100104002302,103212010100200,132224022200202,100231004331011,100200010434042,123102041021330,114100444004011], + 1414013020102000: [101301014221122,114220040000201,100404400013222,110012130410040,100104101200201,111040100020010,112201010203210,100000214310412,103042320101230,100120430411222], + 1101031321234320: [100040301042132,102102241341004,103031000121000,103002020101431,102020300220201,102020431101132,101404104000404,100012104210032,114213102324020,1041210023400124], + 1011020001000032: [100023404242000,110033101044200,110204002123041,110002404210000,102300011004443,114102122200241,100201021001300,100022240120042,110212001204000,102224210203004], + 122100120012032: [114221312340014,102434121112224,100311204312442,100001024100241,103000020100131,101211204201231,111130412210000,100011300412123,102000004001141,100000110100200], + 1002140033020201: [110200422121211,114100004121100,102212014011000,101002110310112,102110304003102,110321010102000,100030004211002,100000311024240,100002041020000,102420010202004], + 1404010111303430: [101221020011201,112310132020030,111200210001023,101101401020424,114030220011120,100011101011002,112002110240403,100100101220114,100002210000020,112410110201010], + 102310010204343: [102021100220120,101222041041012,100032124210042,103222000100010,100100000021020,131213314114102,110020000000320,114010024020443,114021112203200,111302002221301], + 1142013310040202: [101020204002030,114034220041220,102102231400111,114000204101231,100000400412200,111100232241200,100001020121021,102111024004010,103343010113030,114040202214201], + 140404211020143: [102012201321104,101021004000000,101002011001110,103012301401041,100022130100210,101001301000011,100001020002400,101200034044124,103042224001110,111000230041031], + 1042212201001312: [101400114040043,110230222121001], + 1002011012031132: [102001000201100,112002024000000,101101300010120,100030214100100,101021104001210,102120334002020,101401000302000,101041204000012,100402200013100,110034210424200], + 1010010040010131: [103220214030401,101000021034110,110401404221420,102120310322101,114012344100300,101023000300100,102130020224110,100311010422310,100010424104142,100400230022020], + 121200103210000: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 114022314112413: [114311204002010,100002101021120,102102012003220,102313114114000,114004102201202,100000101001431,101043024000300,100001044241012,102030420223110,102120200201042], + 101002310004220: [101233330041031,111121024400002,101102041114021,112202020200200,112003414002222,101330104221320,110143012013241,111103322224400,102343044111203,101220141202202], + 102042104210410: [110130302212044,103240010131114,114020312240022,110302241332230,114110200001300,110210011300123,110402220003241,110103100400230,111121134100001,102410134022300], + 201120034040002: [101200011020000,112000044002102,102230021122000,100031224102002,102001024011010,103042141420430,102214001432020,101011420323313,102002104000111,114023024022000], + 223210010231010: [111121210031101,112312022021021,101200101021000,102104210214401,103000024014022,114120010000040,101040000302000,103100120114020,102320310224141,102000404002002], + 1403220001132200: [100242430032003,101412131010213,102020010200102,102202010204130,100032000002120,110022030110040,100424011014010,100042000010010,100003040422420,102000331132232], + 1002100404013021: [101222321200012,103211144033404,103103240104001,100204104322122,100041301021020,102100011341012,100102001301220,114130000220023,102314224010213,100000120000202], + 320321101040100: [102101324130010,101440004042202,114040020021023,111230114102201,114201102342110,101400300300111,102122302000300,100100204101010,114101200210030,102114020210202], + 112003000100240: [102301344113012,102141124004222,102430201110000,114010200020312,112144220201011,100002131020410,112042422001032,100111200414020,102443421400110,114044414023030], + 1100030101300000: [103000004012003,114000014014332,114040002210003,101401304040214,114441402310144,110430002023100,101002311031133,110021144413041,102000004014112,100200234220021], + 1102223032103021: [102120012001031,102323304112342,110430320104000,110020221320103,110121111202231,110240020100212,110012001214430,110004431040201,113204011001300,114221002340120], + 100124140040100: [102044104002014,114021004011100,102140140310001,102022000220004,110210001310230,102110111023103,100010144303000,100102434300310,100421200001003,114024200040223], + 131421101020101: [110000411313130,110400000001201,110000010430211,110001212130303,100103301002044,101221311022241,110100231202400,110020102102000,100000201022030,100402021012201], + 121321102023020: [1304031410000002,103224040221400], + 1110002210110203: [102112432004423,102402124022000,102032204000102,100200200412034,102101230310000,103004041410020,103444024001001,101004004211001,101002000323021,110200202231210], + 1103413200201012: [102404341113402,100140310020221,102033442000014,101214400304203,101200004010120,101204044010203,112014030203304,100123200410410,102100440231020,112023230230101], + 1000021020100134: [102000001132113,100042001020203,102002320220202,100120010421220,100000201041300,114011200003102,101020104000040,102432101112141,114412142320040,102100044000000], + 122030231324002: [110042011204212,111024024121404,100340001000212,110201102030430,110211011302040,100121301013301,100214011004010,100032400104331,101240004040032,100202024104300], + 1002004034001120: [103002100100101,110000402000040,101000220301403,110300124420043,100212104030201,102400401401031,102201400231110,100213024220000,110003102131421,100403214302001], + 210011030010110: [104100002100221,102000321102310,112000044002102,102134044134410,101202001022000,111300220000230,114110032343001,100110101040020,114012222301110,103120440104110], + 1020020000302000: [110000012103121,110212201200033,114010234012413,100400310020430,100011040023100,110120134222021,102214214042032,100021234211320,102301404020000,101000204001132], + 1002033200220220: [111332210000301,101404201014234,110231010421003,114100024002412,102321300210040,110022204200044,101031001020043,100103404234443,100402401011232,100400030022000], + 1123002404100003: [111403414421302,100402021012201,100010201230130,100011201220110,110020014200010,102110020310200,100401200012030,102010111134043,110000014202022,110302030400400], + 132312040000244: [112300002023320,114210032320402,114100002340230,101030200300110,111000114112131,110110412014004,114102100212002,111004220022422,114201012324201,111100202241010], + 241020023100311: [110330400010040,100101231004020,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022,110020130044232], + 1241130110010004: [110203022120020,104121030021030,114303000000120,100402200020301,102132204003422,100203321001203,110000210041101,110133022014110,110121311241021,110210020001042], + 1002030101334100: [111101002241322,100000000120200,102132424020001,103100121423010,101004304210104,102120044002231,103003044004000,114010144020122,100002404210001,101102020333110], + 1112201202020001: [100024040001400,100400322200003,100222141002002,101113000331203,110032101100411,100240241002011,112203124013030,100212100430302,100400412200020,102114044000001], + 1420244240403402: [100004221022001,112210212031100,100102444032011,101120314000210,103222010102041,110034140040012,114401112200031,112420102013241,110001011322420,103021124040242], + 104004210012100: [100214000430410,101100210320232,102302001102032,110003004412202,100100311001010,102010401101200], + 134021010101103: [110100001200320,100000214101311,100004024202000,102200230202120,114200020003000,102112430210103,110310004424040,100033131043244,103000024040413,100000034344404], + 1400031030000100: [110132010032031,100200044102003,100110231000142,102420210200041,101312004211100,110010030101400,100432200431112,111022114120310,114003422242201,113331432424011], + 1043400020013011: [102230010201400,112011014020221,100112101011130,112310022020213], + 1023121200024200: [412310220104121,114100222340120,132011000122003,120100010104132,110230010002303,103002020001300,1002203202101123,1304043431201120,423203002400042,1302321010020120], + 100010311030114: [220103022224020,1304100402114410,1022200104230030,410142111403201,1002022230124020], + 111100000211210: [111012104400010,114244120001041,110010011212411,100300020142022,103230010114302,101210211022100,114100202200202,112000020210140,102200230240322,102012100200002], + 1110403002011121: [102144201343034,112132120202010,110002201320001,100430010431044,111020122230001,103040201222041,110111221000100,102341131103201,110000022003020,103104014002131], + 1040101220404002: [102400010200011,101413321300222,100031004101000,1211200120132310,114200224001003,102201201002010,114310224030143,144203403221310,103304201400304,100011040202101], + 1020014030200300: [100430221011100,100112434101120,103140301441302,114001302300110,101010000330233,112101210200001,101221104013002,111000014110023,110010232000300,111224122220314], + 202030001001024: [101000041031301,100020424214024,111221212223401,103214400131240], + 243243313212003: [114021010023030,103422000104202], + 114323030201000: [100310120141002,100004001021111,103022021431010,100003000104203,102041410242244,102101220214011,114000424102300,102120231343021,102311110240101,102141020210132], + 1412022410102421: [100243401002310,100004000100101,102020030220200,110031404423144,114130104001000,110014114201012,101004000304012,100022210410130,114034424104042,101002000323022], + 1200132241010202: [111323002200100,100021044202120,112401000200410,102202210201312,102212444022430,111020012111214,102010002002034,103220021410020,100020104312240,114442120000403], + 311022132121010: [100002100100210,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,114000044020204,100102020411200,114200302341234,103002110100200], + 241023012214002: [110011414240022,111142010020301,102100104000040,112132434020310,100000144104100,102124031023100,114002104020100,114200024110134,103340114022112,101014014000004], + 1401402042441110: [100000100120300,114202244112111,114011404103142,100202121000302,111000142201220,114040002300000,102002430222010,100101041011230,102323001001000,103004021432210], + 303004103010002: [103011200100000,100302000140222,102122340200200,114000214021240,111111000020023,111344032200432,102400220203010,111000000012202,112012112300040,110024000410240], + 111100213001110: [103132001240124,111040000020020,101042100313010,101120200320322,110021102200021,110210041300110,114104300212311,103200110103041,103110201240231,111430220001210], + 220020022113412: [110011000022102,103021220104200,100021020104220,102202410240103,102120001343001,100112004101222,114202332330220,100030001041404,103043011400000,102100021410201], + 1102301322130333: [102011214000304,102202000200010,100042010200121,103032441431121,103013241240202,101010001000231,102340031103401,103101010110042,103032214000202,114233200002044], + 1002122223002012: [102420130230104,103000004010400,102040404010111,100000004310002,101021014224121,111301000000031,111200304131014,103020200123211,100000340120221,100400130013000], + 121000221103203: [102203344011410,100021324100000,100002020410020,102103430210003,100012014300120,110100120400020,102414014022212,102012220241003,111120214102000,103130020213032], + 1422304411001140: [102040001134000,103003410102200,102212010202013,111144202224001], + 1120123022114210: [102420104002001,102020204010103,112202100203012,114000002201211,102230004011304,100020340212010,102000420200000,102442144021224,112211022133400,100221441000130], + 130031010200020: [101002021020030,100242134100332,114401100001322,110422040001042,103101020110000,110220042123040,103414101210300,111221310002240,102241011101100,111140020012204], + 1001410030220011: [102310120240000,111020022204020,110010002002213,110303100010101,103444110124002,120202001100101,121300000224002,103000124021132,101322301000230,110101020120003], + 1011001010330300: [101233330041031,100013104102120,110412221244140,101102041114021,112202020200200,1022201020410210,112003414002222,110200241201421,110010114411020,110143012013241], + 100410103221410: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 143422000001200: [102310324112030,100410130030232,103220101421001,121110020100002,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100,102024410220121], + 111210020241120: [100133024330243,112002011133010,102343000224400,110014320024200,102141000212220,100010024101122,101021020320214,100001024240340,103001321240031,133321004220020], + 1240200340101120: [101010424210144,102202000201220,102203011120021,101000424210014,102103122004211,103022230124332,114002002300222,101010334004200,103003040102120,102420041111041], + 100212204303222: [102001000212142,114121000002140,110123042010000,102430321112030,111113004102021,102223231121242,102103132002023,100024121030022,100000020001022,111141224102220], + 221243210101020: [102200211120103,100231411002211,114132040223044,100404202200223,111202000003000,110232400010300,100131201202420,100220111000200,101043021124401,100003010000000], + 210412002030120: [102110202001010,114420200000104,100043200102020,103332044032320,111222000012010,114142014124243,100000004100411,114022344022303,102110004102101,102332201000140], + 102010210420110: [102011201101012,102300304110030,114412000003141,100112011040011,114033300041020,101201220300012,100102030423010,102101004022104,101432240300300,101232104042101], + 1010322120400002: [110034012104202,102300444113103,110402002023040,102443120230311,100411031000011,102012000241430,100032111220130,101201111024014,102010014000110,110220004211001], + 1100120000002214: [101004120224442,104120221240413,100413311002132,114000320043340,111100030030120,100320421001431,100024004304130,101233021020010,110320002020403,100202024123224], + 1021330002000231: [102320021000100,114010024011000,103212100100000,112341421131200,142100000024013,112404232010231,114300402320043,102101120211200,103110214004242,114021014023400], + 1041201011130001: [110242002110210,101001331003101,100310424310200,103040011223003,100110411012240,100040214340010,100230221001300,103000004014020,102003400200101,112121104024000], + 1440014233002010: [100112434101120,103140301441302,114001302300110,101010000330233,112101210200001,101221104013002,111000014110023,110010232000300,114102322200110,111104120022010], + 1000304011012020: [101044400340202,100012034342242,114101422201430,111014314400310,100212210430040,114020000010101,103121041440100,112140010234021,101100004000012,111130010032011], + 111114002000400: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,114123420002142,102023021321020,114040204014042,100040401020413,112414334044310], + 111021140144110: [112302112020021,112010032340022,114120304000212,114111202313213,101042041021001,100010031232443,101211414040000,100012404203210,102104401140012,112000022310414], + 111101142002300: [104411012102030,113012100130004,110000024200142,134230121002024,120300120422200,110300140101200,113112420100020], + 1003003202220022: [112002110220340,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,100010031222001,110020200001031,103001114001210,100034021034000], + 120002022031230: [114211010000210,100003040101420,101440004020212,110100201000100,100001024102310,100000004210012,102112000204313,111111024404430,102213204110020,100224120001302], + 1004130300301200: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1023024011003011: [102023211411003,102340200224222,103212000212121,100100011010220,114114414122002,112002010220004,114320110001030,103211014000111,112120340203021,101243010302200], + 1104442324000210: [112113214020100,103300344012201,100000130013400,103224041400220,100001321032243,100201104224131,103113010102100,102211430202033,101031321022412,102203001300000], + 1224402130201431: [100020344302010,100002100000100,114100102340003,100100414230101,110130030020000,111214004444320], + 1010220131102102: [102442024024214,100443211002141,102100330211131,100011014103012,100030220101040,101130031041024,101240021020011,100400020033003,100100110411000,112204130410100], + 1143002030000011: [112202000411103,114003344011001,101203001010111,114003022300020,100031201030102,114201104114111,101041001003300,100001100411302,101414214021020,102320231001040], + 140010100100004: [110021104200001,100302141003012,102004441124110,100000301221024,101224322120022,114100200002120,110310020040401,110200010014000,110202204430020,100002024303323], + 103101200204302: [103242420100012,110224044242243,101400004022112,100100210000011,102200000200201,103110020210000,111343012200000,102201430201310,100022141030334,103200211410311], + 1000001110121331: [110020301320101,114013212300032,114001034010131,110401041140300,103000121403344,103310041402103,101122101102100,102202001120002,110200010003201,100412041011012], + 112411111044121: [100422040021304,100002010413410,101011210300000,101433010300204,101002221140440,102040021424212,110324444424432,100100001010020,101000000322000,100102021220030], + 201012302100201: [103102300102243,110000000003200,111202004100121,114031000012100,100222220001202,110200000004322,110020014410200,114004204010100,100410041002320,111110020000001], + 244020110002440: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,111012002200101,102102211140013], + 141000010030000: [1300004001031100], + 1002311410242000: [100300031003200,102310031100100,114002034102120,101020200302021,102230121123030,114020402303041,103000000104034,103020031420410,100002021020001,102322014112302], + 102121322420121: [102014001130210,110002302201420,102421004041011,102240040202421,100130004300103,103000404000100,100040004331010,101203001022300,112142441100101,112420030202242], + 1203001320140430: [103220011411101,101030404212000,114220014111304,101030301000221,102003111413120,100023101043203,114200122340300,102013024002300,100301321200402,114020420030200], + 1403400402043211: [112221002043330,103214200103130,101011024213031,112222042030004,102230200204114,114241010002120,100224010430102,112100202301420,101210021000110,101000121021044], + 1104224330341002: [110212122030010,100010014313003,110210000001240,100220001211020,110203200013020,101423441010401,110432100401100,100200010434122,111101202242012,114213114002001], + 211200002112414: [102000420203042,102000211443214,100024000000132,102422331113042,102100231341003,110011124203230,114003324014400,101001204000121,102202210230122,101102014003322], + 200101214201100: [110232011000001,100130004033423,102111301413000,101002120323040,111000212203022,112200422011002,114120122340141,112401112300120,111021202201210,112243004012113], + 1101021200302101: [102041310200042,110301030010140,104100002101431,110221000111302,114101420030202,114421242204443,110100222001100,101010001002000,102030020224102,110022202130021], + 1041122130040112: [110002010000240,101000014004010,101102041020024,100140010411214,112323000202020,110222004210002,101204431000204,100002120100314,101112001100201,100400032200040], + 204111111020021: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102,100030010102102], + 111033222130304: [110020111312122,112400100203303,102102310234432,111300232201020,100201110002411,100000224104030,100120121023011,114110340221112,101310124231042,102412034022002], + 1021410140403021: [100030400013321,111100044403012,100001111000202,102032001030043,102311114111000,100310010102400,102044144002103,111020210000113,103014020140401,114200404111202], + 310301002202020: [111110034423202,112014440221201,101022004002300,102311010213330,100021024310204,100022104100032,102001024002022,101003004212410,101000004214010,114440122312030], + 1002100044014100: [100003021033300,100011011020440,102110020202330,100001010014420,101011001103200,114001214100103,101200004040021,114023314013200,102040104000040,114022120040112], + 114320230201000: [101030001001022,110230231300100,100114230020141,100300121000420,100100001220400,102100020210143,100030024303110,100142120100230,101423100300002,103111300102020], + 1401012200230100: [102440011414040,114121002310033,102122014003000,100020004100000,110201222031001,102140001444011,112040212002200,100332204310240,112001021122340,102010134000100], + 1010021032030420: [100121200020000,102412004000132,110000002133140,101233341022410,103013314020203,100102401010230,101030021031101,100122124100132,100100124100031,103010201402134], + 200021212200003: [102201124020122,100103034003113,101020301142101,100130120400120,112401030203302,110212000400101,112003420210300,114202000000002,112000100212200,100140100414131], + 140430210140011: [101004321143032,110002210041204,101110100330302,112021412003113,111012044400414,110044322010013,101000024002220,111022040000100,110012041100001,114240322320222], + 1042200323442110: [103011424002021,111202112220003,101002401020122,102220242000201,111010304402110,112114030224400,100131101022241,101132010320401,111100132103413,112000040241000], + 1424020112010201: [100240000140032,101042104010000,114000122301411,104122202100000,102111002001230,111102010020434,100400204302004,110410000002004,102200210200442,100414231011020], + 1420022302000340: [101221004042212,100303111000101,100202000430000,103101041210203,110400040000210,101230420300200,112004000213042,114240010000030,110113030403241,110022002001023], + 1000102010040402: [100113444000011,112001144000032,101101400332443,121402220120031,100340040422001,112241020200031,122220022201102,102240100200224,122220002200110,130002111021012], + 1441132222010024: [110101124221101,103300014023010,101421000301032,102121122000024,102301004113010,101004004003140,114020014100200,102320214110001,114411004143412,114000312331020], + 1400010220131004: [111102110012000,100031201030331,101000344010212,102100431342023,101033141030001,100104400021023,100131400100220,100010000101133,112400020200004,103122101440000], + 131043220000000: [102104321001201,103210010100224,110002240040003,100400040010302,102004224011140,111400220003310,110000241321331,100204230432012,112040012001112,103433244002210], + 342401020011140: [110311002102104,100410204303320,102010420220000,103002311240000,100202144121213,112001032003010,102010020243104,101022021111221,112102010202000,100230101202040], + 1101000002201100: [100310120141002,103214010102022,100043324210140,102324014112020,102404021403141,100010004313001,100003201021001,103104200210410,100122020011232,100002200410030], + 1114014320002012: [103224310130411,100031411020200,112210400414000,100102101220123,112102400204000,100402210013023,112200302030311,100000001210103,112240024014421,100202141010030], + 1403041021240203: [100011301040031,102101021341002,110002220002220,114404210004101,110011001100133,112121404020102,101000000300323,102322144112403,102024001102302,110031102000134], + 120004302113001: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 131232004201020: [100020244100302,101201104041401,101402011014002,100002200412020,100102000423142,114410012310230,101423011010400,114000332303001,102141100210112,100022224312021], + 103404234000314: [114420200000104,100043200102020,114142014124243,100000004100411,114022344022303,100422101002110,114124222202102,114000030012110,110004342000332,103102021443001], + 1422101111313020: [111302204133040,110300000011120,100000221020004,101213020304210,111020010022310,114011302300101,102420021400002,103221200100302,100424444303100,102201000201101], + 134202101022000: [101221020011201,102201204040211,114030220011120,110020442001124,110024102010002,100011101011002,100100101220114,111433000002144,100010021211303,100002210000020], + 1114101104001002: [110443010102111,100441224303402,102020101324002,102401030202031,100210031004220,111321012222400,102000104002003,114203204004133,102401004020304,110112214200023], + 1404140430204401: [110443000000102,102430100200123,103300001402013,103040001430220,102020201100002,101032004001004,100000020412412,114042244102400,100142000100232,102301300210214], + 1002200423002401: [100120011004032,101100400333023,104130442103041,100303111202002,101003201030041,112314322001102,110000144202030,110202201303021,103031010100133], + 120002002013020: [103202004001120,1300022002310414], + 130140024030403: [114201010001201,100030024300201,101041404002420,102220310200014,100040300102020,102400110230001,102101011342100,102311210240013,101312211000200,100312131204422], + 1022322202223001: [110022212134022,112014002002044,112000002300002,101030010320010,100421200012012,101441201011100,100032321230000,102320000212000,101100034021010,114001204104041], + 141240040003123: [103020401400041,111001314111000,101031030300001,100100031020131,112111004022140,103110214000303,103000204000002,100403110013000,100030041031020,114001044012120], + 1022342100000122: [110401030003002,102042014000100,112000201123012,101430314040103,103400114000020,100023141220100,101211204013302,112010100204410,100101130400000,112020011110100], + 102231320034000: [110000302030030,110301311303102,100003200120040,110030124410000,110122021200300,101403201012011,100400040013420,101042004003201,102023000211002,110233124211010], + 1013202100100201: [100000041040000,102401141113031,101200140044000,100101234301300,110210400002012,102331104110040,100130414300000,112310002020302,100020410410021,102144002000300], + 1431003004201211: [111220002220100,100000241020022,101133410300302,132200010004401,100030044202001,110114410003233,140200430112430,112144312011433,110000040024442,101410044021332], + 1100001011042400: [110010100442102,114040002330340,102130014134000,100041001020232,110033201204240,100003044241304,102440104022111,110031000024240,100434044100040,122430430314200], + 211011110241000: [104404322124241,114030234020304,102200124012000,114002120023020,114421000001111,121400013334402,114413200000230,100103201040210,144000213202010,112020102300021], + 124002012013441: [111041004113300,102020010203200,100011144312020,103110120210013,100020221040231,1012220402104110,102011204001010,103012004034001,102001410221023,101010111034000], + 101001044024400: [110041030411301,103301210142043,100002024200142,102411000200000,100400014321101,114100122342002,110033041200104,102140101343110,114111104000423,410110432000414], + 1120301330004300: [110132141121031,112101020422004,100021300101110,102030140000022,110201031111320,100000224100002,102024044012212,100000021030412,110403031140001,101012144004034], + 110000222330404: [111410210001002,102104201320013,114220104000102,100011301000021,114310214033042,100100001040210,102014001441210,100013224103322,100000004100140,101031221000201], + 142210002102201: [102011114002011,102031401100332,102144201402040,100014201021012,110000214214420,112010112000311,110030441223002,103010400120230,103002044010020,110100122212220], + 241241223132410: [200224331000220,101231031400202,102022000213102,102001304002000,110231402124034,102000444004121,100400100013010,102311214030014,102200000203210,100401002201241], + 1000044010221033: [110212022124220,100003100410042,102130124000000,102010421413322,110240301111040,102113131343200,111210044101201,111100402200230,101020321002002,111123014100000], + 111010014402113: [103100010212020,102102011401410,101340141003001,101014424010103,102311410222022,111400220030034,102032101130000,102120404000401,114100142310322,112000112001400], + 104020343140401: [103000104004220,101002244004011,101442024042013,111020114400020,101010340331320,103031100142002,100241131003241,110000040420100,100201401010000,111244100002012], + 100134211040222: [100003021033300,100011011020440,102110020202330,100001010014420,101011001103200,114001214100103,101200004040021,114023314013200,102040104000040,114022120040112], + 240320131230401: [102041310200042,101000304014100,110301030010140,104100002101431,110221000111302,114101420030202,114421242204443,110100222001100,110302204433321,101010001002000], + 1020211320230012: [101100011102402,100001114303001,103100214000130,100002020122000,103001031403201,112110032304211,114040410020022,110033020003012,110000400030340,122333020133040], + 110021231112100: [102103222002012,102100244002003,100033010002203,112000101110002,110023000020110,102000200200132,110040240001222,100000404312040,100040004101142,110202112120001], + 1100210221210332: [111120002211010,103122000100403,102023120241131,110014300041302,114241000002004,111232000010230,100424200020200,110321001330010,100000300100000,114220200214400], + 101112220100020: [101300000310011,103122001440001,111024044110202,112402014024010,100103000420004,114232014000440,112420312022001,103141000210223,110003300143000,110001102001200], + 312330042000110: [110122120100022,111100424100021,110111121011004,103001020104102,110200422113400,112000000223310,100002214210110,100011200201230,111001002201034,112024144002202], + 1101014021230330: [102140304001042,100202201002113,112210124040040,110000121310000,100002101120040,100033021031202,112113414024020,111110400011022,103401121200201,100004340000011], + 101044210011300: [110023410122402,111204200002001,103001111221030,111200020004203,104101201240100,100141101040300,102301112004021,110000011012202,100201230412211,101001040302400], + 323043102012212: [102204001121032,100003121032014,114000030020101,100030024102010,100120120112100,112044414003133], + 120230102210002: [100001000410312,100110130411200,114012112330402,114220402322030,100000311043143,100132021014301,100101034031000,110133021140410,112202222021041,110101200002340], + 1000112011142020: [112431212020030,103100314000011,102202000231000,100401002200022,102003301120121,112002044000432,101100204000001,100422224100400,100000421032010,101010011121020], + 241003200000211: [103114001441122,100422004320024,102420031111001,111000302230100,114044144020400,132202000104100,4000113102314022,114334222300122,114140002204140,1400100000042343], + 100112411201011: [100002421031242,101212010301103,104000000010243,110441102112020,100122004323202,103040230104020,100011020140201,111220110000220,110300212000100,101114110330010], + 301333020022004: [102041310200042,110301030010140,104100002101431,110221000111302,114101420030202,101010001002000,110022202130021,111330020002213,114011212320331,100002204310140], + 1001001410014420: [110340200010100,100404304300114,103400021210032,101300000340142,100011314203210,112222424010200,100210001201240,112001102001220,101204404043201,114110210231202], + 112224200123142: [100042304102210,112202000411103,112132434020310,101040100302002,100013030100002,103340114022112,100310034310200,101014014000004,114003022300020,102111210230204], + 1004120311242040: [110340421234021,114122202343044,100140211021431,102110010204021,101001221110000,110402102210002,112230202030200,101434401010412,110012210031100,100131144000002], + 120002030020000: [102001001130100,111204203012002,124020002020003,122222120003214,133332002141010,144000013213001,124010030100142,111032444402403,110103201001321,102311430211100], + 1140044230000342: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,101110404021211,103110041442122,114210400000112,114042014102321], + 102400320000212: [100120221021011,111242212222022,102022411100012,103220200100320,101030004004303,114000020034200,114010214032000,100010001040020,102014014004002,100004120012002], + 100110120010004: [101012000300043,110422011240010,100010004101244,100432211002022,110100012142010,102011114001033,110030042003121,102120001340020,111023020021014,101010001002102], + 112301043220100: [102231102020200,102120201140110,100331200141014,100200011002042,110224102230230,100120411200320,112401344040043], + 1100120124003122: [114201010001201,100030024300201,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100,110012404201130,100021100412012], + 210414002110123: [114010200011100,100102110412002,100000204214001,101142014202110,102310110213220,100012001042030,102000404000400,100013040404011,102004004004200,101002134011001], + 341002431430012: [100020300200110,100042000200211,101004140304211,100021024100301,1101210010010223,100000241033100,101000124221041,100000134100120,101012010303400,1300102043130042], + 212410220140021: [111410202221302,110002302101012,100111401011110,100114110411042,100223010432101,100002004340344,110100400031432,101041300300004,110204201213200,102141311343023], + 104332030030410: [112010420232040,100032114202001,100220410101001,101023024210000,102140322001242,110000442001100,110201401201230,100100311044101,112013124020300,110000020440133], + 1020042100021110: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 1400110440303012: [101101040010000,110021040023140,102004001131000,114002320024211,103031301240234,102121100212102,100114100000104,101300004220200,110020402120123,114320114030010], + 120443021001140: [100024000110221,100110020031042,101301014221122,110422102110221,114220040000201,102102204022310,114130014001202,110010220103020,111004100022110,103030040121410], + 241141200002401: [102001404012100,1010400230221020,102302200210010,102340120222440,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 1023001200413320: [110012220442042,100001114303001,100034204311021,101121024024120,110023100420044,103332211400441,103011131430040,110320204424100,114200112330011,112202114010130], + 1013000031040302: [102101204000030,100011140101103,101400304020120,101003001021020,101420220300100,101001004002021,101012124213020,101004121020134,104102220014110,100040004100310], + 123010001202014: [104100012102004,110021232000021,100401241014100,110301322104142,100001140000010,102003000212200,102420020204200,102000200222121,110033002000020,110343014421300], + 1010001221112030: [110430430003002,104412212102010,114102024123030,110300011333202,110132020031210,101021404000220,100020200102220,110414012023214,100400100010101,114121200222010], + 100002323233111: [101230002122040,111124004101012,101210241204043,104102040011120,114103220220104,102120004001310,102430121110340,102020121102120,112141104020201,101200111020111], + 1400100300120011: [102322020212020,114413232320000,100100001040134,114441124140100,114000002330112,100020001030232,114422234140240,102341041104000,102000100221110,102341004020202], + 130110334030001: [100440444301004,103304014020032,101221121020230,100232121210011,100004110000301,101310004223223,114113004120221,111210402244301,112022200234200,102100011341140], + 1110010211201000: [112302112020021,112010032340022,114120304000212,100141410402200,114111202313213,101042041021001,100010031232443,101211414040000,100242024100000,100114020414244], + 120241012104130: [100013304331301,112000022302210,114300014030130,112021204000310,114021140030012,110014240130030,110221412114120,100131241204104,110111242012201,112021224020432], + 1032230001212043: [102401121113302,111201210000103,100101101010100,102321044112101,101203011023020,100021231020200,114201112322020,100042020102003,110324010400214,100141011023021], + 100022113200002: [100101130423301,114000100020002,100040321020030,100400000010033,100400000013010,101322020313110,112020002002301,103224101400400,114020000010111,101000111001423], + 120300104003221: [101400100302311,102141000230040,110030024202101,110100224200101,114000102300220,111011022203010,100001000100020,100132444234001,110103401303010,102042304000001], + 1000010234100001: [102001231413224,103003024011120,102030024010020,111320000001004,101004204211203,110304000402222,110201002040204,110001141011223,110010402102122,101211220310040], + 1030004024000002: [111020030040120,103030404010000,110021002130201,111302202204022,100120231204012,112003402002003,101023114001014,102012044013241,100002100122314,110012010122100], + 1002211401030024: [1010400230221020,103034010121101,102302144110440,111300400002313,111101040014040,114021040010311,114140004123122,102143202000400,100002301021040,111020002202333], + 120000210223020: [110020010134221,100004020411020,100300321000010,100000421021322,112331012023100,100021010100320,101001030303000,110031210000110,100431024301030,101222321204303], + 102004122023040: [103000004002012,100002011042020,100301421002002,100202140000111,103022021431010,103200020111014,100240101000030,101003104212220,102120231343021,102302211002004], + 101403010243020: [101021134011012,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,110030410040101,101300401002320,101110434020010,114330002300133], + 100004132023101: [101321001000010,101010424210144,100130014300042,114034400040402,100010100102032,112023031130013,112010344023013,114002002300222,102104000210330,101401300301000], + 210042234020000: [101142124022010,111200012220040,114130120222102,100402120031033,110244004430214,112022012301001,102101104000121,1000000230020301,100102411011142,112403004010231], + 102021030310000: [111000022202402,110014032101430,104421312102244,114131014101010,102002301442023,102240214041033,114200322333401,103010021422042,101110000010122,100000001022401], + 301042000003204: [101042104010000,114000122301411,102111002001230,111102010020434,110410000002004,111424002101030,100414231011020,114243204113000,103130004003141,102323210243022], + 200102324420420: [101230002122040,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,102430121110340,102020121102120,112141104020201,102000024000002], + 102012303100111: [102102341400400,100013114210003,103004210100021,110401400000302,101041424000304,110140000001113,110021232002011,114121044001401,110410310002012,102204120201122], + 211201032040002: [110200140401144,100430200431021,114310100000110,112002020214003,114400022311400,110010220410220,114040010022000,101133104002112,110400320001110,112140044022100], + 110012114000204: [104103101240204,100020341001100,110020110400102,110012112103040,100104204100000,114222204112403,102040011412033,102201230202444,100411134304010,103222001422300], + 130411200214012: [101214440300301,111102214104403,100132004231230,102301024113440,100000030000001,101104120334002,114123234100223,100222024100230,110302302001423,112000042000001], + 103423111232000: [101444024041143,103020001400040,101023020301100,110200332041001,114004020010203,102014001441210,100203030110000,101004200341000,103033034022011,114022304100241], + 110410111032004: [110332424431130,110011414201101,114400104140001,111120442100320,114312112320302,110000121033240,110122114404243,103100024003112,111010242140140,101112121144002], + 1411102124400020: [100222000004100,110002001222210,103122204002112,102120000202211,102112004101201,101103320301203,102011001102101,100402020013010,110003004212001,110310430012302], + 300140010023311: [114122104140200,130031110003001,400124411000212,101204031214100,100002010410120,142201000002020,102242201301140,1321022130413330,1023031101004142,420023000041240], + 1102110212114002: [101204334232020,114014224011404,110012302001040,112012002303014,100210421004302,112040201114201,102003101130231,102240200214023,100101200410420,102101024002102], + 1430022100220030: [102041100200402,112100404000230,110400112021140,110112121002403,110122221240302,102241230200120,110201111200204,110400104222012,100000001034120,110000002131031], + 101022400320104: [110214024430312,100011014100041,100212341003212,112013212032000,112010220224003,100200001001300,100012104313201,110212310000041,100040424310110,111301332200104], + 1000003131413201: [101410211021400,100004214100234,103000011400001,110402410002000,102001011442200,100324200110130,100342120144000,102020001440011,100100031003220,100202114303000], + 1010230110102001: [102010010222302,100400120020132,100121311023012,110020222000021,110003002121021,101003000321304,110030130030200,101101111042020,110010300431001,100021030111242], + 1113140101032000: [102023211411003,102340200224222,103212000212121,100100011010220,100124011040300,114114414122002,114320110001030,103211014000111,112120340203021,101243010302200], + 1020312402402124: [110020301220324,100222004320102,100041000010302,102020100243032,100031001020040,101110404021211,114042014102321,102112222001200,100021104100310,100104024300120], + 1000204023341114: [103242420100012,103130311444100,101040004010012,111343012200000,102201430201310,102340040222321,110413402111101,100004101020200,102422000200303,101222220302400], + 103430013010243: [114130012310000,102112432004423,102402124022000,100243120430140,112214431102032,102032204000102,110120032013303,102101230310000,101001030310014,103004041410020], + 140001301003021: [110023401320200,102301224110000,110000312001020,110214110004122,102133211401043,102010214000003,114032204104044,103002010100104,100220310430010,102410110232000], + 1040404030124340: [100104100022200,101120201100110,100102321001302,132100001222020,110244014240010,100142401012040,101320420300210,102100234022140,102200011100023,103021044011200], + 1020232111010140: [100423004302232,110030220000310,100110034332223,101223100300200,102001034002201,101104401020410,102032031440302,100113004304010,101310311000124,111303214132004], + 1211200234102112: [110021000410432,100042304102210,103202000110102,100013030100002,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,110124041140000], + 210430101201321: [100400000020210,100032000002120,114011300040140,102313234112000,100424011014010,111101100020030,101010224210000,103003210141014,110240032042222,110200022124020], + 1042032203340200: [103000011402201,110301232000100,110021141213001,100000244300040,102332001001302,110110234204100,102001021132022,114004310024404,110210134244100,102102032001300], + 1121203101224200: [101101401204230,100300304101202,111220014133001,110301010010124,101311324220211,103200041202101,110213002020030,103132300122020,100103020010000,102220120230010], + 1000214120001004: [103000004002012,100002011042020,100301421002002,100202140000111,103200020111014,100240101000030,101003104212220,102302211002004,114030310012122,100043021042120], + 1102301203103310: [100032041021210,110004301222000,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,114142044120310,103100104000121,110024140142000], + 1122110014210024: [102300100242401,102010004001300,111223042243230,101221121020302,100100221040404,110000124410003,112122034041020,100000030022004,101032341110042,110110121300321], + 111312400002223: [100231024320200,101001221022240,112014020232401,110201200000412,112224040202200,100020120112303,102403004020021,100041404202111,140322200322441,103243214023020], + 1004100022122420: [114404010003320,112000002000420,100013200412401,114030412303102,102200320200003,100430000030122,114300104032040,100100101040120,100014011034001,110143001120200], + 140001310300200: [112004202302034,103300004021200,102122214131011,102100104000040,100023031000024,112120224040040,100020004101012,102402000201011,102311011000200,114200024110134], + 1110200212002001: [102100441341013,111130224102101,114201000004122,102201024041200,101223301020130,103312401404300,102322020212020,114403304140021,100031131042030,101010134000004], + 111102100202021: [114002114012041,102012111102321,100111214302000,100104104302020,102212010200043,102000000221201,114121024120120,112101230204411,101202134232021,100012334310110], + 304024020001100: [102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102310400240000,101201340300430,111320312222220,102210000201040], + 114224120220113: [102000004002101,100422314300200,101403014020203,100123011004113,100420001002101,100042030120422,101134224001001,110020001224021,102321234111310,101004010323441], + 1101020301403100: [103100314001030,114101004121020,100040301042132,114010040023411,102001010222103,101021104212100,102102241341004,100000101030412,103031000121000,102020300220201], + 123212203101140: [104111102100000,101021004000000,110000102100212,110130042014110,114423100002212,100011401040040,111121012212042,100001020002400,110012102130100,111000230041031], + 1004020020011032: [102030004002200,100040014210402,110014012001011,102202014030042,100100410401030,102000040222041,100400430022423,100201314104221,112323230202030,102303044033020], + 121300041012021: [100010441032031,101231211020143,100022021024200,100024100201424,101012011001200,100003014211000,102012214003000,102142020212310,100102204301113,114100220004120], + 111221000012204: [101421000300000,100231100410023,102020424011001,110210000123320,112130140200243,101043130321113,101120100020310,100400420013021,101212040300120,101000121141320], + 210143112113133: [110111400400013,102101300210200,100041044100100,102041014011220,102301104110010,102320001000040,112300031103011,100100140024100,101420321010000,104100042101240], + 1002014022024202: [111203024131300], + 130000124021121: [111124004101012,104102040011120,114103220220104,102120004001310,102430121110340,101021204000200,102020121102120,112141104020201,101200111020111,110001200422320], + 1033242102113400: [100002031120341,113020001020004,100003044210040,103243401401133,110012212132410,101210014200430,110014011320012,110400022122040,101111010020120,100223400002001], + 114102140114442: [110000202003120,100130220400000,102120010200131,102312300220000,112221024002232,101142014202110,102310110213220,110020120041030,100013040404011,101020111140040], + 134200101023110: [114020000030002,100201211003004,102014002000401,103103241421322,102221414000020,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 142342323300004: [100003011041040,103200141404212,114014010043112,114001112300222,100203141001002,111000312112404,101002301030040,102033001133411,114122440000024,103000020103121], + 1110044101010300: [114010312242141,102401221402002,102102011342302,114000402330220,100000044203240,114304104031224,114223100000020,103143000120100,114100212201200,103001010120120], + 324040400134020: [112024442000120,100024010200212,110200002122130,112002022302433,100010021042030], + 212100120211310: [101204444040122,102114240204013,100011301043341,103001000120011,103121020222040,101102010301021,112223222033013,101002024003002,102011010232300,100002200202041], + 103100100242202: [102343230224321,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,100001104301200,1001300002020110], + 1030103000200410: [112001002002140,200003230020033,114101104124300,110040000440000,101140114004004,100402320010000,111104300010000,101040030302203,110131421320200,101201001012001], + 1012100000112241: [100444212001030,132110011201141,134230121002024,100402310022042,200101033142340,100310001000200,103012001410200,100233001001411,103211024020021], + 1211312202020100: [110000012103121,110212201200033,114010234012413,103114001404102,100400310020430,100011040023100,110001012001403,110120134222021,102214214042032,100021234211320], + 1000001411012400: [103304001401001,101210104011110,113422210102022,114002014102000,110201021102400,100123110402022,100030300121000,101200001022000,110021102002003,111124004102400], + 1401101140012203: [103201200111010,110430011311010,114102344121242,110012231322200,101022000320120,114003300023020,110003310021031,132202044122440,103224324020100,102102001000010], + 100341020001013: [114400034122341,100001101023021,103020001400040,114002004033124,103030324000302,102101104000212,111120010020104,102002304010024,114022304100241,101000011111400], + 1141201331100340: [102021400220100,102301040242220,110101312120110,101020041110102,102110031342220,101401414024002,113001042202101,112002002021204,102140111141440,101222131010322], + 104310101024114: [101211002120221,114421404120314,100200120430120,111110232213021,114202244003043,111002042204201,102100144021210,114443002314112,102000121101120,112002200244001], + 1000121214201210: [102340200224222,103212000212121,112002010220004,103211014000111,102000034013222,102030021100041,103210214042004,102311020240120,102110110210032,102202001113034], + 100432030420010: [100114041040204,110100114220010,111220110002020,111040004110102,101022200320001,100040010400120,100030140002221,110404111001032,114140102320411,103022031411010], + 241301122240320: [104110021244203,102224101113104,102103022002001,100312331004000,100142431013000,101000031001011,101010130321200,114004322330012,114202144102100,102102401412242], + 1001220102031103: [114100012313002,102001011442200,101004202403121,100304320140012,100200034020100,101200100301000,110100000100000,114404240034104,100020001041202,110104000034043], + 221110001000021: [111123010022304,112003001133011,110213002132000,103010000110210,114003014100103,111010132204402,112102204024002,100100424030003,101000131030120,100031000004222], + 221014011010424: [101012000320221,112012002303014,102101204002343,100004340004131,102010031100000,100200411000410,111021220021002,100131201202420,100220111000200,102221014033000], + 1023113120020310: [100402210013013,112032040234431,110010232004000,101020004000000,101004310324302,101010030302022,100120040400011,100214044220201,110410002020200,114321224032200], + 110020000330402: [112233000410001,100021214200024,110102044223300,100230211001001,110402042222042,101001411000403,114014000010301,110102100000223,112121212311000,103004011410021], + 1002412241210120: [110400112011100,100321004011041,110002342100014,110241024242442,110021312002040,111101042244210,110441010002400,112220001100200,114203104001000,114302200014241], + 1010200202130120: [114004104100000,110402100100230,112303010200000,110001120042000,100200201002303,102000024012202,114200204000020,103111000211000,100003104300143,103024141414040], + 1034102201042200: [110211010014110,110140402004020,110012102100200,103000104010221,101012104010033,103024014040010,112201421101233,110032114200240,111300432201011,101000201032022], + 301412132130021: [110202004211120,110223224433004,110341010044330,102031144010424,100302420120212,111212114131222,102140001441301,102223400201104,102342120222031,102221010201113], + 1010003001121012: [110041030411301,110001041213031,103301210142043,100002024200142,102411000200000,100400014321101,114100122342002,110033041200104,102000221442214,102402104022000], + 132234204303001: [110400022010030,102130411411444,103103204000110,110202204213200,100441301014410,114142102344221,102404004001203,114001024010010,111212204420203,114230020000033], + 1102000022023100: [110002212130403,101042411000122,112041402312040,103023021244000,100224210432130,101002024012004,100120204234213,112030022300112,102010204002000,102102004031113], + 1030010401020022: [102224024011142,100101401040102,102322001000010,112240330200110,100114010023242,102014001100101,102100401400123,114010120044013,100032204102203,220310441312320], + 1040221243020001: [111202114103220,103000121421121,114404302200120,110140011300020,303320304020413,111020012233400,1000313001212002,110013024421020,110001002010000,101043021021030], + 242040330022142: [100003021033300,102110020202330,100001010014420,102101220214011,114001214100103,101200004040021,114023314013200,102040104000040,114022120040112,102311110240101], + 1002041020223101: [114201010001201,100030024300201,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100,110012404201130,102311210240013], + 1042211233322113: [103130311444100,111343012200000,102340040222321,110413402111101,100004101020200,102422000200303,101222220302400,100044201210002,100000234101201,102402040200201], + 1422302220034312: [112000302030120], + 1100012213200103: [112014002002044,100421200012012,101441201011100,100032321230000,102320000212000,110122240004011,114001204104041,101240020300231,111240120002010,111102212220414], + 312122430021021: [111102010012102,111300030012334,110012000141104,140300020110000,100003301030120,103044004034040,102200301100040,102412140201410,102024110224001,100341231000131], + 100100001423312: [112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422,101002024000400,102202031002304], + 240122101002004: [100232121210011,112022200234200,110043132100300,102220120203200,100002004201122,110132031134031,1220302241034202,100240200430040,114110342312140,1202111000310100], + 100300221400004: [110001230044420,102100111413102,102201110210331,100012010200202,114330000002220,102000401130003,102000211410100,114004312330002,100110110020203,102110214004404], + 1044101301024431: [102010104000124,102424000230222,102102100210000,100002420121000,102001301320420,110202012033100,112000001132100,102213214030121,100004401020202,102002001442400], + 130101000320304: [100212424322433,111142000011122,103020201401020,102000401132401,114022020042232,100200410434002,110002022130324,100221124121143,100414300433033,102040001032100], + 100024402024202: [110000212000300,100000010202003,102400001110102,120413040002400,101221001202021,112020102001020,110000401310201,110001004413010,102001030240003,100040331020102], + 1400001000201000: [100003224334120,100404224300012,110204130004030,110003200132101,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440,110110440020002], + 1001300331002023: [102010040210212,140230300211231,100030010000110], + 1000400210410031: [101400001011042,100002011020211,100100110010010,111110002213142,100002131030310,111102214100400,103220201402330,114020010040100,102100002004041,102321000221140], + 113333000102303: [114402404141241,100200400430003,110212022133311,101041210311410,110022004211030,101210021021243,100140024230240,112230240412241,110000204203220,102214000210013], + 112002142001021: [100000020004101,110011232100412,100220040142222,110232002101410,110020120040121,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300], + 1001040042401010: [112401024044240,114203400000000,114014124030001,110021401213103,112102004020111,114000010042420,114102010210000,100400332201021,100042021022002,100100004300002], + 1004220004021402: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,111000200040314,101014001001410,112030010234104,103414101212410,100123021223100], + 123112032002242: [114002200000421,110240301111040,101020321002002,114030004104220,114200000003241,100104004301000,102301041000014,112142011101404,100210004221341,102230410202021], + 1020100200221242: [101133001104410,102113110210240,100341130142101,102100300210100,1100000411441420,102440100200000,1002203010011112,402001100011120,100020321030202,402202000003002], + 1004021010330222: [104103201240410,100300204010001,100011320043322,102204100232030,110110012110224,100200011220231,101004410311320,100200310110000,102002122014040,103112010212244], + 1420112222101032: [103240411403020,101020030332430,101022004214304,100020101031131,101010000323030,101001414212120,103310220113140,114200202330330,103101101440200,102114104001041], + 131320310024001: [114033300040100,100000000412112,102330040242220,102310400240000,111320312222220,101241100301411,102002140220202,103000101414111,100001000012021,102304001004200], + 1114011144102002: [101020204002030,103100030100010,101400004022100,114031212300211,102013110201200,114023010024000,102042321440100,114000204101231,102300121004222,100000400412200], + 1023002000202412: [112000112000031,100142104100403,114202204113222,101244001000204,100340000140032,112024000213011,103013024002104,111000004400110], + 1121130004304101: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1011224200200000: [102101004000411,101200210300413,103210021401223,100323140143012,100004411033203,100002211032042,103202211423100,110241042102233,114101000003304,100100314102200], + 1023004101000202: [114222004004201,110400323041022,1134000004202341,101140334001111,1012321211130014,103224040221400], + 100300203122004: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 112014030121410: [100120011004032,101100400333023,100303111202002,101003201030041,112314322001102,100421320432102,110202201303021,103031010100133], + 110112010031201: [114112432204002,110412001240302,102044001440122,102400304042142,100110004103103,103230304022210,101004204000013,102023120204401,111120032214004,100012204310100], + 134040004240130: [110001022000001,110002012000400,100021004310222,110020422131120,100001000100000,110202222043022,110313312021120,100220214333200,110330234422000,110243000001123], + 1042024202201024: [100240000032004,102000000210211,111010204401023,101200010300001,102211300204221,100301004321221,101220200040320,110440100030213,114402412200144,100031200001240], + 1034212044240011: [112102202040000,114100002204212,102003000212104,102030204000041,102110021341014,114320100002004,100210120430200,110203221112042,102110001401222,111201300013403], + 124300300221202: [110224044242243,111124010022000,110413402111101,114313302330131,114223040021400,114220334110000,114420004143002,114310000212010,102141322000030,120310230422021], + 1034202041042044: [102020314012030,102322020212020,102020224000000,101242101020042,100031131042030,102421010200213,114021040001000,114110000002010,102301141002223,114000002330112], + 122001021422131: [103204214040130,100142010410011,102041410242244,102323201000412,102212434110001,112102314020000,114010002304030,101300040310000,100012124101001,102110021023034], + 1414000200320300: [100310014310311,100400000031312,100400010013000,114110024003013,114142102344042,114114040001042,100000030003111,103002004001434,114200000001000,114031122210003], + 1000302102201001: [101122104200222,102130104030203,110220032110210,100040114102013,101000004000014,101100024022142,110140004200421,100010204313001,100000000004000,110024022200410], + 1202334024124233: [100121230031032,112000431120410,100122200012014,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,102313204114304,100013200100011], + 1101014103403301: [114300022300010,102011424013030,100420014301302,102201102000000,103012220110230,100120421004010,102012021101230,112220430200204,103121404002104,100040424301120], + 1000030402214111: [111022412140224,100212034221414,100121301023030,100020224310403,100020424102200,101121401110420,100200001211010,100221044022102,102414000204201,100102004220432], + 102202141021001: [103120400210000,110234012243001,110000214202000,114223212320410,101004020312432,100302114311412,112214114012021,102220311111011,101200204234130,102410004040302], + 302000112020002: [110240301111040,114200000003241,103103404004112,100110120023012,101042044010040,112021014022022,112002322032030,101040401030013,111300002204430,102202144022220], + 1010310001322100: [110200000113011,102101001340020,110002202130110,102032114021101,102110210230401,101040040322202,101422244020101,102142120224022,102104100233030,101210010304011], + 1421020201234204: [103111010102100,110230024213001,100403312201120,102220030200111,100411221010100,100421001011020,101022401000022,100000414100213,102300011003010,110000321010110], + 1012212002012302: [114003212210013,110302012103114,103023101400002,110010120440200,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234,102043221012112], + 102142440100142: [102232120200100,112000142000331,112100302012200,100022341030311,102010100223003,102101001341304,111004314403022,100402100022022,100040210100004,112042002002400], + 143113013210042: [102430401401200,101401000302120,100000020413120,114430014144403,101343421000022,114021424032110,100023024342204,112020002300103,102012021102214,110102200030440], + 1001020304000241: [100021400101221,102241341113010,102300020241001,114100124100413,101001114012114,101141400302200,100002044101122,103342424024214,100100021040420,112002242001002], + 103410100000040: [110424002020032,112002021120230,100032344310121,100302230142111,110010110002202,101412010300340,100102244234110,102020341130000,110102020012000,110102220020204], + 130210004211201: [114020202300000,102020010221120,100104211041401,100010400101020,101220021023030,102001001100042,102000020221210,100020131031104,102121040220201,114014102300002], + 1423300020022040: [110020231214220,100002000000200,101040200321020,114224000000010,112413012012020,102010104011031,112004142303000,102044421103004,100004100020020,112212000202012], + 102010110320040: [101232314010241,100301300121100,110042400130000,103020124010320,100021300101201,110230022122031,104101201240100,110000011012202,112102112301130,101244324043222], + 1041013411400020: [110230030014304,101421211012113,102000121122221,101222200301320,110002012103110,114112244000201,110020210040142,101000034004034,100204141000201,100121004300112], + 203000421043300: [100030001020201,100242141004122,101302401003202,100004004102002,100011114300334,112020201120340,102303004110022,100110201042101,110134201140010,100000001020344], + 1022220114241420: [110120200032000,114132242201400,100033000122213,102140011140002,110110402012311,100041200201020,101422000302424,102204024011121,101101430332010,101012100320111], + 1013201020121320: [101230111024130,1112100200412130,1320100232411004,1000104021012332,1020024112001010,1000343442023043,120100010104132,111401004420001,423203002400042,100141040401001], + 1101000211211030: [112112014020002,100004414100021,102113101342120,100004340100020,100002141021000,100013001030230,102212204012004,100042001024000,103101004000424,100100421020012], + 110104042210201: [100031034311401,100023210021210,102100104000203,102031011441221,110200101200402,102021201410011,114103020221100,103211014030010,100034124101023,102400004021004], + 1001310440104414: [101001044211204,102100010233022,102120400212001,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,114000030014400,111120034400000], + 1400112300142210: [103030411422014,103043334040203,110422201312402,102120131401230,110200302024000,110210020104031,113130020101411,102041210224224,112200030203124,102004020224404], + 110120400100030: [114011322300320,102042321133010,114011142210000,102200411122001,100200011200124,100201301002301,103233224022102,101200004042014,112120100220010], + 1102000001241003: [100003031030034,101001044211204,100031034311401,100023210021210,102100104000203,100000140100020,100002014200021,103211014030010,111010024402022,110000030411013], + 1122204010000404: [101200400041032,101041310301004,102232110201100,103001224014142,110000000143124,114431224113420,114033012202420,111211002241330,102012000213011,112040004000012], + 100100004302220: [102210224012020,114313302321311,102212300202110,102210304013310,112101020200032,112002002030004,111103214104101,101220000302410,100004210412101,100024414212001], + 1102230110140202: [111201312241430,101011114210004,100000040410034,100010030122310,100003314100400,114002410041201,114200044004232,111212412220144,100002111231143,100102104102133], + 131132004102000: [111130112100210,102202200240222,110131044200121,100100004102234,110223332120231,100001024301322,114013044102010,114220114140122,110200210110130,100011201220003], + 1032110022310110: [110002004410202,102103114000024,101101410010023,112041002002124,140343100002103,400200234320200,101041200320322,110200320000000,100001424102041,100100021040230], + 1101133022102010: [1010400230221020,103034010121101,102302200210010,114140004123122,102143202000400,100002301021040,101321311004010,102411201112404,102110241342210,114122302311011], + 233002011044010: [100012230204000,101101200311102,112401402023020,103142104001331,100200204123011,102012024040044,103031120143010,110020211221100,100000010004223,100101130101111], + 1400004134041232: [102304130242220,110234010110023,114020400022001,100020034302021,103001001424322,102002221100222,100124030401241,102101044001201,114123100221401,101411301011220], + 120213400311020: [110020000440124,100122211044424,111120442100320,114312112320302,100020230104020,100212324104022,100230000410021,112102020234420,110120241324003,103100024003112], + 1044340110002001: [110120101220000,101040014002010,112001001133213,103112400210001,102000144014000,124204212002003,102400041402003,102311101002242,102110210210004,100000100412410], + 1100324202220103: [110120102041110,114002242304240,102100111341030,110213131203122,112114004043430,100002334340000,110010432000001,102111044004101,100121101023404,103310324030320], + 1041100120012210: [102121221343020,101010101022202,112104424022201,100013211002142,1302314034023041,1300034431310021,1001010233020100,102210104000000,112012200120020,111023100040110], + 1130320044004240: [114002014104121,100011200400003,100110110031302,101000000323002,100022114104012,102022000222343,103204140100110,100102401041104,101210010302032,100200004031013], + 100122000400104: [102202000201220,102203011120021,100401140034220,102103122004211,103022230124332,101242004043300,102102131340404,101010334004200,103003040102120,102420041111041], + 1031303034032022: [110310422121022,103000004012011,112121310200022,111020104110040,111001304121002,101034404001420,104032001243110,101022024000120,103410110130122,111010312141210], + 330004004001000: [100121230031032,112000431120410,100122200012014,102120400212001,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,102313204114304], + 122113420031031: [103120224003023,100020410124020,103123241213321,110131142010001,102100204000022,114142312342002,110000104203121,100312200422101,101200001020200,100031001031042], + 102401100002212: [102041020220100,102023031321010,102220020201230,114041124101040,114004202300322,101401424024210,114003104100012,114010214013020,100112404231200,102303021004001], + 1103003300403121: [124010311303140,111001202231001,202220202402001,110101201010021,101200134041120,110214302104400,111024304401122], + 130210321031400: [110402001342101], + 120311101100000: [100010101043200,100231024320200,101001221022240,112014020232401,110201222120421,101000011020103,114121202312210,110201200000412,112224040202200,100020120112303], + 1034020324300201: [102104004021010,112033000244420,104132001240113,111221000010010,114302044003120,100001104310020,102000100240000,100202234032222,101024034001210,114400220000013], + 1140123020100130: [103100304000100,110100012141120,101034204000304,100140040401300,100221020410000,110101211201003,102021421442001,102220044000002,111002100002201,110301002000101], + 1021102003320000: [110202032123210,111122004100020,110412244220110,102411314024401,114001002300430,110101230100001,104102130014402,110314042102142,110411130100013,110000022003412], + 1103414201201101: [103020031403100,114000044020204,103202430100244,102302331003300,102320000221020,110142020400012,103131420221204,102120141343312,100400201010114,101420111104213], + 101223144024303: [101100004002101,102121130221024,100031404344111,102034001100100,101400004040120,103030034003020,101144010014213,114022234031002,110034201323201,101204020300122], + 1210223202123040: [102130411411444,103103204000110,110000400030340,100441301014410,114142102344221,102404004001203,114001024010010,101322100311212,100041110411010,114200100000143], + 1024012000130001: [100022211042104,100100204230423,100423202201102,103131000120022,110004021102300,100130001021040,103000034040110,103100214000400,114200122301402,114221310212004], + 120442410320200: [114034220041220,102100422004010,100024004210111,102002100222202,103200234030122,101001100320224,114021004100002,102200001122202,102140020210040,102100320220140], + 1124041200314222: [100020114300013,102210010211020,103244411403100,112022104004013,100221001000220,102203114032020,110340004423020,112032302300201,100213204101112,100023020020241], + 1121402000014003: [101023211102101,102022001101234,114220102332012,102000304001202,101233100300011,100001314100400,112101201102130,101004040320002,101000201144300,102322144032100], + 1231114011014204: [100222000144103,101240000310400,114022002211402,110211000004002,114101402200030,100000034200300,114200022322000,103133001441320,110320400111012,112212111100021], + 1042110233401322: [102424204043100,112022334022101,100300211000020,101410401010030,103240001403000,102202204040220,102103100310300,112002014000112,114020200031000,101010231002004], + 100432020002400: [110430430003002,110013112004021,111012104400010,100432200033101,100100004100200,101021404000220,103120140210020,102143211343014,100112000410320,114420230000240], + 121300223333102: [100003101003001,100012400101400,114301120000030,112004000214201,102221002020200,114104004120020,100020224101141,103100201420104,102300104020420,102001101132230], + 1011111020142310: [103003400122221,110040431301211], + 1120103330040201: [100022100100000,110100000010002,112020204004003,100122120411101,100200000011304,101411440301101,100122404230023,101001034001034,102204111110031,110240100000322], + 130243024001004: [102100010233022,102120400212001,114313022302101,114021002302020,102313204114304,112100102300200,103001324000110,111201424100200,100002014200021,103212320212011], + 1001000224021010: [110002022002032,110000242002021,102023301101100,110042130002002,110211114244021,101010000324423,100402022201021,101004201142324,110402332010103,111111110022110], + 1100104101042241: [103300344012201,100011200201400,100201104224131,100002100204114,102203001300000,102101004001020], + 100043300024121: [102020314012030,102020224000000,100212024121000,102304110220101,102301141002223,112014010202200,100000000410010,102001024012440,103201000102140,114220100000331], + 120000000002403: [102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102310400240000,101201340300430,111320312222220,102210000201040], + 1001002200013042: [102042031102112,102102031403230,100041140201301,103021004022022,112122334022424,100102101041221,103011100120201,102002030240400,102300004110122,114000202300004], + 1440402030031002: [110024021040134,110301001232000,110000310134014,114000012334010,102001201443121,100200024301301,100202421000201,102400204022024,102002101410204,102111002004022], + 140040200312101: [110203022120020,104121030021030,110004320001413,114303000000120,100402200020301,102132204003422,100200144304301,100203321001203,110000210041101,100010304102110], + 221001304220012: [114103004142211,102021122110400,101212120302000,100000401002221,122300200130321,130312421011034,130221000032423,141221430000144,140140230202204,102000134002210], + 1004101230202300: [110410041242140,102433100201040,110000000040042,101213110301210,102204414041020,100102024232212,114002102301122,110200002121202,114020112202104,114102122200241], + 122102201010000: [101132101110121,103223201411202,112001001132010,110221412114120,100041411223021,102010004010033,100220111003420,110100400123120,111102300012024,100002301020132], + 1001303202443012: [101410021100102,100110004101000,100040020201004,110402402020010,112421302011301,102000034000000,112400200201000,112100020204342,101212310301011,110402030400142], + 222001221001300: [114034220041220,102100422004010,100024004210111,102002100222202,103343010113030,103200234030122,101001100320224,102200001122202,102140020210040,102100320220140], + 114044040101102: [110000000003200,111202004100121,101041204222101,100024024211001,114031000012100,102110001342114,110200000004322,114342044032200,111110020000001,111203012221030], + 1001001144003003: [111020030040120,110002000134011,101122040304410,103344200113430,114101104102004,100302121000100,111302202204022,112003402002003,102000104003032,111011402203004], + 113002002002324: [100130041013100,103120111442002,110022002100101,110433424221403,101310010340104,103001001220244,114124404003211,110014440412204,101410004022002,102243102002020], + 1102000002011131: [102133011413110,114022424102243,103111420110210,102022400203211,102131201401041,101230020303000,101214240300041,114203000002040,101410104044024,102102230210023], + 130030000124041: [103000004002012,102110030200120,100301421002002,100202140000111,114001032300011,100240101000030,101003104212220,102302211002004,114030310012122,100043021042120], + 111004444200020: [100101011010340,111111000014001,100021320123031,100020001011422,100014041042003,101023321000020,114033400011210,102010221132220,103100204000400,114020000022214], + 102100221104023: [100040201012040,114100222310230,114131002342130,110002022003101,110224130002014,100403122201202,102303304020122,100310210142030,114132012200110,103011011410312], + 101400320200002: [110042220002210,110410200100200,102113340210000,110011401011100,102221200204022,103021030102410,110430314220010,100004014300341,114100212211004,112001402002232], + 321200424241222: [101300124221002,103311100112220,102112002004120,114400004141104,102142234000020,114402044140023,100314420140013,101401204040200,102132004004123,100040021031201], + 210200123011100: [100312331004000,103301244010210,100101031041022,100000240003101,102100010213413,100032224101400,100041234101100,101021410320100,102301000241011,103001220100000], + 101430402100011: [102211230244321,112121214040022,100004004100120,100041014210020,114204120210000,114110030002020,100000030100102,101012400320002,112002100233204,100002131000002], + 1000000040224432: [101233110040000,100001214100401,100200220110004,103102200210402,110400031000210,100010134202001,110010120020100,114020034010120,102001201130140,100000204310440], + 110032000232122: [114113014000010,101200210302201,102340101000041,111201222220201,100021014100123,102040020220202,114140204123004,114330004003002,100102001040033,112032020220030], + 222021202020000: [102133404134022,1302221400222330,130000220021033,1120023242400240,131114110030130,113000343131000,410120000124111,431000021231320,413200300004130,101310000020110], + 100130102030100: [110000001324024,101020000300112,103100314001030,101020111001331,100002020410020,101000001111200,114010040023411,102012220241003,102110001342011,111120214102000], + 231143404140242: [112024232302040,100040131021101,102040234002003,102000011410132,102321230240434,114020100042040,102020304012040,102144012001120,102101111341032,100001001002330], + 1033430430043024: [114004102300332,102020010200114,102003101131002,100010400101020,102011320233100,102240044042003,102120104000203,100010220021024,101024301002430,102003231440340], + 220104401200000: [101012131000024,102110141410402,101044001032114,100001111032112], + 114121103010221: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1123021040432001: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,112003100241220,102204304000304,100301104104210], + 1101300200023110: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 120021012210000: [102201000240040,101141104002200,103320300114001,100101000010002,110240302100000,100033411000232,103021100002140,111024112200320,113110032411002,110002004410314], + 1040020000010410: [110040102001121,110310304430141,110301120404342,102113304130002,114032024012040,112000210210301,102012124012120,103002041402004,100000120201232,100031341030021], + 112004220004101: [114223204100010,102100104000040,112132434020310,112120224040040,100020004101012,102402000201011,102311011000200,111114200024112,114200024110134,100000020202030], + 100400013001021: [110441140102024,101004120224442,100413311002132,100320421001431,110210301200101,111131102210013,110400241240242,101001024210000,102210101121104,110023102103200], + 1030002211310101: [110201201211024,100422314300200,102141410230020,110020001224021,101021204000200,110003302000101,111122222240232,102340004011311,111134002210042,100013014300034], + 1142001133130112: [100422000031421,110302040102004,101402114042420,102220021120430,111341300012200,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401], + 322000432011220: [114023002202030,100032024201210,100013401040442,144442110010421,103012134011120,100031030004303,130013324120310,100000010413400,100101132014001,100402230022321], + 1040010142002310: [101020024001041,100200201000001,112224232044014,103032004012111,100001404100110,110131022014120,112000002000110,101322221001300,114421204140122,101424044043122], + 1013040200402020: [102101004000411,114221312340014,102434121112224,100311204312442,100001024100241,103000020100131,101211204201231,111130412210000,100011300412123,102000004001141], + 1430400024011230: [100003211020020,111000240044102,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100330204322010,100122124300402,103031114000000], + 1030012410100210: [110200220113023,103001114040201,111200042221400,104104033101401,102001004003320], + 1004040010200004: [112211122030420,102100012000020,101031201001231,102000010202042,103012240110400,112013012301132,110202421203200,111004410022000,102221241110321,102101320312141], + 101340211301001: [100410300030201,100132130421010,100212001012200,102041231120304,101020121032010,112100222300030,101302314220212,112013100212044,111130220024001,1000122140130010], + 202222000440000: [101133114022040,110210004434230,111100132241003,110100000020000,101134414020201,100002004302011,111424224422011,102301340200323,101000004210142,101340020341021], + 1000124124122331: [110013312204132], + 120030000221000: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 1440432433001022: [110001022000001,110023342101220,100021004310222,110020422131120,100001000100000,112220322030220,110202222043022,110313312021120,100220214333200,110330234422000], + 123401430210120: [102142012001000,100000000014401,112023210242031,110243320110010,100022120412101,101002014013300,102100030222104,102120111021022,100400100022040,102303000242000], + 110021201324010: [110000002100440,102330031000000,102221410200012,100000204312321,110213401202110,110300121220201,100400440012042,112410022010031,114034424104042,102213224110010], + 1000130423410130: [110110011340130,100210304330211,111121210031101,101041010324010,102104210214401,100011230101432,100032024240322,103202224024200,114400044140001,114120010000040], + 122110440133402: [100023324302420,111121004103434,103111201422013,100212024121000,100001001033200,111121024400002,102001024012440,100033200000420,114010112330000,101304004232410], + 221210410134122: [110432001311002,100124004301020,101010011002124,100311010140302,111102004104401,103040104031010,103010014041201,110000224214210,110120100020012,102102030210224], + 102021110400021: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,103040020122332,100000024100000,102200130202201,110012101102100,102102304001200], + 1100033000021100: [100022214203010,110310011234031,110123111300000,102001010240202,100003040002042,100020031041304,102120004000101,102020002000420,110100302010110,101220100303222], + 1030101231024400: [100031300002022,110210022120040,103002044002032,100101020402424,102201112000001,114211040011201,100020100423404,110001222202031,110403411244003,103000100114041], + 1140142023012210: [100143114233104,110400210100340,114200204000420,100410130034202,100112004034240,101410000304110,100204220431100,101011121032013,103024140100113,100131114030200], + 1002143002023200: [110140240121100,100420320432032,102200301120200,102021440221244,100300200142443,114110104002002,101004010300340,110210104242110,110413342122004,111030420024000], + 1002103001404101: [101013004000130,114014024101301,100130014030031,112010140202000,110010112030003,102001020220240,111310002200011,103402204002011,101042021121310,103030124044100], + 1123222240024412: [100122004300410,112400202020003,102000224000011,101212040303123,100030300124130,100001100013110,103122000211420,100032301041204,100410304320220,112030022303101], + 1000201004100001: [100114234102203,114400112311040,100231124320130,103040424010400,114203004113000,101141111100022,100000404100021,101332011001000,102103000310202,100123001012001], + 103202034314424: [101221020040220,102212000200124,100103104302044,101041030320401,102141212000200,101203121020430,100030010102102,102020004000014,100000211023014,114144014122041], + 110110003101000: [101240220300022,103011431401300,114102224000201,100022021041122,100013011020311,114021004100210,101040421033204,103130011441212,100020001041231,102100001400000], + 100201021044221: [102424204043100,100113220020101,100300211000020,114310200002400,103211220100010,101202201021310,103044004010022,114130020222342,112301032022414,102103100310300], + 100020022000421: [110201201211024,110123004401121,100040341020133,111101344104210,102203031121210,100410220030300,101110020013040,102032124001120,101021204000200,103313021402013], + 222004321004201: [102021100220120,101222041041012,114030234020304,114413200000230,114010024020443,100110300414001,111302002221301,121000033324102,100200203313422,112024201004140], + 1041114000211240: [114240012324120,102014140200013,101232001021020,101022011003022,101240101000020,100003101003001,102313100240202,101024001032321,102020010212020,100022014300002], + 120010100222114: [101010034002013,110001111011031,110021304203102,110400120400000,100203011004130,100114104000040,112401000200040,110010411100002,101201030303200,110101021201003], + 141103220011200: [111003204111140,110200421002003,102101142002021,100403304320200,110200024432011,212240000101000,100210020430111,102110211120323,100233031002400,100000000400201], + 1141420030040144: [100040341020101,102121011402000,110223000122030,110004010020200,100010111030014,100100121220014,100130204323304,101004111020023,102011302002212,114040100041010], + 111202434242220: [110121100004131,102320000221020,110142020400012,100142011022211,114230344103210,103114211441300,100004104241121,103123200222442,101303414220001,100131000400012], + 222011114102012: [112010300240033,114003234102244,102112434004041,112430202020210,101412044042002], + 102101402011210: [104232210210303,141111210002414,102000444004121,122013001001000,110002211101112,111300212011230,100401002201241,111022032202320,102100124003112,111000020023200], + 132311000000031: [100243401002310,100004000100101,114230014000002,114130104001000,101004000304012,100022210410130,114034424104042,112043001120130,114021214100300,112204111102324], + 130020114003021: [101400004022210,102031021441200,102301324112020,102140202001100,114404020002102,112102002010300,102111421342401,114013222204012,100011401030000,101240201014311], + 1140201020114021: [103001021432214,101002234002002,102214021120301,100404310020100,102103202002232,102300004112403,102100001001000,111320410010210,114300110003140,102130011411114], + 322000120201002: [102142004001013,101213240301002,100140200410200,101033040342010,110010000403030,100000224340000,100024020103104,110402101344233,114000212214022,114241224112000], + 1140213002004213: [114020000030002,102430401401200,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 102441420010012: [112133102012033,112014200224221,102142120202202], + 1004040021000310: [111011304114002,100000021023020,100100220423210,100231020112302,110013410002100,102000111441024,102001014002221,101110204004210,114240000000041,110004010004010], + 130014000323000: [111120030010031,100040204313012,102102002002242,110431012224002,101230331020012,102123402001200,100004244210201,114220320210120,102420124024204,101002030300111], + 1101331000204240: [112224111100141,110113314221413,100040134340044,112004310224204,110422201312402,110302011332024,110200302024000,110210020104031,110240411110010,110001000142403], + 1010003001321011: [111240220002100,110030344201413,101001014001021,110100001014311,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200], + 1040420003042020: [100032041021210,110004301222000,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,110104002010100,102042204000300,114142044120310], + 1110422101320111: [110322022102000,100032201233122,110310004424040,110101020124104,110211142020210,101222244040110,112400124013132,102013421320121,100001144314023,100201020431003], + 101430122140014: [104441021202022], + 1030122120020202: [110220100000102,102100321320100,114042102330002,102102011414242,100041004100221,102310030240210,100000000412112,110000010033022,102210000201040,110110122210000], + 200120020304033: [101201104041401,101402011014002,114410012310230,101423011010400,102141100210112,114130200001000,100022224312021,102122421340210,101011104014011,102031134010020], + 1021400330110023: [100041000411231,100004004100120,114204120210000,114110030002020,101012400320002,112002100233204,103303001400240,101201000300222,101200200301000,100000004214021], + 1100004223202210: [100400130013111,114101034001001,101002330300101,102100004023000], + 100242034400003: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,114040204014042,101010111033143,100021221024312,101221031020331,114301120000200], + 222000021300204: [100024000110221,102340221000300,100110020031042,110422102110221,100402002201002,114130014001202,110010220103020,101011014002032,111004100022110,101002201140040], + 1030010441100031: [100422004320024,102420031111001,111000022200230,102300011002030,114044144020400,132202000104100,4000113102314022,1002001000001021,113120400001003,1400100000042343], + 1010000113002104: [140420100400012,132110011201141,122012440110401,103211024020021,102010021101114], + 102041402032001: [100020400410010,102103441142340,101211210304010,102100001004041,100000414104102,100001020044101,410310420012412,441000221120012,101000020100020,110002011202022], + 1200200024003120: [110222020012300,100432200033101,101230004040022,114244120001041,101021020324310,102120111142201,110010011212411,110102322040111,103230010114302,110010220000210], + 1100000443200001: [100032041021210,110004301222000,114310000001232,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,110104002010100,102042204000300], + 1200124421020013: [112000001121121,114101222204110,100244340430210,110010104412000,102204424030220,112401002021204,110002112102110,111003410011000,100200201001120,100400100022002], + 1024231012020003: [102112201020000,112220102043102,103042000110130,100231200100003,103224224022200,111404320001120,100123010402022,111222212223204,110320000110021,103014004000102], + 1414000100020040: [101030310322400,112100134020020,101211411020304,102132200312222,102003124002023,102230320201000,101042201140102,101000320320031,100201000440110,112432002023000], + 1020140142020211: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,101002200301130,100011120000004], + 104000211010004: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 1100143000102000: [100000101040120,102323320240010,101022344002202,102112101020021,114313044003041,114024222212420,102410000230114,114201234002300,102303320221102,102120104131410], + 122100200040131: [102141242001000,100121124234400,113000110124020,104144130014121,100130040002001,112203042030000,110114012012120,114224420001001,100120044031042,101400021103310], + 1111010024431002: [102412004000132,101233341022410,103013314020203,110120211001001,100300400142001,100000120121031,114211324100004,102002000222021,110201030143012,101124211221020], + 1220001020202200: [112312022021021,101200101021000,103000024014022,103122104002013,100040404102010,101020404210020,100121331044301,100001001021002,114200104001010,114040414014202], + 120002412412012: [102111024000402,114321002320001,103220011411101,102311120222404,114020404020132,101220111023331,114220014111304,114400202310013,101030301000221,103313200113023], + 102100043000101: [112240102020420,101002020301320,101024301001431,102200020203020,114220020213122,114201122324130,103003230103011,110020002002100,114440320000003,111040414402121], + 1004010322144031: [111111202220201,100100001040040,101320320300220,112022102342404,100020024314033,102212341122000,100032101030101,100430200420000,112004414002210,100020441001221], + 1042102002210000: [110232002101410,110331400400440,100424331001120,111040300024044,114021112203114,114000004110202,111020232200302,103124000104424,114411120001020,100021020414340], + 1030400112042001: [102100201440001,110400011311001,103300120141130,102110004000221,110040002132020,111144202220301,114224204100310,100000000120200,101434031010012,102304011004310], + 1002120204002020: [110000002100440,110203120112002,102330031000000,102221410200012,110422010000200,103112021442033,110213401202110,102300104113403,100400440012042,110030231214100], + 1432143000023104: [110042112120300,103120031442112,101003101032341,100004121002021,110223100100433,101002310320000,111120022212034,100001244311023,100003000000440,110301200013443], + 101103220201313: [114200004002011,114120320224032,100001221000324,102300434110242,114030012303012,110202024403000,100300104101111,114213202341241,110002120020011,110021012204100], + 104102042310320: [110301442021010,110001332103022,100104004300024,112041000220020,111304202202230,110000002001040,100430440030020,100100124301211,100110004102340,101234021200040], + 201031330012004: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 100031010300000: [110020000440124,100122211044424,103432211210302,111120442100320,112201401104040,114312112320302,100020230104020,114110412311002,100212324104022,100230000410021], + 100141002033100: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,102010421413322,102114020210302,100001100100040,102113131343200], + 121010401221010: [114400034122341,112021201120101,101000104002203,100000121024021,102101104000212,111120010020104,101000011111400,100020004212223,112030021111302,112101002304200], + 1001203000031110: [114100300222100,101110111104231,101030110300001,100004101233003,110012002000010,100021220000430,101120030332424,114330102320220,110110422011432,102143230310120], + 100103120242031: [112131014040114,110000202000043,101012120300424,110322020011332,110304000102141,110021104411410,114323102321122,103100000110030,103014231241000,103100421241010], + 1010000400010000: [114300020001420,114133230000102,101021120323020,102234010200304,100001021030011,102200100204220,103200110102141,100021030100001,102203301003030,102334201001100], + 1000001200132004: [101220014012231,100104024303320,114422004110130,112210132031001,102012030213014,114021114023402,100210004343102,110031200023240,101000140310132,114242312322020], + 1202012002010210: [100020331001310,100402010022123,112040411110201,103320130140000,103120300211022,102201012022300,110141031320010,103202111411203,112131442302432,110013041300140], + 120020010110010: [100000131221101,110001010443143,100002020004101,101020324011210,113430000101010,100110101022034,110122320000230,114300220013421,102023021120102,111030040020222], + 100140330120400: [100011211042100,110421001213004,114210010004202,110110211240001,110300410010340,102010004003021,102000121101004,112034122000441,100000010000021,102031020222014], + 1004200023014104: [100002104302320,101023424210024,110031024200343,100110411011010,100021244103133,111230424101321,103102400211002,104110202100102,100113040414312,103000030101020], + 203030200201120: [101000041142321,110430002112002,114312022300401,114000320000040,103000111421112,100110001000423,111000000041000,110211010101001,100403132200002,110042002122001], + 101241202100004: [103301244010210,100041234101100,103001220100000,102401024020221,111231012242301,114444004140210,114114100214000,101104320012044,100000120120001,114210224102122], + 111010310114321: [102422114040010,101204400304011,102020004001311,114103212312012,102002034010400,102020030220401,114231212342200,100020011043020,112022200202104,100040211031313], + 1000430000424100: [100034011042140,111202114103220,103000121421121,100200241001404,110400302222204,110310011234001,111020012233400,110013024421020,110001002010000,112201302024400], + 140310203002140: [101020414010211,101120204002140,101142004000232,101020024002022,110120011002420,112002112002220,100012304300004,101011421140423,100400320013200,102041314012004], + 1040040200104102: [111131224100212,102010104000341,114120100223000,100404010020000,101240000302141,1204002112200213,110010302002100,102101201121000,101100001111040,110031222130200], + 100012002010000: [110001422030011,102144314002302,114200112340002,102343014022001,100211000430431,101213240301002,102240320200212,100140200410200,100020020120200,110210001214000], + 110132013420040: [102111000202241,103232220103211,103202404031100,110043132100220,102022004010004,101201114044200,100402002200010,112234224002101,110040304210001,101002104042030], + 1000020414030102: [100002014200331,111020032203301,101000210303342,101440400302320,101012220323021,103000121424330,102111021022024,101012204221200,100300114310112,111100020020010], + 1000020100000131: [102100321320100,114040102210432,100034004211240,102330040242220,102140121410131,101201340300430,101241100301411,102002140220202,103000101414111,102113111343110], + 1000200221201210: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 111033202401014: [101213114040141,102210101002412,111140100011101,103220120212134,111103314101000,100012011022000,114140104122430,101100010302233,102100402004002,102000111102000], + 200110003102100: [110120144200000,114022412330004,101200221022044,100103104302044,101041030320401,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210], + 220030102121210: [110000002100440,102330031000000,110422010000200,103112021442033,100000204312321,110213401202110,110300121220201,100400440012042,110030231214100,112410022010031], + 1000122414010222: [100100331000022,114222040214020,102032000223300,101000441140230,111300214121201,100234124120220,102204004040300,102202021303043,110132124400400,114112014003202], + 1042041012104000: [103130021444021,101400004022210,102031021441200,102312301104422,100000411002023,102303200241200,100022021041122,101200121022000,114300234001100,102202004013101], + 1004200403121111: [100130320031042,103110021442200,100042001020203,112221200410000,112023032000020,114023224010002,110020320412002,100010330101003,100002241200002,100013014202033], + 1103000224014244: [100002020100002,102110410200214,103102000100210,114140004123401,100230041210111,102201010200001,100042001024000,114142200031221,102012400223014,103233140101001], + 110203023132110: [110041030411301,110001041213031,103301210142043,100002024200142,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002], + 1001021200001012: [101011004212201,110032022002020,100214230430124,103031234000122,102044021101411,101100104002023,101042001021012,103230011412301,100102001000000,103400104003420], + 112040032301204: [102330004110200,100000004134002,102220014033403,111202404440010,110100331001102,101020031001112,112422020201002,100100001202011,114104030222003,102320241000010], + 211020420204001: [110301011234204,114211102321011,102110221412210,103330421400224,102000200201422,102412004022002,100032204200023,100023211030203,102104301004310,102003014001002], + 111023100130310: [100114004100001,102012030213014,102003320200411,102002024000132,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,114233002340141], + 1110013403420040: [102120010200131,102312300220000,102022000220004,110020120041030,103001220104301,102004004004200,112010004020300,102201001120441,103012000121000,100240204101020], + 120300301041010: [111112002210022,103222004002001,102024021130010,112012010230002], + 121110220221411: [110213100122010,101212101023221,110213001300231,112120222020002,102130100222100,110200204432001,102020411123201,103024041421002,102200034042002,102030004010204], + 141201013131204: [103112010213010,101212000301013,111400002102112,100034100124302,1320102201231021,101010120320311,101201101001302,100000211020034,100020301020200,112201011040200], + 1141320221124410: [132040114102000,100134200001402,110000012011021,100102204232003,111024004412100,132220204100102,101032103444021,111314020011311,101020021121012,103103214000212], + 134403004204110: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 131000000024121: [100301224310100,103002104012101,103220130211414,100012324202240,112101102012030,110003410100312,114000022300301,114000000021100,142100040004101,101030340343012], + 1404322032320021: [144131233204044,120130001004000,101001131032132,110400010031401,102220211120002,114112002313010,114014010033321,101400104042212,103441112000230,100010030100022], + 112240042330120: [100212201000030,110020122101104,104130030010110,100001134302201,100000010411400,100000140413200,121010220004000,114042004020130,111120112103420,101002304210122], + 1402040020000013: [100022001030013,102100300210133,102100031340024,102012100222101,102233114003301,114401200002300,111000320303042,142014000003120,121010010000004,144400100020120], + 1000104421120012: [100021300101110,103010301402112,103134021420204,110201031111320,102024044012212,101012144004034,101011024001430,140012010401001,102011204000211,102002431120001], + 101324212100210: [104120011242011,114300000000002,110020002104100,110210014220001,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,114032234033303], + 1012000103004031: [101000021010022,100022310120003,112004031122404,114341322301120,100040234212230,102210214110002,100020204103212,100000100104142,100200024301424,100101344302232], + 110031110000101: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,103303000112122,102100014132110,100021304103002], + 1140200100100424: [114110000002430,111220014133002,112111010201220,114013422300032,111304104130300,100131414303044,110100134403210,110101101120302,100103004232134,103234200101200], + 1140040023010000: [100010030100011,110301120404342,114032024012040,112000210210301,102012124012120,103002041402004,102103030210003,114010112332112,114121304121000,102221024044110], + 131202102303031: [130310130330100,200224331000220,101231031400202,120412000041110,110231402124034,102000444004121,100400100013010,100401002201241,103441004000230,112412130204022], + 1141004132323413: [100124004301020,112042012000041,100020034311000,101010011002124,102331201001312,111102004104401,103010014041201,101100401102142,102212004110012,101011420301002], + 1422011301000004: [101012324214020,100000041041202,100000004214210,114230000000202,100120010020214,122202200013331,102110211441000,100402110020100,112000320221241,102100120311400], + 1040342130222022: [100130011012003,110200000104021,100000020000020,103013010120103,110010024201241,101412304021202,102100021000120,110211124242220,102013001130300,100103234102402], + 112210302401020: [110300221220031,110201220000032,100021214313034,114300200000110,102011224010041,102000021133001,103032234010002,102301434110030,122011001202102,102100301400242], + 1211322041232002: [110113314221413,112004310224204,102304420211002,110403042110030,100032424312011,114112132313033,102204010204023,100220000432400,103011024000103,110100104220021], + 1041100033004324: [101221020011201,112310132020030,102031100200300,114102134122020,103122011241020,100011101011002,103010034004303,102101440201242,112002110240403,112214410201300], + 1040022141202022: [114031000022030,102014002000401,103103241421322,102104304023201,103310300140324,100002224244002,114310200002400,103211220100010,101202201021310,100021404301132], + 1041121002301104: [112230122030224,100110130000123,102030000221134,100210304340400,102201032021231,100010020003310,101042204010110,111200332222140,111201314412204,102000200204141], + 311002012043100: [100001200100232,102014000220330,111000042230334,110011000112024,101024304211100,104134400010204,113021021010030,101013214002010,100111011200111,110000122030202], + 1001331303210041: [100003034314200,103300040140032,100002301040000,100002120010042,110020302100200,110042002002040,101403240303041,100002101231220,102040424014311,110411000101240], + 1003240040420201: [102422114040010,102020004001311,111201210000103,100101101010100,102321044112101,100022024100041,114231212342200,100020011043020,100021231020200,114201112322020], + 220421130000000: [100102110412002,100000204214001,102013024000211,114021004011100,102140140310001,100402022200102,111010302203001,102110111023103,114100102341011,110032020111024], + 1100101424021021: [101000024010001,103204214002340,111101222101212,101214134040140,111002304411031,112404322020241,102001310224010,114000224102000,100112034103110,100203200030344], + 1410200010010004: [112202402043330,100000224200100,112030112000014,111243044441200,112123120220000,112100104042330,112011020224211,103123304023003,110400140001004,110000312130002], + 130002220230300: [102001404012100,102340120222440,114223204100010,111041202200140,102100104000040,100023014313010,112132434020310,101040100302002,100020004101012,102402000201011], + 104000202400124: [100232121210011,112022200234200,110043132100300,112230000412212,102220120203200,100002004201122,110132031134031,102022140202012,1220302241034202,100240200430040], + 1420021002114341: [110022000023010,102410141403032,114221002303200,101004104002142,102101210234111,103110220120102,102303100241021,100100021010323,102221000202231,102330301001210], + 1022420232012024: [102203301123001,100000001030003,114030314123101,114442222312000,101001001030440,114000024014200,101002104002034,112203120410003,112100024022001,100000404201010], + 1000303304320420: [111443032100000,100010314103002,100240240430022,110310321232001,103221100112240,112000000211220,102323131000021,101020024210020,102000110221011,100000024300300], + 132304132200000: [110000311220202,102104004001013,101422101012041,100110034034002,100240441002203,110242301110320,110203002032124,100031130423104,110000112002042,101124004002042], + 120004001023023: [103201300110101,110204002121413,102144020210132,110420040000002,101020011031033,102120001144202,110003040140004,100210030001420,110021041310010,100030001220222], + 123001231420004: [101004100331003,112131222010010,103001011400102,102000011102134,100002121032011,114122224003201,112034022311032,111001420021111,111100214400041,112020102002024], + 1214020002302024: [102402224000010,101110101110020,110130001120000,103112004000401,101020221030424,112000020242400,100000300000301,114102022310302,101032210301000,103011304042031], + 1024204110123001: [102010021321412,101003110303011,102400204001110,110210300000100,103000024040000,114000214100213,102101210200200,114010130043021,111003302140220,110000142001210], + 1101041214020210: [114002002300004,110100201140241,102020111324200,100042204102400,101044400300030,101024024002120,110203002102023,103442121212103,110214300000010,114021142300012], + 130330034114221: [110102114204323,114021140030020,103124000104424,100100201043042,110302012103034,110130201011011,101000304212200,110001020120322,102312034020114,102331001000120], + 131402002312030: [100430014323000,100212101003134,103030014000020,102402201110020,102022411100012,100020024100324,100001210102104,101230011020020,114000020034200,114010214032000], + 221122012030020: [100031300002022,110210022120040,110000021221134,103002044002032,100101020402424,102201112000001,114211040011201,100020100423404,110403411244003,112030200222220], + 1041304021421031: [101221422120021,103001024002110,100231114320100,100001000002210,100400320033201,110011402100202,100004130002301,101210300302302,110100012120201,102020131413423], + 121020431124002: [110220420000100,103132204001001,110032234211211,114410010001200,100400022200200,103024400110044,111301032200412,110100120120001,103120101240000,111041120040000], + 131430242240300: [114012012330203,102100020211003,100000214102101,111222000012010,100000004100411,102413124042401,100100104102000,111204302220322,103021024022122,101000220311120], + 101000112143010: [110000102100303,110001020440110,100044021020010,100404202201012,110400300000102,101002244002110,100144221000002,112120102013001,100230104224024,100200004102020], + 1010411230303322: [114400034122341,101444024041143,103020001400040,110200332041001,114004020010203,114002004033124,103030324000302,100203030110000,103204321414213,101004200341000], + 1200300041104031: [114400022321400,100011101222101,114304212302401,110021324200010,100000014201221,110200030001040,102312021101141,101010001022001,100020111222204,103101201242022], + 120000140100223: [102240221000001,112202412030001,100010000101004,112410140230303,114210142321120,403221301412211,100040201022210,114013022304300,102434044043420,102122014134004], + 1102320302100420: [110040022130003,100030430422242,101120014204000,110014300001402,100100014230110,110201004241002,101000131142230,112001204023241,100104044230000,114022024012213], + 1114043000110300: [110441140102024,114100200002120,101004120224442,110310020040401,104120221240413,100413311002132,100002024303323,100320421001431,110210301200101,100202024123224], + 204104320213021: [101004120224442,100413311002132,100320421001431,101233021020010,110210301200101,111131102210013,110400241240242,101001024210000,102000324010303,114002020042033], + 141014003400220: [111102004100101,102021100220101,100230120001003,114000040010421,112042110220004,100000214240410,100433201004014,102301102004413,102003000220111,102010100204023], + 1012223100414200: [112142301101040,101100000330120,101214440300301,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102], + 122101010421400: [101304020313003,114300140000220,102001004011002,100003441020101,110410442220020,114000012210030,111310022200240,102301044113020,100010220001020,100100011000040], + 1101211002242100: [110200000113011,102101001340020,110002202130110,102032114021101,102110210230401,101040040322202,101422244020101,102142120224022,102104100233030,101210010304011], + 224000010120441: [100004211221210,110403221000002,101201304200320,114022042302201,103310101401010,102404042001400,100020200104120,100101140102400,114122000000312,110310312103010], + 131331044101012: [111102004100101,102140014001101,102021100220101,100230120001003,114000040010421,112042110220004,100000214240410,100433201004014,102301102004413,102003000220111], + 100212023330020: [111022010020231], + 1044011000001442: [112020104001300,101400110300032,110032412204130,100101004300200,111032414402324,102424040202123,101120244000002,102110024001402,104240102023211,101103344001200], + 320030132101142: [114401200000003,100241001003002,111310004122000,101221000312044,102030300224002,112010022000304,110323142102300,104124002103241,101002211110002,112020402000012], + 101100201200030: [100021304300200,110321031234422,100020020102201,102023001440404,101023014004000,100020010101201,110412042010210,100100214102200,102103000233434,110124411120222], + 1100321212232104: [1440100023013130,401210002011000,1014200301032410,1001102321230101,1103013112041021,110200024240110,110431004224201,400014401213001,121000110000222,103000001421223], + 133443304212300: [100020121020300,100002201032401,100240010430203,103432001210300,112440134041000,114300100002210,100210240013000,110401214242400,112320142024331,101044214042221], + 1012021200200101: [100021204100204,110211020000002,103002034034022,111230214102412,111433044442220,101000004013020,101013320300001,110041341300041,111022120023311,114110420031102], + 1011034222001011: [103111001422000,111244302220204,100042100102211,102110030200120,101114000332010,112112211102024,114001032300011,100142044103021,114004014011110,101100010012423], + 103124122412300: [102000004002101,100422314300200,101403014020203,100402004300002,100042030120422,101134224001001,102321234111310,112100000200031,110003032000041,103300234023033], + 1034002000100214: [110003000042343,103001224014142,102304000241010,110011000043131,100004220412332,114102400001020,110220201301140,100022221044012,110312300010200,103214210103210], + 101340000102440: [100003000100222,114002114102311,101104201112142,114001020022140,112000000241003,100010411222302,101223004013001,103100420210020,101100140332421,103300001403202], + 1110430022000012: [110232022123020,100002004303100,110130010102101,100010240101221,111000122201420,102000041101100,100042004301301,100012021031014,100000201032010,100404000020000], + 144020003231311: [110020402002300,100000004102242,102311011001213,102000020223021,112024101112213,112003112000011,100010000013012,102140004030412,103000304003210,102010100223430], + 1430101000322123: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1124240400140003: [101101004003402], + 220133002430202: [110202210102120,114001004100003,100041014102004,110320022101120,102131421000411,101412030302001,102222021124112,114000040031021,102400001110113,100404201012020], + 142302003130020: [141401003011030,103120200123001,100301314104023,100001140421202,114400420000041,110044002001100,110024222100202,100040014202402,100012004101100,114142014003220], + 110004222301024: [114102312344021,110011212133431,100012340404402,103400104001202,111000022140011,100021011231420,114012014101002,103020400122301,103110120123010,100402400022001], + 1002332222012001: [110323002022000,114000024021000,112410402020100,100100031021211,110001321324002,110003422130430,111212024130030,102200040232103,110010001320030,111234102220023], + 211211012002000: [102302200210010,103100221440010,114003344011001,100021101000000,101014201030204,101203001010111,100031201030102,114201104114111,101041001003300,114012444020220], + 130121221100121: [102403001342000,100102431021300,110200212041001,100033211230014,100001211040232,100100024234021,112000321112201,104122102100220,112034300240022,102213204040044], + 222320411422040: [101302134233230,103220011411101,100000130010033,101030404212000,114220014111304,101030301000221,102003111413120,100020001042002,114200122340300,102013024002300], + 110003024002002: [101200101021000,101430004040203,103000024014022,103122104002013,100040404102010,101020404210020,100001001021002,114200104001010,114040414014202,100000024301031], + 144233123220212: [102111040210242,110004202003210,100424220032043,102021004001004,100131414303044,100000221030033,110101101120302,100040201030342,112000012000010,101012201030310], + 100144142023312: [102402024000034,103012024004312,102214020242110,101140320330114,114234004000210,112120020230024,100000204100304], + 1401112120113103: [103101014000001,112430102422123,102110000230003,114123142314300,110401222110010,101012131000114,133111102100143,100004101032211,103001010120400,112201012032000], + 1200012024440220: [110112102211042,114314300012000,103004000112020,114200022300033,101400220303133,101420010300310,114112320020021,112142012302100,104100001240034,102120210322300], + 1112013310203113: [101210331023020,101011211002010,104110411304420,100222100412022,103200004024040,102140002000412,110043001201204,103420334000103,100010214302012,101201324232020], + 342020223401220: [103100130122100,102340011104001,112300002022101,100430101012411,112013212002212,100202301000000,103411014002010,132000110000001,101000000300110,103000204004020], + 120120200103000: [100002100100210,102420424042020,102200401111200,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011,114200302341234,103002110100200], + 200421114302210: [110102114204323,111120002100412,110302012103034,110001110001202,101000304212200,102113100230021,102030100221011,100420321001400,102303401004200,114000304031102], + 240404121042414: [103134014000340,104103100010141,111101222240010,100040210411102,102010000221204,100110004102034,102040140220220,114010400014304,114300132321233,110000140032001], + 302200144024114: [101220014012231,100104024303320,101010311003410,112210132031001,102010310213001,114021114023402,100210004343102,103422430124013,114242312322020,101000140310132], + 1121404401211212: [114120014120230,110000100422111,114010314101200,101001201110100,102341014010003,100310111001140,101000030321400,102400014020400,114322134002204,100002320104400], + 132040041010323: [102000020223013,102310111001210,102100121341102,100301024310020,100130010101430,103112000210401,102113121401222,103020111400003,112011041110422,111230014100320], + 101103442222004: [114030110041300,100010400022200,102300001002144,102302444110110,103001000142003,110310004424232,112013102004422,100400220013232,110010002000100,100402012200112], + 103001402200022: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 1000022202013000: [114113104123200,101210210300031,110002021121023,102300040221403,102201100200430,100114021040000,100021020412110,114201204111002,114011022211140,103000210120000], + 103410102203120: [100434000032200,110004020020022,114032412303041,114322024034312,102040010200101,102200434012013,112000301122111,102100201400122,102013120200110,102020130212402], + 1011244210020400: [102120300202121,102134111410122,112204022020043,112110112300112,100410124102101,100222300434012,103003040112031,100002300000243,100120021200321,114001012304000], + 1020402102024013: [102031000211000,102100000214320,114211132343224,111200044424130,102331214112200,112003102000220,103014330110310,103131211240031,102241010230310,111001010020044], + 1121404022003104: [102403004042342,111122004101222,114020040013100,114000222213021,100000020401302,111001100020413,111301204111233], + 1004422020010020: [110030004200002,112031110240010,100100414230101,110134022013042,100001000000200,101034401033340], + 1011412400400102: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 110321300002433: [100003211020020,111000240044102,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100330204322010,102111211401000,100122124300402], + 1223421020002121: [100001141020100,114220044111204,114000234011323,100020104312001,100000100000104,101121121101124,103102124002001,101003200320102,103312304020314,110110001000304], + 113214012040101: [101010241003223,102000020220000,101100300302102,100003044100101,102034221103124,114012402332300,100014030200221,103030201434002,110204314402021,103121004002210], + 102012011001200: [101221020040220,100103104302044,102020004000014,100000211023014,100201111002224,114242410001010,114202044111100,102013420220240,114212100211223,102102044001132], + 112002310310000: [102411111400020,103002100100400,100022110021010,100000014100240,100122044230200,303020114301043,100100030200200,102202144030212,103031204010122,132044134324300], + 1401100100301010: [100200104321000,110000110410110,103220030101023,401300041114001,112032302000220,112003000230001,102004301444000,111133030010200,102103231340304,114000044101422], + 211202310000000: [103140211443110,112200224002440,100030001020201,101302401003202,114320100002004,100012200201130,110203221112042,110002114410102,114330100000020,100204220000112], + 1100220021000203: [114033300040100,100313030142202,112021201120101,100001000012021,102010231120312,102043030202102,102300014110023,101021110322104,114420302320210,102103422004103], + 110020000104402: [110201100100220,110033322001424,104100202101022,100041230102210,101131141042121,110012012004102,101320244221142,110340310102020,110102431303010,110424014243001], + 1000220043212100: [102334004110232,110311331003000,112200102024122,101020240300003,103000034003300,112300032000100,112021334001000,101000100322140,114010010002314,102321040213311], + 110213202022200: [120200102001400,102001034010113,1300102201211020,101313330340001,1112301032024000], + 100142100320400: [100004402212111,110214202044002,111003002230111,111111000020303,111000214410000,100120101204130,111414402100001,112141002310411,111120140012242,110101241000202], + 210020140240103: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,114100222310230,114131002342130,110002022003101,100403122201202,100100220403100], + 120013402303143: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132,103142111441040,110104002010100], + 1020011101210000: [104244002023000,120133001040211,111320124130040,114012412200022,110000110000231,100142041012023,110000000411120,110302100010342,101301030313022,111440222100012], + 113201442210121: [101003040320032,102002420220000,100110314300212,110022302102330,112032314000320,111012024112012,112101204022303,102002300240004,101042304001201,114001002300131], + 100102120012432: [100312331004000,103301244010210,100101031041022,100000240003101,103001220100000,114124420032020,112012012002100,102314001000244,114100000031020,103242004031022], + 114132400024302: [112102024020402,102102010214442,102101211410144,102010214000120,102010111102410,101000110322242,102404110230202,100010020101222,101222104010140,102120400200312], + 120314241010120: [110012010410000,114004000023341,114021044100401,110201402120213,101022040300420,100041011221411,102110010203021,100310004100403,101000000300302,100010301034103], + 300020040221203: [120133001040211,112200431102021,111320124130040,110042234410000,110000110000231,100142041012023,102030200222404,110000000411120,111440222100012,100420111002101], + 1024304020010121: [100240000032004,102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,100301004321221,100020000410313,101220200040320,110301111301101], + 100243021121232: [104110021244203,102224101113104,102103022002001,102102224000012,102100102001032,100142431013000,101000031001011,101010130321200,114004322330012,114202144102100], + 1130024101421004: [140203123020300,102010011011210,114010230023434,144203403221310,102013131134030,100110003330122,103312010110013,141000201412111,110004030120020,100332121000004], + 120001022414041: [100101101020002,402104002030100,100010044110040,102113034020402,110141200002120,100020004101340,110100111221402,100104100414031,103202320101211,112000212001200], + 120030020023201: [102010244010000,114430412322343,100000430014301,114423002314000,114010134021022,114102224104002,100040240003341,114422404110312,102403144000120,110102211300112], + 1114101000210042: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1000000210200002: [100422040021304,111111000014001,100021320123031,100014041042003,100002010413410,101433010300204,102114321401000,100002414201103,110324444424432,100122234300420], + 120000200102214: [102231130213210,102000402041014,100043324210140,100023024211011,100003201021001,110002021121023,102201100200430,100022010411004,114121300224141,103112011421222], + 222400021410223: [101011100300202,101000030310000,112202230200300,110001040112100,103132001240124,111040000020020,101224424043100,113000132200300,101042100313010,102031320200104], + 1140024013020004: [101000141031222,102000421131000,114404020003022,100421242201010,110200200001000,114023024101231,101410114043204,114241202320300,112431402022004,131202034021212], + 1203100020210011: [103242420100012,101400004022112,100100210000011,102200000200201,103110020210000,100022141030334,103200211410311,102100404021014,102303001102431,111441004421100], + 1011432344432402: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 103220021012001: [102010114022011,114002200000421,101020321002002,114302210010001,114030004104220,100104004301000,102443211401140,102301041000014,112142011101404,100001111201214], + 122224100040443: [102110140224010,100103240011013,100020210101002,100042420003120,101020120322020,103130004003141,100024321020243,110112410431040,100100031002000,103000244010320], + 1041023033141201: [100400002201113,102420424042020,102111024000402,102001011100100,114402104142102,102311120222404,100100000422320,102100012002000,101320224220103,114400202310013], + 110201000401012: [101011000322203,114421102322111,110241022112013,102110010230101,114423004144120,112001102000201,103014044010100,101012200340110,100210331000030,102242004042400], + 1210210410110322: [102300001002440,112101120201010,101000224223002,112240000413000,102012011412102,101040201112304,112422342020141,101113004000203,100100301021212,100043124200131], + 1000000010000112: [101203004040100,100142224230113,102104131122031,102320024020040,100021114102210,101100000320132,110402122111020,103040120000040,112010000211002,111041012143402], + 1004310000212110: [114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,111403100030130,102022400211311,110030400004330,100401241014100,102324410243220], + 1023102031400100: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102312000240002,101202124010000,102012104010301,114123014001020,100004004303030], + 1030122204000210: [102400111402142,141030301403400,120402022102021,100000024100211,103224200113121,110140101300004,114400210002021,103103221421013,120020211120020,110230010010142], + 1020322310430300: [100023324302420,103111201422013,100001001033200,103201000102140,100033200000420,114010112330000,110333034433002,102343044111203,103231001400100,111122030020244], + 103100004000400: [111300232202103,110122120100022,102400100220000,100242444300104,110002202001202,110200422113400,110022300021012,112000000223310,100011200201230,111001002201034], + 104000230200402: [100030220410304,101133040012001,114000102210140,114032400014212,100000300012003,103142211213001,103002040120124,110302102000120,103210000213424,112402114044002], + 1104120010013212: [103324024030212,111022412140224,103030304021102,114110004121301,100222100402024,112002220220002,100121301023030,110000130020003,103002144001000,100014000022201], + 1112004022112022: [110201021201020,101111120330403,100101321220213,100120034230102,100340011000110,222400011010100,101030010320010,111101010011204,101021300320314,101002120320124], + 121241200402212: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 1010324010403033: [110033100114102,114330004030120,102410101111403,102310140211101,110030000021420,110001022121214,111120144101403,101021400304200,100024221230411,110230000002421], + 110203200000220: [101220204040032,111003044110202,102230231120222,102330304110101,100430021011031,102330021103040,103303031404000,111330304131300,100002131020340,101202221022030], + 1030241201030200: [102210100313100,114113014000010,101200210302201,100004420014012,102240210240022,111201222220201,100102001040033,112032020220030,100002324211100,111231042242020], + 131102024010341: [110110132041402,103140240112020,100004411232040], + 101204101201001: [102112200201012,102321104111003,111111004400103,112100022300110,101003010340102,100200410434002,114104002204400,102004221132241,100010000002102,100414300433033], + 200202134410101: [110021000410432,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000,100010044101002], + 1000020101003002: [110141201302122,100023001222000,101002124002220,102103012004030,114034000012210,101044004000132,114114004140010,101010241113102,114030142200400,114001124010240], + 140422200100410: [110140300430002,100021300412300,114031112210241,100002430012110,112000312000120,100000211021200,103013000110110,102420244023112,114322402322100,114400244140102], + 102013204020100: [103223014033210,110001311210334,111403414421302,100002001211230,220321332020001,114012002212100,114203110001031,100002220001240,110100014401214,110440112110241], + 100201101020304: [110210221300113,110304014433122,110200004243223,102000010200200,100002330412031,100033400410104,110210001310230,114020042302142,100010144303000,102142231143322], + 100100424100021: [102131104023111,102420130230104,103000004010400,100000004310002,101021014224121,100012114210011,111301000000031,111200304131014,103020200123211,100000340120221], + 131000114120111: [111200200000232,111410210001002,100101001011114,114220104000102,114000332302320,102100221341001,100011301000021,114310214033042,100100001040210,114102104121201], + 100100000020020: [103140211443110,100030001020201,100242141004122,101302401003202,100004004102002,112020201120340,100204220000112,103210200100000,100000001020344,100042330122240], + 1040034200120002: [101010304211002,124123100342003,122430211012021,102130104020040,101010004034210,122420404200443,144040423311121,121120220012120], + 1110201222030321: [100012400101400,111242212222022,100020100100300,101242000300000,102000014002101,114102404120000,102004021442313,100121211012110,102221220204211,102130044134200], + 1001112122000000: [110304044431200,114200134110042,104104112101440,102103131122203,102100101140030,112120012011020,114322000010200,114230144114000,100033044210014,112221114014010], + 142311002100014: [103324024030212,102102012003220,103030304021102,114110004121301,102030420223110,112002220220002,110000130020003,110303022022010,103120321442020,101444321101021], + 132401210141240: [101011100210312,110434314221324,110321011232112,100400040013423,110021112200120,110011312231302,100400410013040,110110302214004,112402344022203,103002140104010], + 112030010214044: [110011411102000,100022001022231,102314032000332,102300001100200,110420020000202,102023024010033,100001144201220,114240010000411,111212204101240,103210031410020], + 111203000012000: [112224111100141,111102214104403,100132004231230,100000030000001,110021340020022,101010001000320,110210020104031,101003204000300,100130334030100,112130334042201], + 300022201200100: [101012324214020,100000041041202,100000004214210,100120010020214,103411120100301,102110211441000,100402110020100,112000320221241,102100120311400,100103301022000], + 1402030133033134: [100010234114300,110010024201241,103032221421243,110200000403003,103210030110012,100112224000220,110440020030202], + 1013121002202202: [101302134233230,100000130010033,114102224000201,102312301104422,100022021041122,100013011020311,100120041020012,102012204000242,114000200042311,114300234001100], + 122203011312043: [102420101111121,101222041041012,100032124210042,103222000100010,100100000021020,131213314114102,110020000000320,114010024020443,111302002221301,120300012041400], + 1422200011020100: [102300324010203,102040011121100,114310000001232,111322234130000,110104002010100,100030024303023,102042204000300,100001134100120,110301232000100,110303401230040], + 1144343013304412: [101203102121344,114001024011334,112022411112104,102142002031221,102312144114200,101420211014000,100001214100201,120012102310332,100344224100402,102200204001120], + 1240200203011201: [100002000004200,103040000100120,102030324002210,112023102304030,102301030241010,100022001043023,114221004110220,100114100032200,100203104320000,101230321023001], + 131020140201201: [114021302304042,101032014010201,102120214000032,110040020021001,114222104103200,111000024400222,112140311100413,110042322001120,103013101222000,111001404112030], + 1102230011004120: [100020004313034,101400120320033,110430030000041,102020004000301,114114204001401,101042214000121,100014300000200,101031101024100,112000210242204,102201022000411], + 1022233204221200: [103311011404143,101011010320431,103041414001042,100021220010031,100000014211030,102441324022342,101041301000020,103220000104122,100220121003120,102040124010141], + 1002004102010310: [1010400230221020,103034010121101,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122,100002301021040,111020002202333,100013040100000], + 1021412003303320: [102142221342202,103043404000202,102420000202033,100020101020404,100002411021201,102110010210330,100012020410400,102122111402420,100031404302400,101301014220002], + 130200041002100: [110120144200000,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,114113000004012,102140114004004], + 102420123010001: [100113444000011,101101400332443,121402220120031,114020224121142,122220022201102,101241421010222,110203022121202,100243210430220,101023114000013,103022300110404], + 1140000000120112: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 1040220000302042: [103211200100400,102112231020231,100022004300020,102030304001101,114201204111002,112010122302144,100000114103021,101310000310240,100120244301401,100002230010314], + 1410110222222002: [110104112010103,111102004100101,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421,112042110220004], + 111000440320142: [102242201000222,103000004011102,101410044020102,101000011032120,114004202210130,101220000302410,100004210412101,102102042002001,101210321023022,102110444130000], + 102020300100013: [111210044131101,102220000202044,114032002303014,101242421020211,100000004212021,103110314000100,100000001224221,112301111130031,111013102200342,111204200002001], + 322030211033030: [110201100100220,110033322001424,104100202101022,100041230102210,101131141042121,110012012004102,101320244221142,110340310102020,110102431303010,110424014243001], + 104320010330101: [100004204302330,102341014010003,100011421002120,114140320223200,101000030321400,114132202312102,102211401113441,101100220330020,101014324010000,100004400100414], + 100300332042200: [100041100103433,114104310000002,110211030011400,102100011413420,112404000202310,100400000020403,110233220002030,103020010100321,110140004200100,103402000120002], + 1000101000040003: [114202200000200,103000021411202,102101004030220,102003001132213,114120014000103,111432000004311], + 1100300422413040: [103242420100012,110002320424340,103130311444100,114102134122020,101040004010012,100100210000011,114004030023211,111343012200000,102201430201310,111100404100043], + 102203044000000: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1120023242400240,1321002023100013], + 1110004402104400: [101011220324041,101300000310200,114220110001121,100031004311400,110020011223233,110013000002041,102220004001014,100043000201333,102141302001013,100401302200302], + 114100000112102: [100121230031032,112000431120410,103042024040104,102304104110001,100104211044110,101342300314204,114241222321321,114021002302020,114013124030022,100013200100011], + 130122031422000: [100002100100210,102420424042020,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200], + 132140100012020: [102142221342202,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420,102001041100103], + 1140000033000122: [110140044401202,101300124221002,102112002004120,114400004141104,102142234000020,100314420140013,101401204040200,102030001103000,100040021031201,103030100142040], + 1040110200023114: [101020000323002,101424211100010,112112014020004,100221020410001,114314004030042,100111001020220,110321132002134,102203010232102,100411000433012,100210024221001], + 1001011344031040: [100440444301004,101221121020230,100232121210011,100004110000301,101310004223223,111210402244301,112022200234200,110043132100300,102100011341140,1120022020242320], + 1043001223203202: [100010400022200,102300001002144,102302444110110,103001000142003,110310004424232,100402012200112], + 1044142043330300: [110104112010103,111102004100101,100122004300410,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231], + 103011000000020: [103140044032100,110322100104010,100031314241140,114100004121121,114110004002200,100040214102023,103033044023040,102403101400210,102301000241011,102100330231011], + 113010102200100: [102142221342202,102001200221011,102420000202033,100020101020404,101000004010012,103024000103302,102244221114031,100012020410400,111111102240001,102122111402420], + 1123220200040111: [102030410223003,102032022000041,101020220323012,114002420040210,100000104100124,103021104011000,110222122042312,100143110421000,102210100242220,101010200304240], + 1220102211104000: [100021104340400,100003000410404,100230404343341,102002301442023,102403001400101,112000134002211,100000001020020,101221022120042,101230210302110,112121001100010], + 104000400020313: [100111211021233,110100201140241,112001022300000,100203210003004,100042204102400,112120124020214,111304442220340,110003001024303,110032001122110,101000044001103], + 1004010231003430: [110001112031124,100200001003212,110001210004013,111012114400321,110012042001440,102114001122300], + 112320040110030: [100402130020211,114021200013041,102103034000310,102232014002212,102101030210403,143304200441210,102110111401120,100401024302230,110022001300202,101103000333012], + 241110022000010: [103220011411101,114220014111304,114032234033303,101030301000221,102302331003300,102003111413120,114200122340300,114201022330011,114020420030200,114143024003322], + 130410121210112: [112102202040000,103140211443110,102110021341014,114320100002004,110203221112042,102110001401222,112023000234400,100120004230204,104200401300100,114204004003310], + 1001010212024102: [100140201011204,104010100010424,103010014013304,102103030201001,101203104200224,100010221031023,100140000024021,101223024200014,112240404012020,102000220204011], + 1410001430021313: [112002140242302,100022140001044,102402000203231,102110411023111,100221101000314,102234024041024,110013100422233,110002241042041,101213412120001,100112014233000], + 1030000200312200: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 240022400321101: [102141212000200,101203121020430,114144014122041,100022001040322,100000130010033,110020030024004,102112204131410,102324000240024,103020014040000,102312301104422], + 1012301004020402: [110130321300301,102240200242002,101000411030013,102110312004000,103012004020122,101322310313010,100000000410101,114403020000214,101014020310002,101040024002322], + 1022204000010001: [100002001013012,111220032224301,103400104001342,111001212200200,100000331201012,111210214440200], + 1102434402040110: [100010014200143,114020040031020,101111120013000,112022204004310,110320122100410,100103000002102,110400122022003,100242000430042,101014320300311,114223434000010], + 1441012331410144: [100000334212011,114204302320422,103130140210221,100020000102421,112000040243410,114000004102342,102020021412100,100010420001220,112120210202111,101000024000230], + 1410431040011110: [102401121113302,111201210000103,100101101010100,101320040302031,114010102300010,102321044112101,102000014002000,101034014011332,114011102210402,101203011023020], + 110022022004132: [103003114000120,114402004141433,100042401022030,102040420220132,100003244104241,100021044101011,103010104002213,100002221040232,114014434010210,102111001410032], + 1100010040010234: [110020014212242,100204104102120,101134220330310,114202414004000,103202444020203,114321310010234,111043200020202,102300131002024,102203414001022,112022110220022], + 100100031023010: [100221424320111,100021101021200,103240321400010,102010134012140,101204211020322,100011411040002,101002114000002,102414000203000,114010000020004,101220220040040], + 103030430212110: [101023124002002,102121211340110,112203044010404,100020020102201,102111400210040,102000134003010,102140140230002,110100024400410,100001111040010,100002121020203], + 1120120000224044: [110103101201203,101422244020101,102142120224022,100002021021020,102104100233030,101210010304011,110001000000020,100012210001220,111022004124100,111242322242000], + 1041030000000401: [101040014000130,103303404020012,102010200213332,100434121014201,100210001002120,101000004211110,101000021141201,114140024000003,102010014010000,110034420441200], + 200041200304021: [103100021440001,100120100032121,110000201324002,101200400331110,111201022200100,102100100210100,100002244341113,101000141033304,101011034001210,112400002300002], + 124033440132420: [110102401201204,103020200141000,102414034040100,100212030414010,100412200002013,101200020303202,102020041321410,111340300010010,114120420223002,102013224003020], + 210201221130031: [102123220230210,112301312020123,100111304300020,101110004021320,100002021033103,102201230200104,103013404041301,102022010244000,101021101001111,101012211020220], + 1030100404001000: [104232210210303,141111210002414,102000444004121,122013001001000,110002211101112,100400100013010,111300212011230,100401002201241,111022032202320,102100124003112], + 110220333400030: [100032041021210,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,114142044120310,110220410000040,101030004010034,102201411100212], + 1002102020000000: [102434010203000,112100134020004,102001014000312,100421300020002,100003320120242,100100031200121,103232220100413,113400320100001,110204201314400,111021024111304], + 1000102011012413: [100013230100000,1320100232411004,100121120102303,412310220104121,114100222340120,132011000122003,110230010002303,103002020001300,423203002400042,1302321010020120], + 1102100214231432: [110021000410432,101010010320112,100021111043012,110124041140000,103300021402104,100010044101002,100001000100403,100020124100010,100301020140000,102102024000001], + 1100004324203103: [101040040300223,114234004000210,103000200112220,100100001040410], + 202324002000110: [103030324000302,101340000342212,102002304010024,102040120220003,102120211022402,112220132033122,101201004010204,102310100201021,1234032021030300,100011000420231], + 1022300000020022: [102033021130021,102001241410312,100000121042240,102101201403410,114444012310100,102330021000131,110400240002411,114432422322332,102000320222120,100422101002110], + 1100340020222310: [110202004211120,110223224433004,110341010044330,102031144010424,111212114131222,102140001441301,102342120222031,102221010201113,111012030022123,110031424214112], + 110130322010021: [101133114022040,110210004434230,111100132241003,110100000020000,101134414020201,114101042202201,111424224422011,102301340200323,101000004210142,101340020341021], + 122243013240222: [100002100100210,102420424042020,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011,103002110100200,101320224220103,101302131002410], + 1431432211000132: [110100104404110,102110042001043,110200200400310,114100002204212,102003000212104,110000011301000,102000100220240,110013001200012,102030204000041,102341101101130], + 110320020010144: [103000144000400,100110011002040,100140011002400,124001030020034,103214000212400,134312110020403,103130121241210,124002000123111,100041011030000,102010121122221], + 1101110204000023: [102012214041011,102010214000220,110411344210012,100100014322200,101042134014101,111141022224102,103004030120101,112221404014110,101032011143223,100304431004012], + 1020003000000432: [102212124010301,101001000224100,101100440120042,103312141403200,103032411100001,114020100040024,100020114210041,101411004021001,114213114003203,103214331421023], + 1442032302202000: [102201041003000,100011100124001,102002321030001,102031101030023,111422210000120,110401221311002,103003041414310,110111100010001,111002100001220], + 1022000101013020: [102030410223003,101020220323012,100000104100124,103021104011000,110222122042312,102210100242220,101010200304240,110102010022243,110020201012400,100140221000000], + 220011110021310: [100042111220111,112220100202000,100042041220010,100403211010100,103240301400123,114102210214041,100021300103041,101010204000242,111334004121414,114101000213410], + 1004123040223110: [102214100240020,100000001233441,102120044000240,112100012011413], + 1401303100022304: [114003212210013,103023101400002,110010120440200,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234,102043221012112,1000023402103012], + 302002023003010: [102044104002014,110200004243223,100033400410104,110210001310230,100010144303000,100102434300310,102142231143322,100421200001003,114024200040223,112020402001012], + 110004403014034: [110001332120300,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011,102130000312121], + 100000420112001: [102340200224222,103212000212121,100100011010220,112002010220004,103211014000111,102000034013222,102030021100041,103210214042004,102311020240120,102402200204112], + 1000041420014213: [104100002100221,102000321102310,102134044134410,101202001022000,111300220000230,100133204300040,114110032343001,100110101040020,114012222301110,103120440104110], + 1002303101202401: [101400004022100,114031212300211,102013110201200,114023010024000,102042321440100,102300121004222,103002020142122,101401101012402,112000230220102,100000410122022], + 223140110321312: [102304030220001,102141124004222,102430201110000,114010200020312,102124002000102,112042422001032,100011004312001,100111200414020,114044414023030,114244014002020], + 1022410320300101: [100104001041200,102012200202303,103222114034232,114122112202230,103221204032410,100010141222040,100004004102410,102104320200023,101104001101000,100020001030022], + 1402232200001330: [114410024110002,102030410223003,102032022000041,100020000120134,114002420040210,111201122241213,102342022000024,114000222330121,100000104100124,103021104011000], + 1000022002004201: [112000204001011,114004100011010,102030030202212,100022024100312,112003120214121,111300100011041,100030201041011,101001010310002,100001000400001,110031400432422], + 1102213010202023: [101302134233230,101030404212000,100431000032001,100020001042002,100013011020311,102103331400000,100120041020012,102012204000242,114143024003322,114021444010222], + 1140010030202200: [102301002004242,102013130223020,100131011001300,104100302102030,103200030110000,110102202013213,101003014210212,110000242104040,100210024300001,114000444100400], + 132030111000412: [110401140004202,110040002034100,110044020020202,110301311303102,110201434430102,101002020342002,102110334020204,103200001420012,101201021021111,103210000112442], + 1201233400000434: [114012020044224,103030411422014,111112204404021,110404122110112,102412044040011,110411004223302,100100241000020,113130020101411,110021002124000,112200030203124], + 1032010214322202: [102431111110001,102323101101400,1003002030122040,101230330042220,1320124301012211], + 1010022303400004: [103010010104000,101100400333023,100141004030100,104130442103041,112314322001102,110000144202030,101210121014010,110202201303021,103031010100133], + 121021240030310: [114130012310000,102112432004423,100210201001001,100243120430140,103241131401223,112214431102032,100400120013011,102202141120400,102211241120212,103011001244001], + 1002401010324142: [100113444000011,102100030230010,110020411000411,100000221040201,100100010101102,110010110023200,111020000010212,120031401224002,110024404203100,120000043000003], + 1404000200300230: [110230231300100,102010424000101,100300121000420,100402431014100,100100001220400,101423100300002,103111300102020,112202012030100,110300011202224,100043300401302], + 1410003310410302: [102101211411000,112032040234431,110010232004000,101020004000000,100102224033421,100120040400011,100400110020244,110410002020200,102021001411110,114222010213042], + 1000022201011014: [100000200202012,114404010003320,112114324040000,100141011011032,100010021034000,103132004002020,100000241000002,100000401002031,102001204001021,114300104032040], + 1001242040230020: [110011232100412,100220040142222,110020120040121,110000100022040,110200021210212,102401010202301,101040000301210,114240000001020,102130034023112,102204114114214], + 130030101100110: [112133212011000,100041100103433,110211030011400,100000431230142,112404000202310,110041122001022,110233220002030,103402000120002,100112421221110,111020102204112], + 210100402301011: [142020040041320,102124021023300,112444304040204,122022100000222,114200004110244,100003024211200,102102402003021,101210101010023,114422114140221,103210000103000], + 110003033212032: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 1221010320140300: [114200034110031,114423002314000,114040002210432,100010040122204,103314044033003,114102224104002,102001420220112,114422404110312,102403144000120,101033041032041], + 220241142300040: [114231404034301,101040231124131,111103304400110,100004011120201,103024020000203,100001011120001,104002232100303,100041020143410], + 1031330320413214: [101010211001011,111220030010210,114042034104243,100004030411141,100412030034000,114000214012010,100030040000303,114010002240111,100012234200200,110302120012014], + 120214202240112: [101042014003022,102210020240030,121401221221000,1300001101120141,110020000010044,110111044402003,112032041113001,1112010004112414,111043124112002,1200023010410200], + 1140012420221010: [100002100100210,102420424042020,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200], + 1001000210222421: [102100441341013,114201102342110,114101200210030,112011200240420,102040020220000,100104004100400,102002331440012,112100002302240,103312401404300,100004030101401], + 1000100111033300: [112312122020210,110332000010101,110022331320122,110000030132210,114002004103231,100001004311313,101403030300132,102321021102143,103123204002120,101010011001214], + 100023020020210: [110301222101110,100002024200142,110033041200104,100304011002220,100003200120102,101100031042003,104120110010402,114240032321200,101021120344004,101024420304241], + 1002234040020300: [100200101000000,103110431441100,102100441341013,100011200121231,111201102224324,114040020021023,111230114102201,114201102342110,101400300300111,114430204112100], + 140000100011001: [102011214000000,102110111410144,103023141400000,101001100300012,101041104222000,101203414013200,103002201220000,112000202310100,101030010322420,110001102102020], + 1042210130010011: [102021001132040,102301004110004,110402420402001,110000112100402,110021021210300,110404000000012,102000101120123,110221022101104,110023100402320,100020311220412], + 314111100411012: [102241041000242,110012232002103,112021324020001,111310120000011,102000024011022,110201111314000,111140222113002,103213224041010,110104040120242,114200114030134], + 100410421200200: [100004001021111,101021004214202,100003000104203,102114320203000,101011001103200,114001112300001,101003104212220,102311110240101,114002002300302,100000304301120], + 130104121003132: [104404322124241,102032031130301,114030234020304,102200124012000,114002120023020,114421000001111,121400013334402,114413200000230,100103201040210,144000213202010], + 1010000221004003: [100442110030410,103040040000102,100000230401412,110213044200100,110134044242442,112210121100012,110221114214442,103011201241100,112102110203010,100220001210313], + 142143240040301: [110300100100200,101000224003200,102110140224010,102020011103400,102021324003010,110222000000130,103010000100030,110220441210241,110120021324222,102002012010000], + 302433002432021: [102214011111041,100002401040201,102113101342000,100212304243333,102300220241031,102302424110100,110000014211000,100121210402002,102312200240012,102212004030221], + 111133120321403: [110041202001012,100002121031241,113202020210311,102102304002200], + 1101003301300210: [100032421042201,100404412200031,100000001221100,103040224001431,110240242120033,100220201003103,100102020403042,110002202124024,102110014003412,100004101034200], + 1102304042120420: [102220011110041,100010204102110,111303034134331,102010200221212,114023240040131,112020021110420,103000000120110,114310024002102,101122440332111,102122100210030], + 213104002302241: [112142301101040,101000130320340,101121100332142,112401314040311,100110020031042,102011004013000,110422102110221,111200122222334,100220124221000,102301024113440], + 1102300211200213: [102140020210421,102112401342040,100010031232011,110010002200040,100222101000100,101002111141200,101412010300340,102422224043400,114304104033020,102102020311224], + 222124020411042: [114212104110100,102242201000222,100000104100102,102001040222000,111103214104101,102102042002001,112400420204232,101210321023022,102110444130000,110044222001040], + 1010340300041333: [102312441104020,100013411224200,110012442200211,110003302000022,112100222300311,102231011100310,101142320332414,110114004221012], + 200031023020211: [100002014200331,111020032203301,101000210303342,101440400302320,101012220323021,103000121424330,102111021022024,100300114310112,111100020020010,100202004324322], + 1102202024020044: [102040431121110,101221020040220,114111100021420,102212000200124,100300310140241,100103104302044,102141212000200,101203121020430,100030010102102,110041004200044], + 1000221300013104: [102000020223013,114040102301100,100020241043022,114413232320000,100100001040134,114441124140100,100002004130101,100301024310020,100130010101430,100020001030232], + 310340012100320: [102000100202041,101021041001434,111200024131220,111203034440323,110320222000043,100112401020300,100100000400120,101001031031221,111200004424200,112000211131111], + 133041110030432: [101440201100000,100003121040104,110013024201420,100112104300311,100002100021324,110233022230043,114000012210120,100030001042004,103002421401003,112101100420213], + 112124222120002: [101112404231342,110011401011100,103021030102410,110430314220010,102423100202400,114100212211004,100020011230424,102000034004310,102241021112220,114002114102222], + 113000121011001: [110240001202102,103200004030010,101002100340212,114200012321223,112000030210340,102100020214203,102201000203202,102302001000120,102111320321320,102010002000404], + 200401012020122: [103233020100000,100120414231002,102011201320040,110400230404040,102000124010244,102202431120401,100303204101034,100000014310210,100022201044014,102212204021114], + 1004310040031010: [101000024002230,101100020330020,101422021012014,111030222201023,111001200003214,102320010243201,103220000100301,101302204221000,110012020021204,101001420312100], + 1000000122040203: [100013204331410,104123000021013,101024000321043,101000001031042,110000030020101,101410101102110,111300400001004,101000040321140,110000321211330,112203044010404], + 1000000002310000: [101010201030113,102401004043011,114012012300010,102223134010120,103020440120000,102232004040004,100241224311010,103000200122014,111302120011012,102013220201100], + 1040220010100400: [102101211411000,100102224033421,100120040400011,100400110020244,100124021201021,114011120010030,102310100243242,101240404044020,100200044121414,100411201002420], + 1421413320421301: [101011400320030,114000004022410,102410012002102,101000134010220,112222032033421,112330302020202,112003042310200,102220001120020,100040000003122,112024140222012], + 240422402100404: [101020024212042,100041204212120,100410110420202,112423424042102,100320431000002,411200101402221,100120214230002,103204200103440,100210004104001,101410201111300], + 1002201010032044: [102100104000040,112132434020310,100000144104100,114200024110134,103340114022112,101014014000004,114001000010010,102110021341000,112440220203204,100100104102141], + 224003110224044: [101210010304011,112300212023031,114144004124200,102000121122000,110011424414202,110000214202000,100040011023003,100123031023104,114223212320410,100302114311412], + 110233020243242: [110214202044002,100041311024000,111003002230111,111202220001030,112100024020200,120120044004103,103040221410110,111001120001220,111120140012242,110130432212100], + 211201004430001: [100212424322433,110202212230010,103020201401020,102000401132401,114022020042232,110400204221003,101100111144300,101112041101020,102142101343402,101200001010111], + 1422032101002320: [111113202211020,101013004000130,112004030241132,111203034440323,100232004221200,110344041332022,100201000011432,101042144010200,100011031001031,101000214213100], + 1204224112141011: [110120144200000,114022412330004,102343230224321,101200221022044,110241112020204,100002004104004,102100224000210,114201104111034,102310140240012,100014204201000], + 1011100020240001: [110001100140240,102230114040102,100244204311004,112001002030133,100240203220201,110200114241402,112020201122220,102000100240000,100010201023140,114000020043211], + 1012241001010021: [114211010000210,100003040101420,101440004020212,110100201000100,100001024102310,100000004210012,110202102231202,102112000204313,111111024404430,100224120001302], + 1000222343220004: [100022021024200,102002301410122,102142020212310,114100220004120,103010420140201,100022401001413,100101104303303,103304004023413,100022201043312,102002410201020], + 1022200022201030: [102233404040001,111220244103011,114103204100320,100020021022433,102000044000420,114400000004004,114202002320114,101003401032000,101020011031332,100032114210020], + 1003140120011010: [101221020040220,100103104302044,102020004000014,100000211023014,100201111002224,114242410001010,114202044111100,102013420220240,114212100211223,102102044001132], + 1022040020020303: [100042100102211,100300041001121,102110030200120,101240004011021,100120014100010,102303030241010,114001112300001,102202144110114,101013220320021,103002020142122], + 121030201021201: [112113214020100,102010202004402,111130312211003,101001010300404,103340004020422,102420221112201,101224044041002,102211430202033,100010344310042,101031321022412], + 240103001022000: [100233220003022,100040104202411,100040204313012,102101002002010,102200000201240,103200001423140,110431012224002,102123402001200,120103342024110,114220320210120], + 242322430033202: [100020214301001,102022024000100,100040001230110,103010100143010,101022030320100,114111220030210,102030004000400,100021020201421,112402122023323,103034201424002], + 1000010302120013: [100002221021122,102122111412001,100031430104201,102030100200300,100000020002303,110004031201142,110032230410440,100200014301133,101440220333000,111303102204110], + 1111200020001300: [110212012114431,100001140020000,100012101223021,110013030020121,100121104300201,101220330300003,110132000024420,100011014130012,103103144000200,101003131002404], + 120213302000302: [110130102010010,110100030123401,101000011000041,110001010030000,104100302102030,110102202013213,110000242104040,100003110022310,102220314013103,100022000200002], + 111321043004100: [100032041021210,110001041213031,102300324010203,110414300030001,100030020011022,102040011121100,111202012222402,111322234130000,102040041320010,102402104022000], + 1021000300402040: [100303101202010,100201244032040,112012000212410,112000102000300,110104101002000,102000034013010,112010102001040,110030202101140,103012100122324,111202030012240], + 101024012430110: [110102224201130,103301201402204,102401121113302,100021020124002,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010,114042014014024], + 102211043020114: [102120031140142,101010224000130,101000414002041,102322004112023,100222044100141,100020140002030,102134144003010,102010420220104,103022301400010,111240240000201], + 130010310333012: [102320130240202,110140042002031,111001024132202,110223102022103,110010132030102,110120100000300,111013244111024], + 1130301021023100: [102021400220100,102301040242220,101020041110102,101401414024002,112002002021204,102140111141440,102202102021204,102200121300410,100400002201023,112200322042040], + 1000012043200222: [100341320422234,110110132041402,110020422002214,112034310220200,111022124400200,103140240112020,101404114023200,101040214002020,113200210100211], + 110123031100101: [102121221343020,101400010303002,112104424022201,100013211002142,130030220200012,112200110000221,1300034431310021,144020001004041,1001010233020100,102210104000000], + 101323202030112: [102100022003140,102102211021113,111400024404023,110020122000043,101004001030002,100210120430000,100010004100021,111240124130104,110012211001003,111103242111211], + 121001310402023: [101010010320112,100021111043012,110124041140000,103300021402104,100001000100403,100020124100010,100301020140000,102102024000001,114003104032034,103214430100103], + 110001411212010: [100020220420321,100120004300002,101000310140030,110302010102310], + 243100400000122: [114000042302220,102000021101201,102141300232324,101024401112120,110140141201202,102341100242122,100400002201120,200030234030020,112020311120102,110000000000000], + 1000322000000011: [111101220012213,102330230243214,102202020204012,112104230232110,103343430113420,103023421431022,100043404304122,101230134011232,114013134031222,102204001121032], + 1000402100302214: [110100104404110,102110042001043,110200200400310,114100002204212,102003000212104,110000011301000,102000100220240,110013001200012,102030204000041,102110021341014], + 1010020123402103: [102403001342000,100400020033040,100102431021300,110200212041001,110021224200431,111210224410302,104110100014103,112310402020014,100033211230014,100001211040232], + 103104002232210: [101214104041040,110104231221040,102012204010044,103101000100022,100020141044111,114200000002420,101024420304241,110401440001204,110204310112224,100042110122000], + 1000143101402202: [101012131000024,102120221022200,102110141410402,101044001032114,114221104114000,100001111032112,100400212200322,112400004020421,103221021412001], + 111020203013314: [100400220013224,110402021310312,112201000410000,110401101112014,110014400040200,101033234000033,111414014420011,100102224030230,114323000003430,100000111020230], + 142224011000001: [114004102300332,102020010200114,114103244123211,102240044042003,102331010240100,102003231440340,100341231202001,100100020021020,114023102300012,101000000321010], + 143141122114011: [110231202040203,103014224004000,110024404201041,101040001230002,111200010014132], + 111004103010112: [100030220422042,103442424001120,103101001210223,102210324032234,102220001100011,102202421300101,101013001024140,112000234001001,101040030320010,102100041140211], + 332402034330404: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1421124420041003: [110300120403013,110131002010202,110140044401202,101120101100112,102000300200231,100002030410210,102231031123103,100221321000021,102010320232020,101043314210310], + 110202413200020: [103242420100012,110224044242243,101400004022112,101040004010012,100100210000011,102200000200201,110020402004210,103110020210000,114004030023211,102201430201310], + 1040121123202000: [100200104321000,110000110410110,101021000341001,112032302000220,102004301444000,111133030010200,102103231340304,114000044101422,102020204002424,100003044240120], + 101001202100021: [111014202144002,103222100100201,102101034000000,114004000044132,100131401022011,101000000312200,110022124200220,100010321020020,100122430422300,110011002100202], + 221334220100442: [110010022130210,102000124012341,102321101000300,102010020210100,100000404210104,103100104000130,102104211400330,101130024000302,100210310002000,111303024130204], + 1041002103101211: [103004420100020,102220032001000], + 222000111000200: [111333104124202,101004120224442,103102000121300,114000320043340,111100030030120,100320421001431,100024004304130,101233021020010,111100400022041,110320002020403], + 100043121004014: [102020200223310,103043404000202,101001400301113,100002120200101,102014111102023,102432114041004,101301014220002,112410300200001,100021201020001,100112240020023], + 112101400003100: [114020014110120,102142030224211,101000034000220,114102140221100,110000121300012,102112411342231,101033100302011,111122004100320,110034004420011,100202140430130], + 1000023022010021: [110200411140130,102301002004242,100131011001300,104100302102030,103200030110000,110102202013213,110021404214210,101003014210212,100210024300001,100000200003102], + 1003202110244000: [110020001310000,110214024430312,100011014100041,100310201003000,110412121110214,100212341003212,110142300120000,112013212032000,112010220224003,112001040231401], + 1100012401200032: [101222321200012,103103240104001,102123040212103,100204104322122,100041301021020,100102001301220,100020011020010,114130000220023,102314224010213,112113012010000], + 201141100111002: [111121100010021,110310034424102,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000,100010020101222], + 220204431033020: [100243401002310,100004000100101,114230014000002,114130104001000,101004000304012,100022210410130,114034424104042,112043001120130,114021214100300,112204111102324], + 1111021122201211: [112003001123403,100200004300314,101101424003234,110034022104420,102101210314100,112013001120433,102240001121213,102200000240110,112221030222111,101010404210042], + 1011010232142210: [100200011002200,100211041001012,114002102301240,112001112002104,112200000201104,100234124120220,110030010120002,111003212230033,103400130120100,111020404402004], + 100140423230102: [110012140020202,100003421041001,102010212000134,100000300100343,102110021341422,114241022332104,101403020334021,102002000224104,101200201010041,101212430302203], + 1032301032221042: [102000004002101,110202000000310,110000010120043,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,112100000200031], + 240000400333000: [100002100100210,103020031403100,102200401111200,102000430221040,114003104031111,114000044020204,100102020411200,114221030000011,114200302341234,103002110100200], + 1012001220400002: [114034030020130,100000301031020,102422310203100,114224200210241,101010244002013,102343001000312,100001200102200,1001233110104110,102100201341123,101101030330100], + 1433033010002414: [102110000203003,114002010040032,100400012201120,101204014010434,102020022000021,102000114010020,102102000312101,111043144410240,100020101030012,111222032223120], + 101142112000021: [103122020213112,100104010021241,114101100211240,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112], + 1101131010041040: [112000431120410,101342300314204,114104200220022,100021221021201,110001244204302,102010244010000,103003204011330,114200034110031,114423002314000,114010134021022], + 100401020211000: [110020301320101,114013212300032,100014030122001,114001034010131,100340204310400,110302220011010,110401041140300,112143002312100,103000121403344,103310041402103], + 102104410120034: [100000021040000,103120304002002,101000011111001,111231434104200,110222400112201,104100021240122,100033300410212,102110042004000,102201000200211,101100321120001], + 1001310000104421: [100004001021111,101021004214202,103022021431010,100003000104203,102101220214011,102114320203000,114001112300001,101003104212220,102120231343021,102311110240101], + 221000313224300: [100030324200410,101000001111200,102300404024300,102113200210140,100040041020102,114200020003431,114041002212302,101002200343110,100212024322044,100140004102001], + 201000010033001: [101204334232020,112012002303014,100004340004131,100210421004302,100200411000410,102003101130231,102240200214023,111021220021002,102101024002102,101023011142204], + 1001220422432203: [102000034011002,103204000110000,100001014340021,114203202330210,102103001340022,112032000211000,100002110000131,114100102202223,102331221102213,110021204411214], + 101003121003132: [110332424431130,110011414201101,114400104140001,111120442100320,114312112320302,110000121033240,110122114404243,103100024003112,111010242140140,101112121144002], + 1020204211302421: [111400124420002,101033124000402,102401000201121,111013232200403,100112044024030,102214104010210,101202024231020,102201100240444,100012001020330,101013411000000], + 140111020022000: [100440031001120,102203004042010,114203042330220,100020001041410,102032012000101,102102231400111,114014112302234,101004201001232,112102102302000,102141231343401], + 1031202210413240: [114003014100103,102010420200220,102033001100221,100210144220030,100001410012241,101003004000010,110000042000440,112001132340013,111002130041004,111122402242000], + 1010021211301100: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 130230002001121: [101233110040000,100001214100401,102422221110121,110123104200100,100200220110004,110422120034403,103102200210402,114001102211300,110400031000210,100010134202001], + 102441000440213: [100442024301200,411231400122100,100400414321103,101024000322432,110302030412400,100110020000040,102132204131302,100010100000320,110020034203040,102014031440442], + 103224100021030: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,110100034200300,100401201010220,102100204000234,100211120140002,102043221012112], + 102330411203011: [102340421000001,102040410243001,101031122400122,114342304031011,111430442210202,102143341004201,100202210000020,102101101400002,103304110111122,102103114022230], + 222312020302324: [100120201020014,112433322023300,103202404032404,103331140112102,103121211441140,102230201124100,112102330202300,100400202200330,101403200300001,102011224000020], + 202003000303201: [100000004100202,101024004002101,110120041200201], + 1022340400110004: [114024312202242,100020001011422,101023321000020,100110411200024,114020000022214,111240020000201,101012230312200,100442041001211,102004131410330,111120024404002], + 1034112100120120: [110003000042343,103001224014142,102304000241010,110011000043131,100004220412332,114102400001020,110220201301140,100022221044012,110312300010200,103214210103210], + 103123020001212: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,114040204014042,100040401020413,112414334044310,114001010044120,101010111033143], + 1222000304210221: [102231130213210,102000402041014,100043324210140,114113104123200,100023024211011,101210210300031,100003201021001,110002021121023,102300040221403,102201100200430], + 110040202310000: [100004001021111,100003021033300,101021004214202,102110020202330,100001010014420,100003000104203,102101220214011,102114320203000,114001214100103,114001112300001], + 1002430204000011: [100002414210010,100021014100124,101020104000001,103013200120113,101313004232122,100142221042020,102012200200030,103210011421102,114202124000200,112041432030144], + 130133022034003: [100030420000100,100400030013203,111200314440011,100421320030200,103210400102031,114240042320132,110410330000000,114100042343200,101223240301022,100200044121001], + 130221220211110: [110232022123020,100002004303100,103140044032100,100010240101221,102100010213413,101024011034002,102000041101100,100032224101400,100042004301301,100012021031014], + 1041003423011011: [100042320001030,110024001010110,100100014300230,100001004300242,111120044100110,114240314000100,101002411030000,102002324011002,102400001113002,102413001402023], + 140220200202201: [1010400230221020,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122,100002301021040,111020002202333,100013040100000,102011314000200], + 1101310120000003: [103102041440324,112110032304211,112200431102021,111320124130040,110042234410000,102424111401024,102030200222404,110010042000123,114040340020333,101100240320232], + 220012401200004: [111000222232122,100102204231301,114021140020102,112201104011200,110003101312402,102014002000001,110341024422102,110024120430323,111012400013240,100003240003001], + 100410000204202: [100121230031032,112000431120410,103042024040104,102304104110001,100104211044110,101342300314204,114241222321321,114013124030022,100013200100011,114104200220022], + 124112142003300: [111304340002030,110102000401214,100100111044040,102024102020000,102224241110003,100023101001004,102001014013004,114022100010000,114321004030021,103210210100210], + 100222000201141: [111220202240410,110114002004014,100010114200031,101224110303300,110003020001402,110100200402003,114001000010302,101020031112040,100020134200102,100211114340130], + 1112112104001010: [100030324200410,114202244112111,102110202001010,114420200000104,114041002212302,100043200102020,103332044032320,103102210210321,102420030231021,114040002300000], + 1001024020110042: [100321004011041,110002342100014,100301300121100,111101042244210,110124002040002,110023410122402,110042400130000,111200020004203,104101201240100,110000011012202], + 222000000111030: [104110021244203,100200004301323,110010030440201,110041002130210,110020004414024,102103022002001,102102224000012,102100102001032,100142431013000,101000031001011], + 301201321412114: [110241024242442,110444010032242,100001041031013,110300112023012,110224200113042,101000020301410,114000102210200,101041001032310,103103210111220,103100100100104], + 1001401204010041: [102001200221011,114201004110120,100412114304000,102021014012210,101000004010012,102244221114031,103030104000102,112400000200011,114201024112001,111101400011011], + 122000221134002: [100032041021210,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,102000221442214,102040041320010], + 1140040230300420: [112213000200301,100003224334120,100404224300012,110204130004030,110003200132101,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440], + 1020124302410002: [100031120101224,114122220031004,112040200233002,114022214031210,103234100101221,100010111040104,103103311424020,1132202011200221,101030010320024,102303020211000], + 300131400102132: [102033124002102,112410202021300,110000201301004,110002040021102,100000001032140,100110221000310,100030401031400,110031001010032,112220100201030,110002212132131], + 1031013004111344: [110111001300044,111000002202324,111211010001300,103210001422303,100101141042243,100101100022012,102020440242023,114201004004000,100220010002421,111210240010100], + 321212313310000: [102110000210300,131402001003121,104220041321240,114420000001024,103300031403210,100022131043110,103422421110341,102040300202332,102100100230142,110030140000021], + 1031114101021312: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,111112204404021], + 1000100321030402: [102000200220320,102021030221122,101322410300004,102241210201000,114040222301101,102140110210424,114101004100000,101010221002100,100311121002020,101303104220020], + 100032110021202: [111101232220021,112100200202204,101022201033321,102001031103412,110033000020122,100230001202112,103100301242013,102004002040221,112001010223002,100200100000040], + 211431213023002: [100103301002044,110020102102000,111130202220102,100404200013100,100040104331012,101114024200021,102240041122001,110310112002442,100200320000121,101144411020100], + 1420000231002131: [103332104032020,112431212020030], + 1001400221103411: [100041000010302,112004202302034,100010044300003,111321314133000,101131024020440,103014004012401,101000134220400,102000401100000,114030202300100,112024021130010], + 1002203313010142: [102142221342202,102001200221011,103043404000202,102420000202033,100020101020404,100002411021201,101000004010012,102110010210330,103024000103302,100012020410400], + 1110400202040013: [110014002132100,101042104010000,104122202100000,110410000002004,111424002101030,100414231011020,103100304000131,100312021000201,114121110030203,100001122210110], + 1403112231441022: [102302211100230,110211100000033,102002104004011,102102104002322,101020110321041,102014401132322,114030304031042,103130321244400,101400221012300,102031001100042], + 1110114001102022: [114132202312102,100021110200330,110322110010000,103302034020140,103214104034020,100400000013010,110222201200000,110302400012002,100103004000123,101230234011000], + 112014020230002: [100130434232013,100000100421200,112201200202200,114331000001140,110310130104000,100220020432312,101403314001202,110002001300010,102040200212002,101312001001330], + 1002402303020200: [100200004301323,110010030440201,110041002130210,110020004414024,100031220121003,101100001102230,100031314241140,114302102300200,111042012220110,101222121020001], + 1034011130110130: [111410202221302,110002302101012,100111401011110,102000034004310,100114110411042,100004004104022,100223010432101,100002004340344,100030314201020,100100044032000], + 122140210310004: [110020301220324,102020100243032,100031001020040,100104001041200,102012200202303,103222114034232,101110404021211,103110041442122,114210400000112,114042014102321], + 1141420000042402: [100131424302300,102104004021010,112033000244420,104132001240113,114302044003120,100001104310020,110014210424201,100202234032222,114400220000013,101422404040210], + 332113304304234: [101400004022112,103110020210000,100022141030334,103200211410311,102100404021014,102303001102431,111441004421100,102000200223003,112030222004121,100141334301022], + 1202100101401313: [100210014322020,114010224101022,100230410112111,100030131042200,101203004042010,114221000210214,102343022000042,1144030041011004,103400004000422,210202104001103], + 112010020010301: [102022004012201,111130210020000,100000024210130,102034221103124,100014030200221,100020134212021,112001120220130,102102230203330,114100224120003,101001104003130], + 1002004221333411: [114343002322014,100022314100104,102130314131401,110200002031302,100013024312024,102002020243020,114002002300201,102040021121030,100311314310000,101002134210440], + 241120022010303: [100021311233000,110020200420132,103111104030033,104100031240003,102023021100022,102300024110101,111010204111010,111200302222011,100113144300434,100010010004402], + 1020402011024131: [111002012204241,110004202003210,111021400040242,100000221030033,110201304240304,100034404303122,101012400340400,100020330410000,114001030042240,101203004042401], + 1021134110410030: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,100103104302044,102141212000200,102042000222002], + 1002040143040001: [111423000022420,140102120200000,110400444243022,110131001002021,203201100012000,122001000320022,121104330112000], + 102224413020102: [114201204111222,100104001041200,103300004021200,102122214131011,100023031000024,114210400000112,103230134011412,100012004101221,114122112202230,102021021101204], + 100003004002122: [100102134031030,110233000100021,103011041410132,100112104301200,100021242211014,110211104432213,101110040002210,101001210201440,111401304441341], + 132200004340203: [100041200010000,111114212112100,111000002202324,104132100011024,111211010001300,100113434301241,114030020020301,111014014401303,103210001422303,100100000022131], + 1133221102100310: [102141040210012,1101341442120200,103110004004103,114110012310040,422202004012314,111000000001024,110101112142230,1022020301440012,400020112402100,114300410001304], + 122401000020030: [102000024011300,101011210300000,101002221140440,102040021424212,112400020200104,100100001010020,101000000322000,100102021220030,112002022034002,110200140401144], + 1431100000100123: [100010424101430,114000224101044,102110022001111,101020301114001,102102300210103,103024011431131,101011324001431,102320200224120,100030014210012,114100300000120], + 1100000310014203: [100201114323042,102102011341002,102141024001000,114222144114122,103001000102220,102021010243000,121100311033233,111110202240200,100002000412000,110103400121140], + 1100100104010032: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 242110023420010: [110010302000004,100014014203233,111422100034314,100102001013034,100001014100021,102030414003000,101342020314000,102112104004041,101020041110132,102422101111002], + 130000201201002: [114104032211214,102410400233132,114200004110121,114012004033222,101000321001401,110102210400043,110004004200130,102200200240031,102101114021130,112122000202103], + 1100400310031200: [114000222211300,102130040230200,114030034013200,102303214031001,100001010101032,102212241110430,101124314020402,114432002322240,110130402140002,101402104020302], + 1003200131132322: [102133404134022,1302221400222330,130000220021033,131114110030130,113000343131000,410120000124111,413200300004130,114223013001001,101310000020110,100103222310200], + 102110032002304: [102301344113012,114010200020312,112144220201011,100002131020410,101001020322010,114112244122013,100111200414020,102443421400110,114044414023030,101030001030220], + 1022141210111220: [100121230031032,103300344012201,100122200012014,103042024040104,114021002302020,102313204114304,100013200100011,112100102300200,111201424100200,112130011100011], + 1100100220010122: [110202012100020,102120231343224,111342020011220,100314114322101,103100034001310,111222102243400,100001221021031,101322221001021,114031010010210,100010001032003], + 140021410010010: [110011414240022,102100104000040,112132434020310,100000144104100,112120224040040,103301410110110,102124031023100,100204104320231,114002104020100,102311011000200], + 1000021220012121: [102032031130301,100013401040442,102410234024100,103012134011120,110412412010034,100101132014001,102102024222122,144012013212122,111204203012002,122300240121010], + 1403201000102401: [101421100301230,102130124130100,102022020204430,103214021400010,114003422304142,100012401020212,110100022010014,102000324011143,111110420014032,100003131040012], + 1012000230000340: [110220100000102,114042102330002,100014001041000,204020131034103,114113404003030,102310030240210,102200400234000,103001324012043,102110222004041,100102240020100], + 1001242011302204: [114010200011100,100102110412002,100000204214001,102022000220004,102310110213220,100012001042030,102000404000400,100013040404011,102004004004200,101002134011001], + 101041110002034: [111104102242110,100002200410230,100044010200300,102000021444112,100003010413400,103334120114003,100130204300200,110112131124012,102330104110220,101012224211030], + 1120014221202210: [103200021112201,102100200234203,103221021411102,110001214200042,112002242001000,100021111211003,103204020102102,112010204003014,101032240320040,112001302302020], + 240222400400110: [110000002100100,102022114004241,100200001000210,103230041400313,420011043004003,100012010410000,102302201102102,110222100022402,102004220201101,101210304043113], + 141300220000012: [101230002122040,110100041200400,101210241204043,104102040011120,111311120014011,100123011004113,100420001002101,101134224001001,102321234111310,102020121102120], + 111104440033432: [102124404001102,110032021010202,102202001300111,111221100003110,100401442201310,111000022230000,100400400022120,100212011212040,110100021302001,112042321111000], + 1121004142000010: [100300041001121,101240004011021,100120014100010,102303030241010,102202144110114,103002020142122,100022101001140,101401101012402,101002244012322,100000410122022], + 103211301011430: [101004200304221,102120214001422,101412300302220,110320002024021,114002044114140,101424011012000,110010444410200,102103101004410,102434111110111,100431000033004], + 1421032030120000: [101222101202341,110301442021010,100010024302100,100000011020412,102022400210202,102003034011323,111300000001323,110000002001040,110101000121214,100440441010002], + 103123320204204: [110301342021212,103330101403140,114102330211330,101021001140430,103000004001204,112124334023200,100000021232013,111344100003001,102141341340331,102132040202300], + 100111222201202: [102100001001320,111431114420423], + 1002000011024023: [114010034012014,103200031411100,100010004300024,100000324340102,114443200000122,114000102300102,114444124143021,102101000233100,103030024020041,110224104244000], + 1100021440000202: [114201010001201,100030024300201,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100,110012404201130,102311210240013], + 1010200102002042: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,101110404021211,103110041442122,114210400000112,114042014102321,103230134011412], + 312000302200112: [103300034021000,102441324022342,101041301000020,100010014313003,103220114040342,112032000201314,114240004002100,103000111403340,103102110210113,112120404000342], + 1011211122203013: [100202400434310,100000010002202,114410024140040,111221024440402,100021344104342,101011121032013,110000300444443,100203021000012,101001020321310,100221014121144], + 1021223331003222: [102012300212321,112400202023020,104400100142023,1320142020103004,1320024233112412,100010230021300,102230004030112,402014100021201,1002022012411300,214021333002200], + 130300011132214: [110100100101041,100420124100211,101040120320230,101220000040002,100422001002123,102314001101211,110140001300022,100212024232000,114202422323004,103120020221120], + 1400001010013100: [100000241020300,111021030042411,110131011000142,102401010202301,100201134320102,110000302122001,110202012020000,110043414212400,111110004101041,102021410242110], + 122101040014100: [110210221300113,110304014433122,110200004243223,102000010200200,100002330412031,114020042302142,113420011011140,102142231143322,110020122000000,112020402001012], + 1020234000001000: [103100030100010,102013110201200,100042000102010,112000230220102,102013000202010,100200001210240,112010022302321,101040224003400,102304111101041,103204101402321], + 1000310012004020: [112022420230003,114000044031200,102220204002000,112020411110200,100102011022214,101130000022041,100120110402020,101011030320023,100211004343003,112312002020000], + 210020111331033: [112024442000120,100100320100331,100024010200212,110200002122130,112002022302433,100010021042030], + 1001200302144433: [110322011230103,100023230123400,101020031114000,100021020100003,102340024021002,110112202001101,130100014120020,102000031101300,102142440202140,101021011140144], + 1434431010142230: [111002100000102,114021010040140,110220130100010,110203022032320,101300004233220,100300110110043,114000102300040,102011011130000,110434102020102,112020040231003], + 1100020142200241: [102010114022011,103340041403223,114002200000421,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,100001111201214,100024311220202], + 1001020100031211: [110301442021010,110001332103022,100104004300024,112041000220020,111304202202230,110000002001040,100440441010002,110040310040200,100430440030020,100100124301211], + 1012140202122000: [101000011030111,1300040101002020,1142022100220102,1212333103010100,100103211002030,1001002042020200], + 1202200030021033: [100003211020020,111000240044102,100000101040120,102300000220000,102323320240010,100011200100023,100010044213301,100330204322010,102111211401000,100122124300402], + 101410041124224: [110112320021204,114000000030300,110302130004200,102112100210100,110011111104432,111410004401301,102300044020403,101113231111221,110020131231003,110411032122430], + 100143114302211: [104132212102200,104100042101431,101410241100300,102000114001011,102320031100120,110231011210112,100402420022220,100421010013100,102211414034011,102300300212011], + 1121240102001110: [100000304340012,110404211211000,114120004000010,102404000230201,114011012210001,102212014011000,101301101004120,100000311024240,111040034111020,114140212320402], + 120032110220044: [102240020200400,101210331023020,102101134004010,103240100102101,101011211002010,104110411304420,100222100412022,102140002000412,110043001201204,101201324232020], + 1404011014011042: [110021104200001,110310020040401,110202204430020,110310002221402,110030002130201,102103320232241,100200000000210,110200222111020,110111001302000,110210304220000], + 202020130110003: [100044301030400,111311402221430,111420230003130,100030100423022,112203301101120,111310000013103,101200000302112,100020001031123,100114010111402,102120124032210], + 201301020200210: [100002021042230,102122220214101,114112012310000,100120210410001,114043402214302,100000001020340,100104210400100,102002200200004,112011041133212,110402031313432], + 1124000010333132: [100001214301021,112222032444022,102012002340110,100000111104311,102001030200014,102132022121211,101002024003004,100040010002304,102200100234232,101020244222024], + 1000123120204200: [100042304102210,112202000411103,101040100302002,100013030100002,101203001010111,100310034310200,114003022300020,100031201030102,114201104114111,101041001003300], + 1010312311112214: [103112010213010,111400002102112,100034100124302,111112214101000,1320102201231021,112201011040200,101102312120003,100011221224211,1040000220110240,102221020200001], + 1100030122222312: [110303120102044,102120012001031,100400004303004,110002022030224,110430320104000,100204011002001,110020221320103,110121111202231,110200000103403,100000104342200], + 120203302122312: [111310220042301,112410434041401], + 1441321210011004: [102342214020012,100220024324023,100214104301120,104130011240303,110010000403030,100120221224010,110402101344233,101001011001300,110000200000133,100112024032033], + 104000302123421: [110401000034204,101002124040021,103021310002011,103010030100210,111203024411040,110422202110101,110003131322240,100112224231100,103020224043113,102030004010201], + 1111113302204330: [102013014013202,101000021142220,102121020220022,110020222000021,100021004302213,100133004030124,102021022002100,114100100220411,100100030410113,111012020024130], + 210033232000044: [103134014000340,101440004041120,100040210411102,101031214000041,100110004102034,114112020212203,114302020003041,102110014030002,114300132321233,110000140032001], + 1021000000413120: [100000004102001,100201030430140,110203224240202,100004024100043,102330001104103,100200241000143,112004002314010,100241214220112,110033430011100,102300401100413], + 1000002320240103: [110021104200001,100302141003012,102004441124110,100000301221024,101224322120022,114100200002120,110310020040401,110200010014000,110202204430020,104120221240413], + 1024110020330200: [110331400400440,114021140030020,111040300024044,114021112203114,103124000104424,100100201043042,102011011341100,110130201011011,103220000100002,102010010223000], + 120413001003011: [102424204043100,100113220020101,100300211000020,101410401010030,103210241422022,103240001403000,110020124200230,100042034202031,102103100310300,102012014002001], + 1103200132421324: [112213000200301,100003224334120,110204130004030,110202120003032,100322004314021,102343301100440,102410434000220,110110440020002,101101000330302,102020214010123], + 100011004110200: [101230002122040,110100041200400,101210241204043,111311120014011,100123011004113,100420001002101,110201134243240,102321234111310,101004010323441,102000024000002], + 111020032003204: [100021204100204,110211020000002,103002034034022,111230214102412,111433044442220,100113410410320,111201442222420,101000004013020,114012000022010,114222440003300], + 142110200030101: [102301004011202,102000201100400,110034120023130,100110010410230,112121040200102,103000101240211,110100004223144,100134044003303,110220010010120,100020311230000], + 111212000241041: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1002030001214342: [110022002120332,111110230014001,100301101000021,110020140044140,100000301031020,102100104000244,100221000031141,100420031002301,101311010340421,100011301024003], + 102042301201101: [102010202004402,111130312211003,100141214304000,101001010300404,103340004020422,102410220200004,101224044041002,102103214000210,100320114314042,100040400401001], + 101220410201134: [101301014221122,114220040000201,102102204022310,100404400013222,110012130410040,100104101200201,111040100020010,112201010203210,100000214310412,103042320101230], + 1000121020140020: [100003021033300,100142010410011,102110020202330,100001010014420,102041410242244,102101220214011,114001214100103,101200004040021,102323201000412,112102314020000], + 131231200410101: [102334004110232,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041,101300004231010,103122214003002], + 304410114003421: [102001231413224,103003024011120,110304000402222,110001141011223,101211220310040,114210010004202,100020041020122,111132244101222,100114234304200,100000220002002], + 1022000020300033: [110001030120020,102233034000002,112130004021000,213002142300033,111212024101031,100222240004231,102112314002011,100030034100004,102241414034000,102223001303020], + 1100002202412323: [100012400101400,111242212222022,102022411100012,100020100100300,100001210102104,101401140300101,101242000300000,101030004004303,114102404120000,102004021442313], + 131220420004123: [101232314010241,100301300121100,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,100414004300100,112102232300222,102200000201120], + 1020200240302400: [111020030040120,114301022320021,103344200113430,114101104102004,102440024022132,112100102012303,112003402002003,303020404011031,110432112113300,102012044013241], + 1020412223013431: [110002342100014,100301300121100,111101042244210,110124002040002,110023410122402,110042400130000,111200020004203,104101201240100,110000011012202,101001040302400], + 1440032123021120: [102231130213210,100043324210140,114113104123200,100023024211011,100003201021001,110002021121023,102300040221403,102201100200430,100114021040000,114121300224141], + 1002100401302020: [111330004130112,110000042002101,110010240442010,100003020422102,100120214231002,102001210221210,100042011210421,103020024001001,102314140212003,100003014204122], + 110200000021104: [112113214020100,103300344012201,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,101001010300404,100201104224131,103340004020422], + 221000130210110: [100020120021020,103001101422010,102100411121420,110110200000021,101324104210010,111001400043101,110444020400110,100002210000012,110400110001013,100013014310022], + 1001002313402301: [101240421023020,102110200202220,111031014133130,101020401034001,110103402012010,102440214020040,110004124203400,114010100001220,112022102000012,111000430020000], + 201010021240440: [100023011001021,100122204230331,100010020003124], + 130200020232002: [114202130211223,110110242112211,100033114200011,102201130200131,110100111221242,111110100010302,114020202201002,112002024004122,100410040030230,112120110200240], + 240041203020200: [101002200301130,100004431210220,103401034002022,100113211221220,102204000232030,101004004000320,100011344201241,111111002111301,103110404002224,110400130400001], + 1114000002330402: [101000224223002,112010012000201,112240000413000,101040201112304,100100301021212,111011024411424,100000101223200,103001404042022,101000231002312,113001320141134], + 100212132201001: [102010114022011,103340041403223,114002200000421,101020321002002,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,102301041000014], + 112111240000140: [100023421041402,101010224000130,101144134001102,100210020410010,101000414002041,114034422302101,110421104242000,102322004112023,102112404030400,100020140002030], + 122220212021024: [112241020202432,110443000000102,102430100200123,100100001013001,112401002022010,100004204101200,102001004014032,100403001011201,102002001442000,101002024002423], + 124040202022100: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102122412001012,102311120222404,114020404020132], + 1400014000001312: [100013304331301,112000022302210,101132101110121,100002441034002,112001001132010,110221412114120,100131241204104,110111242012201,100041411223021,101220024232404], + 102040442400304: [110141010001110,104122011242020,110213401202210,111103310001234,100110441001000,102312000240002,101202124010000,102012104010301,114123014001020,100004004303030], + 201021122032220: [100214121000000,100002244244011,102011041100210,114323000000130,100424104302020,101013234000010,103210014003000,101220441204300,102011112000100,114120134101111], + 230002034010432: [102430140202114,101414014042200,102120001411020,100124144230110,100040100003000,121443142030222,102040011100303,112020322003421,110304022101121,142001100014020], + 100120242322132: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110], + 1002114030300320: [114034030020130,100000301031020,102422310203100,104134440011201,102311021104000,102104220213400,114224200210241,101010244002013,102343001000312,100001200102200], + 102421001141212: [101242011000124,100202340430142,114420242311240,110141001301302,101200200300310,114011402303024,112124000203110,103330201404321,102104212003342,102020004000040], + 120014211020422: [110100000124440,114233242330032,102012004002430,102020000204042,100241101003430,101001224000033,111020120042200,112012212310300,103000301221001,111020122111214], + 110102220300102: [101021020331240,102131221410130,110031011310220,100020400003003], + 204242212230220: [100222004320102,100110004103122,103020200141000,102414034040100,100022304302043,103031300144042,100120010421220,100000111034100,103132114002002,100412200002013], + 200041240220100: [103000230120042,110111001300044,100101141042243,100101100022012,102001221100211,102100132000411,100220010002421,101240204233201,110320100402023,110220411214021], + 1141300003000001: [102000001132113,100222004320102,100110004103122,103020200141000,103031300144042,100120010421220,100000201041300,100000111034100,114011200003102,103132114002002], + 1101044004001200: [110100200030100,100000411231000,100023001222000,101002124002220,140300020110000,100003301030120,100101004230030,103044004034040,102300231000210,114034000012210], + 111400020211110: [111130224102101,102322020212020,114403304140021,100031131042030,112201422040000,114413232320000,114024130031020,114022300011000,114441124140100,114000002330112], + 1124411200202010: [103140114002241,102000301100100,101300414221100,102331201001140,102200230211200,114001042203020,112220022044223,102104411412302,103010210142002,102301010220021], + 1240312210020202: [110441140102024,101004120224442,100413311002132,100320421001431,110210301200101,111131102210013,110400241240242,102210101121104,110023102103200,102400140230123], + 1100203201112130: [102034011133220,111001004401004,102011001104040,101310340314200,102100101124222,101001001000001,100204421000010,100010111001330,100110041000011,110102320002010], + 124101120211420: [110011011212100,101134030011000,112000244001222,103220211421421,110123230124040,101000014012442,131000001020102,100301311003043,110430014221230,112200412033030], + 1040020120321030: [100222011211021,114031112210241,103201114030123,100002430012110,112000312000120,102120341340120,104134440011201,102311021104000,102104220213400,112021011112000], + 1002304404022010: [101201111200422,103340404020014,110104101003002,101201101022211,110021201011130,102100004004440,100212001004102,100011414310123,100231224330202,110420432122312], + 204000022400011: [103134014000340,104103100010141,101440004041120,111101222240010,100040210411102,101031214000041,100110004102034,114112020212203,102040140220220,114300132321233], + 101120020032110: [100021330000403,102004420240202,101302040341100,110040000001400,112101400230241,102110424004111,114100020221400,112020102003000,101003010300000,101020014210000], + 1010402034220214: [111102420023101,102102244000330,100203101000022,114114010021023,101000000320000,102310204033140,112301101134120,103022000112300,114220212340004,100004240120000], + 132142224424211: [101043042401310,111212022200012,101113012101010,111412020003222,102022102010211,100021220002020,103010441402001,110302242202220,103021020002400,111121004402312], + 1133124014424100: [102002104014022,102041324001010,100002101021040,111200112221320,100000331021022,101400314042120,102011200242200,114244100003024,102410101112322,111331440000120], + 1142104430233101: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 120221110220221: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 1002413221231220: [101130000023030,100200400000010,101221200010202,102100014031110,100040001022001,102421340201120,100002204300121,110004342121110,100100340412100,111430002210013], + 1030230031400411: [114201010001201,100030024300201,101041404002420,102220310200014,100040300102020,102101011342100,100312131204422,100012230204000,110131214220303,110143101120300], + 1013002311002010: [100423004302232,110030220000310,100110034332223,101223100300200,102001034002201,101104401020410,102032031440302,100113004304010,101310311000124,111303214132004], + 224200010200220: [102331021100100,103223014033210,110201124221001,100002001211230,114410102321111,114101004121222,101100234021102,114121104101103,100043110000201,110400112210122], + 1110100012011004: [112000202000231,112003120213024,111212024101414,114204304101001,111000200000302,112301132022231,110422234241202,101401241102000,100000324200100,112002144000010], + 202121012000121: [102400111402142,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,120020211120020,110230010010142,112003000230111,102031111324402], + 1000103100411424: [101400220300033,100012021032040,100012021040320,102130224023220,102100401143124,100010001030140,102110101410144,114142204121324,112102421102022,111320134133110], + 1001412201332002: [104400301202200,100030010000110], + 1412201020041112: [101032104014144,102120214004010,100022041030000,100402020024213,102142140313104,110410020403024,112412300200103,103023141400000,102443011400041,101001100300012], + 1201000121400404: [112004202302034,103300004021200,102122214131011,100023031000024,114210400000112,103230134011412,102021021101204,100231020102202,101000134220400,101410020300143], + 323234033120000: [102010130231400,101000041031301,101010311003410,100020424214024,103422430124013,103214400131240], + 1010120203003020: [101142400332243,110002001321022,102302004110032,101401204021230,103100010101002,102041201123423,102121014020030,101010221020404,110002034410423,102100220214002], + 1100413031100310: [100321004011041,110002342100014,100301300121100,111101042244210,110124002040002,110023410122402,104132420010010,110042400130000,100114111014300,101001040302400], + 1121101000401320: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1022013143100000: [102402024000034,103012024004312,102214020242110,100400212200322,101140320330114,103221021412001,100000204100304], + 1110300004201222: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,103140124002022,101042421021120,114013204013220,102000100221400,114241204001213], + 1242030100001103: [100010104331200,110100121224222,110002142120000,102011011321024,110100100030303,100043100103044,110121202010001,110020001300130,101120020304200,111242302220133], + 120010202000102: [110340014422102,100231004220242,101202010301321,100021210200200,102304024110004,100400102040013,120020430310100,143112400002321,112301043200001,103040110122010], + 100021140440004: [110000001324024,103100314001030,114101004121020,100040301042132,114010040023411,102001010222103,103300024014002,101021104212100,100000101030412,103031000121000], + 1042102220010314: [102000020223013,114040102301100,102310111001210,100020241043022,114413232320000,100100001040134,102100121341102,114000214031012,100002004130101,100301024310020], + 1110230020120320: [110103004402010,114010102301042,101100101114012,100210004104200,110210004220432,103201201204221,103100014001341,111243122210304,110403400034011,110000012031000], + 1010300040002400: [110330400010040,100101231004020,111000100012002,114102024123030,111102010012102,110013112004021,100143040411011,102404404004104,114002202302000,100034000000002], + 1044432423241010: [102400111402142,100010000002400,141030301403400,100000024100211,103224200113121,110140101300004,103103221421013,120020211120020,110230010010142,112003000230111], + 1100200011104310: [114000242200010,110000440420040,100004100410134,102011201412140,114000300014032,100041121022141,102100100220230,110400032220312,103334010111101,102010200223020], + 1010403000012130: [112233000410001,100021214200024,110102044223300,101022114002010,110402042222042,101013404000212,102121430200100,101001411000403,100123020002000,112121212311000], + 1102002000204044: [110001022000001,110023342101220,100021004310222,110020422131120,100001000100000,112220322030220,110202222043022,110313312021120,102223400201104,102342120222031], + 131130200220211: [103100221440010,114003344011001,100021101000000,102140000212141,101014201030204,101203001010111,100031201030102,101041001003300,100001100411302,114012444020220], + 103221021101110: [102401021402212,114400044140001,114120204000410,100000001020000,100031011042040,104312001303013,101403014021204,111224022220121,102022001100203,112000224000141], + 132200120000013: [102000220220104,114202044111100,100030004102002,103110114000220,103200021402002,114001200041204,114020114010322,102030401014002,101232444041012,100000020102121], + 132030014424412: [100440031001120,100020001041410,103220011420242,102032012000101,114014112302234,112102102302000,102141231343401,101231104200000,102112011401424,111242110002213], + 104040232200100: [102224101113104,100312331004000,103301244010210,114202144102100,100040310123023,103001220100000,112012012002100,114231200211200,102314001000244,114100000031020], + 101202011120011: [102322014113341,101022104001221,110021422000000,112021004003303,101120030330110,110331012224112,101002200301130,100011120000004,110224130002014,102300030220022], + 102011312440040: [110210134244100,102121041441000,114102022200000,110233010002020,111203034103022,102101304000012,114020202241323,110004402131000,101240024012131,100020114100404], + 1022413300441010: [102000020223013,114040102301100,112121032014014,102310111001210,100020241043022,114413232320000,100100001040134,102100121341102,100002004130101,100301024310020], + 103101430414310: [110302302001423,101010101022202,100013211002142,102211204000440,100200001001420,114141024004011,114140044002043,111030424400000,100031101031110,110202221212123], + 1000100422231213: [114214340000030,100022214102211,102311204021000,102314244114310,100000224300120,102102004000100,114200002341010,100024211042404,112004440223402,101000000304012], + 102130202031041: [100301300140011,100030031220122,102211104033011,103210000102210,111140000012120,101142444001020,110103010011301,101010404001431,103012204004212,101100044004000], + 1004311100312100: [111211312220002,100001001033004,102014100241300,100001111022110,100000224300120,114200002341010,100410100001321,114101020000102,103030030142013,100000230122114], + 1000000012202013: [101133001104410,102301001004020,100341130142101,114202424001100,102100300210100,1100000411441420,1002203010011112,402001100011120,100020321030202,402202000003002], + 1120141011000314: [114000044020204,103044010120003,110142020400012,100142011022211,114230344103210,100030020104423,100000001021041,101000401032212,100004104241121,101303414220001], + 1101120311023104: [110104112010103,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112203221102231,112400202020003], + 140441202010331: [100024041022000,101000020303402,101011204212224,102230320231031,110002304200001,101040000321200,110004311221102,100001324100210,101021210320211,100400112201310], + 111040410100314: [110011232100412,100220040142222,110232002101410,110020120040121,110200021210212,110131021240303,101040000301210,114240000001020,102130034023112,102204114114214], + 310040300000113: [100301031002201,100000224311320,102120121212031,112000400223100,112022411112104,102022031324020,100211111003420,100344041000232,114310332300121,112322031101041], + 1100241233220112: [103202004001120,100120204003012,1300022002310414], + 130302420200021: [100030200102434,114100204101002,101101230010000,114103204100320,114100020033022,114020012300203,102112410222200,101141041022031,102002100000102,102000044000420], + 132001404403001: [100024000110221,101000130320340,100110020031042,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,100211000412142], + 124232100100022: [110202000002301,100021401041100,114020000011320,111020032203301,114002204011413,102010111411204,100021314202402,103040020122222,100031001030010,103433144040432], + 133004121000421: [1010400230221020,103034010121101,102302200210010,102340120222440,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122,100002301021040], + 1402123103101200: [101434020303202,110220134241400,112014002000221,101020030341241,111421002210211,111110022240013,100100301004010,114302202304141,100241124022420,114404200002303], + 110040410040202: [110230231300100,102010424000101,100300121000420,100402431014100,100100001220400,110330200400021,102220324011110,101423100300002,103111300102020,112202012030100], + 113200102232043: [102222111120010,103200224033413,110002220002220,102300440221022,102320110240231,112100140200020,100133001220421,100122204301312,101000000300323,102024001102302], + 100023202232320: [100000220100001,100122230031414,210303212040010,114222042332003,100000014200104,114011120024030,100101121010100,103002011240201,102440024021100,110110420034120], + 1111032110212102: [103100214000130,100002244244011,114323000000130,114040410020022,110033020003012,110023100420044,102102121341231,103210014003000,101220441204300,100014101021022], + 1020002322133043: [110340014422102,101022400300001,102140004000100,103202130122102,100021000010213,100004101033223,100231004220242,112430010114123,130020100202200,120002101133400], + 102310411200002: [101220111020012,100000214101311,102200230202120,114200020003000,102012014000404,111130204100040,112410202020240,100033131043244,103000024040413,100000034344404], + 130110221101102: [103140211443110,100030001020201,101302401003202,114320100002004,110203221112042,100004004102002,114330100000020,100204220000112,103210200100000,100000001020344], + 100020213340111: [100423201003400,102010041320010,114000230023300,100020104102410,100423110021010,100010301032022,203110200224013,104021120012202,101002010323401,104202101104231], + 123020311240204: [110330400010040,100101231004020,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022,110020130044232], + 1021100222040004: [102334021001211,114123420002142,100000001024010,101000304000400,101204031024110,111310000002001,100010300100204,103131004000400,102000000222333,101221004040204], + 1422043004222012: [103242420100012,110224044242243,101400004022112,102200000200201,103110020210000,100022141030334,103200211410311,102100404021014,102303001102431,111441004421100], + 1430040010410020: [114000000032100,110140102142200,100110034101010,114341024032221,100400444100202,102004000201030,112020401130100,103122301212000,101000141004421,102201020201203], + 120114201000022: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 1003230011201240: [110100041200400,111311120014011,100420001002101,101134224001001,102321234111310,101004010323441,102043001021033,101210211022100,110421202110000,114230044144111], + 1004104302020210: [114120304000212,101042041021001,100010031232443,101211414040000,112000022310414,112010030221031,110012000000201,100001114011131,100102001220101,101021004000020], + 101000203000121: [110420200000430,102303044033020,100310000422013,100101144231140,102220111123300,100040001022100,100110311000421,100021420004400,100400010013210,100030424340022], + 1021220430143000: [111123010022304,112003001133011,110213002132000,102022420220121,111010132204402,102401214020202,112102204024002,101000131030120,100001301214030,100101000403002], + 1203010120120014: [100222011211021,114034030020130,114031112210241,102120341340120,102422310203100,104134440011201,102311021104000,102104220213400,112021011112000,114224200210241], + 102202402300040: [100000101040120,102323320240010,101022344002202,102112101020021,114313044003041,100030141000000,102011101320031,102013000200442,114024222212420,114201234002300], + 130340001031001: [102310000222133,114111000222110,112034040231012,114104310000002,102100011413420,100001001034141,112123102010143,102130201140012,100010204202202,112422320200210], + 1421200201043101: [114020420040020,102103401140000], + 1404022242211204: [111012344400410,124200301323001,102230430231000,101000031034024,132013121201314,102100010230140,122030001033422,111020324410032,123110100001324,101000324000302], + 101411020202310: [110214024430312,100011014100041,100212341003212,112010220224003,100200001001300,100012104313201,110212310000041,100040424310110,111301332200104,102141424030044], + 1120202100022021: [110003112130100,103000230120042,110111001300044,100101141042243,102020440242023,100220010002421,103222010114132,101240204233201,110220411214021,100110004332200], + 132411000001041: [102021024000010,114032424122040,112011012004300,102000401120420,102020004001311,111201210000103,100101101010100,102321044112101,100022024100041,102004012043122], + 200212000010200: [114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,100402431012022,111403100030130,102022400211311,110030400004330,100401241014100], + 232120404214130: [102334021001211,114201104114111,100001100411302,101414214021020,114123420002142,100000001024010,101000304000400,100000014202111,114202104001212,100010300100204], + 222202400430420: [103102101422031,101421100301230,102130124130100,102022020204430,103214021400010,100012401020212,110100022010014,102000324011143,111110420014032,102042231130200], + 120310030200000: [102011121131022,111320010000021,100010214101101,102010202002040,102131300232014,110231202044211,103022001220121,110013122103220,112214100423320,100000320004100], + 1002001240012200: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1103223420212310: [114010100020041,103102314001204,102010021320410,103222120102031,102121224004000,103100110211001,101002031032000,100012004103100,120014120001010,100401130022024], + 1043132202104022: [100020214300031,111220030010210,114042034104243,110123111300000,100020031041304,100412030034000,110100302010110,103232114040140,114010002240111,100002220411002], + 110420020014300: [114430324140000,103100010212020,110000440420040,100402200033000,100040001031332,100043404304202,102403100201234,102222121000433,101011000302004,100041121022141], + 1113124100141410: [100023324302420,103111201422013,100212024121000,100001001033200,102001024012440,103201000102140,114010112330000,100033200000420,101304004232410,101330104221320], + 110304311000201: [102431111110001,102013421100201,1003002030122040,1320124301012211,120204110000223,1110002442211200], + 100010030110010: [102402201110020,100001024100241,102000230224024,102103120210312,100111124101112,100011120022122,102243200200400,102303031001200,100024100411020,112001010233001], + 1004234000041422: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1031112024100002: [101010001000031,100021020104221,111120024101141,103201214021013,110310304430141,102113304130002,102000131131100,103124420221210,110201002043201,100011034302423], + 1020120002011140: [102114340204022,1303043020124234,114403402311003,111143400421100,110221310000130,100223331020012,1013001120112020,1311314200100310,101042020300200], + 112020313202420: [102203344011410,100021324100000,102103430210003,100012014300120,110100120400020,102414014022212,100032000101014,101430211012120,100204021000012,100032134101100], + 230000220100214: [102442211414022,110104231221040,110401440001204,114400322311044,101021021002110,103224401422304,100401140033104,111231012220013,103214220100013,102411130201102], + 1404101340311414: [100012230204000,110143101120300,101101200311102,112401402023020,103142104001331,100200204123011,102012024040044,103031120143010,100103401003022,100000010004223], + 1121211121220043: [102041310200042,111333104124202,101000304014100,100040011023101,110301030010140,104100002101431,101123232010002,114421242204443,110100222001100,103102000121300], + 1200200204310120: [101021120323020,100102101000203,114111200034310,100001021030011,100021030100001,103230040101112,100010041032043,102321021000142,102441311400421,112030004021010], + 231242124121002: [110420020103322,112400204042221,110400431001201,100030101232000,103122404000100,101140030330020,110030242131210,110142214201120,103202411411014,103232211412010], + 1003212121102021: [102442211414022,114400322311044,111231012220013,110022300420031,102340301000304,100101220101011,110000141123103,102011200242300,111121000014100,100411101001140], + 124120122002042: [101012041102300,114020312240022,101030101032311,110103100400230,100420201011001,114100234000001,110222022042422,101042024011422,113000011000002,103140120112032], + 122020101340442: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,112301312020123,102000201101332,102231041120104,100111304300020,114132420004104], + 100210004242020: [111312000000403,101212040011001,102312010211010,111011242233002,100000011041021,111110223004100,114313200211321,111321010040420,100120041224204,103004024040430], + 1024032020210011: [102301004011202,102000201100400,102001301132000,110034120023130,102101004002000,100110010410230,112121040200102,103000101240211,114221040210200,100001320404030], + 131001120002020: [110200400000020,100324140141402,110000112100402,100002204340200,110000410001034,111140000000000,110022002120332,111110230014001,100210200034304,110102111204210], + 1240020221213240: [111431110000042,100302141003012,102004441124110,103303201400021,100000301221024,101224322120022,114100200002120,110310020040401,110200010014000,104120221240413], + 1110110204200213: [100422211004214,102100000210002,102121010210004,114013214010111,100010004210020,112002100240200,100001404100110,110131022014120,101213110310042,112000002000110], + 130224120311000: [101423400300400,103140114002241,100024011031110,102200230211200,102221002020200,103113211441220,100000000120040,102001140222341,100010320201332,100004200100401], + 210400014012121: [110013202003320,101031241000010,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,100020010200022,110011300010031,110002401102404], + 122003012201010: [111042000041011,112040232002301,100023124103021,102120411023000,102000000240101,102020040223423,102201110212212,101111201110101,100031030000000,102020214011010], + 1000322104241421: [114002104014300,102000311102212,100130320031042,103110021442200,102010004040000,112433112020200,112301312020123,100042001020203,112221200410000,112023032000020], + 120004010022330: [112112014020002,114101404004011,100004414100021,103020241402220,102023110212012,102132210233141,102113101342120,102130241400320,103210124000001,100004340100020], + 1012214202111102: [114324100000120,101004301142000], + 213241130122220: [101020000300112,102203344011410,100021324100000,100002020410020,102012220241003,111120214102000,103130020213032,101430211012120,100204021000012,103302140112020], + 1101400342112001: [114033234032101,103001020120202,101000020302400,114200004110030,100101004301032,100030124212213,114210102320112,114234004112000,101000201034000,101032000312430], + 1421240440043000: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1130014010430330: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,102020004000014,100000211023014,114144014122041,100201111002224,101410304041000], + 121104244203004: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,103130021444021,102100104002224,102020004000014,100000211023014,114144014122041], + 1022000400011001: [114430324140000,114000242200010,110000440420040,100402200033000,100040001031332,100043404304202,102011201412140,102403100201234,102222121000433,101011000302004], + 1030222114123230: [112311011101001,100210201001001,101100001101401,110100124402042,111120402212201,100101021021114,100210010430242,101411001011011,110040212000010,114102124000200], + 1112033100200400: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 302323002003120: [100134120420201,101234100301031,100010111020010,103021321243004,100400130020130,102201144002030,100340040040204,101321001002122,103002124032324,114200100210114], + 1420231001032130: [114402404141241,100200400430003,110212022133311,101041210311410,110022004211030,110403010000304,101210021021243,100140024230240,112230240412241,110000204203220], + 1000000200001104: [102121221343020,101010101022202,112104424022201,100013211002142,1302314034023041,102211204000440,111030424400000,114140044002043,133010044232231,100031101031110], + 1014302220020110: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 1102010140134300: [111200200000232,100101001011114,101430004040203,102210314111120,100032300010000,114132302200001,100013004300240,102220024122101,112022140234004,100143440001301], + 131000301010041: [101033011001100,103100020210002,101011010320431,100100004230402,102110304020201,102321401104012,103041414001042,110202420004101,100021220010031,100000200100141], + 1020020212400020: [102300000211330,101011210314200,101211411020304,102314311100010,101000320320031,101040404012102,110042042002231,100400142200202,102110021342220,112002000222230], + 202110244030013: [103301244010210,103001220100000,112012012002100,102314001000244,114100000031020,100003124211410,102401024020221,111231012242301,114444004140210,102220210203210], + 1110431212111101: [1302314034023041,112012200120020,111041134000211,1124042220104011,133010044232231,1303040444403010,1100010110000012], + 111412220002130: [114040002210432,100010040122204,102001420220112,101422214042012,111000302230320], + 100423433212000: [110010334200041,110022004410312,100001024102001,102000401442010,321114010100340,102322101000200,101020041000102,102110100322014,110413131000201,112012002302100], + 1001203222000011: [102000000200302,112204134010100,101001334211011,110001222134013,102021120200111,110442004241010,101400304022340,101232140302001,110020302131112,110101431000132], + 101311221003141: [100021304300200,101024000321043,101023124002002,100020020102201,102111400210040,102023001440404,101023014004000,102140140230002,110412042010210,100001111040010], + 1002031401231123: [112000211111200,112102032012332,102010110200012,100112034232204,100102401041104,102011302002010,103103134000123,100121301013301,101000424001012,114200000002120], + 1004030022102013: [110230102122422,100013024201330,110222131200214,100000114332021,114000010020212,112002014003103,112120300420042,100100104100320,114201340002220,100221114121233], + 1022021020020200: [102022004012201,114201104111034,111130210020000,111102042213043,100000024210130,102300104110002,100024000101404,102041320220204,100020134212021,101201004203204], + 122303300001400: [100032304102001,100013000001010,101044024044020,110110121320433,110324201302001,121000140410003,111412332212200,110303202000004,112400132300000,114100102340042], + 1100330240101014: [110202000002301,100021401041100,114020000011320,114002204011413,102010111411204,103040020122222,100031001030010,103433144040432,102310201001420,102420321400201], + 1024002000220210: [111420012101422,110444144241024,114120030020202,110201002010420,101004020342000,100230410112111,114224012330022,102101124001310,110201002110202,100130001014110], + 1040012120204001: [114020202300410,102140201343122,100121100402000,241220023100031,123010242104441,100000411233303,110204420000422,102030014012023,100141104230230,1000200011141014], + 220430011210404: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1200300401420001: [114120430002002,100000100120300,114202244112111,100031021033010,114011404103142,100202121000302,114040002300000,102110230224231,102002430222010,112101040200013], + 1022200300012222: [100110034332223,101223100300200,101100011201440,111303214132004,100001000100200,100003301003304,102201002022002,112000000220402,103001201221020,102042100221020], + 1102024000211320: [102402024000034,103012024004312,102214020242110,114102224104002,114422404110312,101140320330114,101010010300020,102403144000120,112120020230024,100000204100304], + 240120103310240: [110004020020022,114032412303041,114322024034312,100100244231020,102143432000102,102040010200101,102200434012013,112000301122111,114001110033210,102100201400122], + 1221010200000200: [102304030220001,102222320200001,101100021101232,101010001000432,100134101022112,103310200110020,100020031030323,100001001032400,101011411002311,102101221414000], + 204002010230203: [110100120400020,111120214102000,102113200210140,103130020213032,114030000030012,100000010202201,100111404302321,100012024210210,110200210102240,101040240320200], + 1040101300002402: [110203022032320,103142021211011,313040122221220,102002240241140,102121030212020,114411024142133,103004201240410,100022024340200,114020110001011,101010330320400], + 1110230402120404: [102403004042342,111122004101222,114020040013100,114000222213021,100000020401302], + 112204012420204: [114212104110100,102242201000222,100000104100102,102001040222000,114004202210130,111103214104101,101220000302410,100004210412101,102102042002001,101210321023022], + 110042014000222: [112004202302034,100010044300003,112120224040040,111321314133000,103301410110110,101131024020440,100231020102202,101011211003002,103014004012401,102000401100000], + 242041312101210: [102143124001400,100011011020440,101002121000111,100033134104200,100000201024213,114003422304142,111001404112102,102010201122000,114011042300202,101400031014311], + 1004002011241402: [100042320001030,110024001010110,100100014300230,102043104010014,100001004300242,111120044100110,102200201110443,114240314000100,101002411030000,102002324011002], + 100203420211214: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,110200002031302,100013024312024,102002020243020,114002002300201,102040021121030], + 1003310202401140: [110202012100020,102303010241010,111342020011220,100314114322101,114032104100141,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 1020022202100014: [112000022310414,112010030221031,101010001141222,100221414100030,110110210012111,112122004020414,102000220204011,103000000141102,103411404020440,100001124311011], + 201012420101401: [114411202310423,100011041020300,101211024040010,100400200020134,110303202102200,102110010204021,111242020000400,112230202030200,110012104411212,101022324011422], + 142411340002140: [101100230013304,102330420243012,114011024102042,102310100240232,114230200210013,101030320340141,110020312200022,111302222202200,114003304110004,114311102301101], + 1001400040022014: [100022021024200,101012011001200,101222000300004,102142020212310,100102204301113,114100220004120,103234000104020,100100030024103,103010420140201,100022401001413], + 201203111010202: [112413224040101,100220100110400,101200031020230,101024001034211,114001012300002,102121100232012,114102330210021,102140320310003,111001100020413,112203101100310], + 1000301000024240: [110302302001423,101010101022202,112000042000001,100013211002142,110104000024100,103112000120002,102211204000440,100200001001420,103042021223102,111030424400000], + 203040004000004: [110121100004131,102320000221020,110142020400012,100142011022211,114230344103210,103114211441300,100101020022402,114010100032104,102300121000004,114010212301121], + 112020030001000: [100002104302320,103100121423010,110031024200343,100110411011010,100021244103133,100020104104422,114112012310000,104110202100102,100113040414312,114002340024001], + 1402000222022000: [100041204212120,102113110210240,112423424042102,100320431000002,102100300210100,102440100200000,1302011220000002,100401430030420,1300302112030020,100140221202112], + 1001102200311344: [110141104201032,101010401033011,103200000101342,110202202031122,100020140120213,100021000101421,103021110110030,110011042100122,112000000212221,110221402132200], + 110412023400422: [101022014222024,102203344011410,102103430210003,100012014300120,110100120400020,102414014022212,100032000101014,101430211012120,111311002224001,114030000030012], + 141030323100120: [114020202300410,102140201343122,100121100402000,241220023100031,123010242104441,100000411233303,101210001313401,110204420000422,102030014012023,100141104230230], + 104100100000114: [100012110101000,101202101000104,102311330240430,101023101000220,100002104103221,102231104040121,111331324131300,102303101002031,100010024302421,101022400302010], + 101231210201242: [101023020301100,110200332041001,114004020010203,114000332302320,102100221341001,100040004304002,100011301000021,100100001040210,102014001441210,100013224103322], + 101040022413224: [103304001401001,101210104011110,113422210102022,100112134032123,110201021102400,100030300121000,101200001022000,110021102002003,111124004102400,114022400041320], + 1030011204000340: [102210100313100,101200210302201,100004420014012,102240210240022,101040401032021,100102001040033,101242004043300,100002324211100,112100204041010,102024124011010], + 122122101400020: [101400100302311,111040120022202,102141000230040,110412220102021,102002400430000,101001300340322,110030024202101,110100224200101,101210242120124,114000102300220], + 313030240230000: [100112011020102,101021400320301,100404200020104,100122034231240,100200424301412,114140200220101,100020201024100,110202204244021,110101000014402,100202020433110], + 231203144121112: [100101011010340,111111000014001,100021320123031,100020001011422,100014041042003,101023321000020,114033400011210,102010221132220,103100204000400,100110411200024], + 102021300100220: [111201032220400,114203000004300,100022120412132,100000321031423,110322100104010,100031314241140,114043002302200,101222121020001,102120230230000,100032021041010], + 1113100032001310: [110041240000013,110131122012210,100012044101230,111021212200430,100021214210112,112010034020230,103021004011210,103120204002200,102404121400201,100001004200022], + 1103300304010114: [100010001030230,114130004122400,103313124020100,112440104040110,102221241110321,124301340333312,102302004110200,102200401112001,100140000410200,100022001042111], + 1400412113243302: [102041100200402,110400112021140,110112121002403,110122221240302,102241230200120,110400104222012,103302024010240,100001001021311,103001330110202,101002041112004], + 1021004121004222: [100111011011011,114014112300100,114030034013101,100000044204004,100002100412200,101013004001421,103000014011004,101020224210014,114202244101041,100122310020400], + 100200442001424: [100121020402300,100240221021321,100031014310301,110322240004100,100110001041140,110044102101103,100000104014000], + 1001133102420001: [102241041000242,110012232002103,112021324020001,111310120000011,102000024011022,110201111314000,111140222113002,103213224041010,110104040120242,114200114030134], + 100042233100400: [101001040340004,101013004002011,101300011002044,101011324004222,114000322300011,100002314302420,114411312312124,102121010212140,101010404213432,102110411342400], + 231002104101322: [100130011012003,110200000104021,103013010120103,101412304021202,101000421032002,102013001130300,100103234102402,112011400201204,100320224211200,104100000023040], + 1123420200203230: [1040014000334201,100020110003100,101310000020110,102220000230020,410010200103023,1001024230020021,100212211003002,1003101100012001,110420001101321], + 1114001214104222: [102100102001001,103113201442104,1001221041001000,112001000230014,114110302341103,100130210421420,110000302200313,134100011032002,110210010000010,1023200041003410], + 1000022002104011: [101210004011003,101230044012202,110301001232000,114000012334010,114302200002200,102101320234011,110010204412200,102400204022024,114412402323000,112032200211220], + 1100012020102200: [121021010114001,122100004114112,120003410003021], + 1221011220140010: [110020301220324,103040020122332,102020100243032,102012200202303,101110404021211,103110041442122,114042014102321,112003110242131,102112222001200,100021104100310], + 1020020030002142: [110122120100022,111100424100021,110111121011004,103001020104102,110200422113400,112000000223310,100002214210110,100011200201230,111001002201034,112024144002202], + 100000244124401: [111000022202402,100430211011410,110010340040012,110014032101430,101000030321102,100000001022401,112312330200200,112020004000202,110002410410001,114221234002100], + 110002300204100: [102021024000010,102300010242330,102000401120420,114011102210402,114300100000041,102222014011300,102101430203000,100100121010022,100002134204321,102114201120000], + 130002304020112: [110102224201130,103301201402204,102401121113302,100021020124002,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010,114042014014024], + 1221031012020100: [103041220111410,101100202130022,111220032224301,103400104001342,111001212200200,100000331201012,111210214440200], + 130100014041020: [111120002211010,103122000100403,102023120241131,110014300041302,104103101240204,114241000002004,110020110400102,110321001330010,114220200214400,100400214321121], + 201041133020121: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101004411032102,101000020302400,102021014012210,112400000200011,111101400011011], + 1004010020204300: [102214204030204,101300000310011,103122001440001,111024044110202,112402014024010,101200100300130,100103000420004,112010040224120,101110104203101,102030214011002], + 1110102011003114: [110400000002213,101031104002100,101101230331040,114132100210100,100400032200141], + 221120302032122: [111240220002100,110030344201413,101001014001021,110100001014311,102304244110431,100011000201002,100103224301304,114000100020200,102100322001021,102102100231000], + 1022143001400200: [101212101023221,100024321221031,102120244001000,100002411024300,110312202000104,102022201132402,102411234021314,100110304233020,110020000020113,112040002004021], + 1022123131322310: [100002241040110,100021301212103,112222002030000,100020424302014,102110022001113,110001412102223,101013301021213,110420220002002,100124300031103,420244021031013], + 1121203011214032: [114022444101022,102201311121101,114100044004101,114201044032410,102141202001332,110002302200340,103000401422033,110041002001221,102120010204040,112021010230212], + 130103011103322: [101442104021041,102011030231024,100224030002340,101020004010000,102010320220302,100102011200030,101000010310021,101214001014410,114101124001020,101424410302410], + 1100213030400403: [110100041200400,111311120014011,100123011004113,100420001002101,103102104000031,110201134243240,111100044100001,101004010323441,102000024000002,102012014000133], + 1000403200032102: [110111222040014,102200004120034,102004204000422,102141002000040,103010000120000,102440234021012,110000011100204,103442014000100,102100021410210,100441021002110], + 1124020022021011: [101004201002001,103112010213010,102121001410120,112200410200142,101212000301013,111400002102112,100034100124302,111112214101000,1320102201231021,100000040413022], + 1000021310011100: [101020414010211,101120204002140,101142004000232,101410021100102,100110004101000,100040020201004,102000034000000,112400200201000,112002112002220,100012304300004], + 124441120130024: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,112003100241220,102204304000304,100301104104210], + 122111100000201: [110000101304203,110040020001022,101104020300301,110010022003021,100401241014100,102101004000011,101401001010021,110033002000020,101200200300020,100432200030004], + 1430131234111200: [103132304003332,112040202003030], + 1020100000000012: [101020000300112,100002020410020,101000001111200,102012220241003,111120214102000,100402120030401,102113200210140,103130020213032,101430211012120,102323204113210], + 1104124230012120: [102010221411043,101020004011302,114212100023341,111200112221320,102011200242200,102300021103201,114244100003024,102410101112322,102121041340000,110010140011021], + 300202110012044: [100032041021210,110004301222000,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,110104002010100,100030024303023,102042204000300], + 120013042024010: [101101100330320,100000100000432,100400320020220,111220100000032,100121324230300,100121111000220,100113434000102,100020310023030,100033320410000,103001424002424], + 131024402202004: [102003224011000,101113140334114,100101400000132,100030310422011,103041020101400,111300402200003,102111000310213,114100422320440,110022410120230,103010101241110], + 1101322221340422: [111011030004021,101104020300301,100012101223021,101220330300003,110132000024420,100224204323201,102021301441201,103103144000200,101003131002404,100024040122220], + 110221001211044: [110201400400024,112002242001002,102112220202010,102214104010210,110042042120021,112010120231202,101011101032340,101013411000000,102100001400004,102310111000301], + 300020114102200: [103043210122022,110032020020001,110203300000121,110011244200121,101011241140401,110213440401023,101230034200024,102012001321001,100400302200312,100104221000433], + 1402201110310012: [101041301000320,100210104322421,102401001110000,100022340021012,102002001133122,100204011000221,100040020103014,100000201032240,110240010100402,102100220230201], + 303240400001141: [102003214013022,103342021400021,100102004300104,114212100023341,103004011400313,102010221443000,102300021103201,100010411023243,100124200020033,100033300410212], + 1120132242032222: [100020310412200,111014124400030,110000200110230,101021344000412,101100101111040,111102200011210,110240312020042,100111424230014,111222400002132,101003011030002], + 1000322100010040: [110200400000020,100324140141402,110203131211112,110021100023210,110000112100402,100002204340200,114103412201420,110000410001034,111140000000000,103102224034002], + 122042200102340: [114112124140000,100100220423210,110044220021000,100231020112302,110122400401032,114310000004320,102440020200020,102001020222140,103122411441211,114102004002022], + 111421010244441: [110002320424340,102031100200300,114010024010210,101040004010012,102023032000000,103000204003200,110020402004210,112300020200242,102120124004021,100021044343014], + 1403410211104240: [102102031320011,100041140201301,103021004022022,102140041342420,102140021410400,103011100120201,100000120202410,102300004110122,102202334040220,101001100320224], + 1020213431200213: [114000222211300,112023102003010,102130040230200,102000002041020,100320021000000,103013024041024,114021010022202,114030034013200,102303214031001,100001010101032], + 1214231104032203: [100012110101000,110401410402040,100020211001002,112012000223204,102311330240430,110011222202100,100201424220320,100002104103221,100010024302421,100200204102022], + 243313130032000: [101021134011012,110332202020000,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,102224410201003,110030021010001,110030410040101], + 1002010010013212: [111121100010021,110310034424102,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241], + 102232040101202: [112210010201431,103100024002220,103303000112122,112004012000011,114003100020203,100320104321221,104210021140401,100112101024230,102042030211303,101000400301224], + 1002211034233112: [114101404004011,100004414100021,102101101140040,102000021444112,103100214001400,102121001343030,112410212020002,102132210233141,101012224211030,102102002004104], + 1420024300031410: [110241142024233,101001421031220,112300421134001,112220322030220,110210301200101,102033124000111,111000034110311,103021004014220,102200001002100,100014100124121], + 1023403020240010: [100024210002210,100000020121140,103000200111020,110241020002103,102023021100010,101424100304000,100010304340120,110020010120340,114004000022042,103003444010014], + 100123012000102: [103000200111020,100100100412204,101424100304000,114004000022042,103003444010014,102002121104344,100322124212214,103121120114230,100012241220110,101034340314102], + 100021400032130: [101110044200100,110414300030001,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,114142044120310,110220410000040,100012000022003], + 101010003000020: [102000004010002,110400242014340,110000034210002,100101404302312,103020210102422,100012034201041,112431004011111,100200120302214,114202104110042,101040044003014], + 1420103002032434: [102100201440001,110400011311001,103300120141130,102110004000221,111144202220301,114224204100310,101434031010012,102304011004310,103101410212231,102100144001112], + 1130220001400230: [100042304102210,112202000411103,101040100302002,100013030100002,100310034310200,114003022300020,110124041140000,100010044101002,102111210230204,100111421040321], + 1001201111101110: [102022000210010,111201240001232,100020301020413,110421202220142,100204314320400,104121410021020,100220004311122,101230130041001,101042034041342,110404034223424], + 1122002030302200: [110000001324024,101020000300112,103100314001030,101020111001331,100002020410020,101000001111200,114010040023411,102300404024300,102110001342011,111120214102000], + 101134001344323: [100020244100302,100002200412020,100102000423142,102000301100100,114410012310230,101320310311403,102024011413201,102122421340210,114001042203020,102010100203212], + 322032241412310: [102301004011202,102000201100400,102031211121031,110034120023130,100110010410230,112121040200102,103000101240211,110022400001341,102301414024204,100134044003303], + 144043021400012: [102101204000010,114230230000123,104121001242101,100014110201012,102200310201220,110300014422013,110020404412324,110040110420020,114444304140203,103100000100134], + 130343401020033: [100223214121011,112024121130304,110004022000404,103020210101200,110010012102144,100413124100101,101020200301303,112000111120040,100402300022230,112203414012111], + 104002321020022: [102010021131043], + 122033311022040: [101100120330110,100000000014401,112212220223012,110243320110010,102100030222104,100102000002202,112012124000040,102032120223210,100000000001340,114000404011040], + 124004232010012: [101042014003022,1300001101120141,110020000010044,110111044402003,1200023010410200,1112010004112414,111043124112002,110021011310043,112032041113001,1010030200302021], + 1024030130141101: [114311204002010,110004221040341,103200204031212,102313114114000,114004102201202,100000101001431,101010014001032,102340140222011,101412020301000,101043024000300], + 122041103100242: [112132400200233,101032041032203,100021304310000,100400022201011,114212040212001,101223021024002,112400204042130,102112044000344,100302200420024,103030421244130], + 1120031002110024: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201], + 300303032042333: [103111001422000,111244302220204,100042100102211,100300041001121,102110030200120,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 1104033032101002: [112004202302034,103300004021200,102122214131011,100023031000024,103230134011412,102311011000200,102021021101204,100231020102202,102122032000420,103014004012401], + 222004402041021: [112004001122300,101301124222004,114010204101202,100041234101100,112204220200011,100230040410200,103210004031201,111231012242301,114114100214000,101104320012044], + 100013220410202: [112232002034010,132002014101100,114002300020212,102112322004011,110324012020120,101022011002422,104122404043221,114002220042002,114422012324204,103342221403240], + 212124202201001: [100003121032014,103222004002001,100003421042112,114240004110231,102024021130010,101244001000204,100030024102010,112012010230002], + 1144100011030000: [112032040234431,101020004000000,101004310324302,100120040400011,100214044220201,100124021201021,100200044121414,100200111001432,101240404044020,100133001204314], + 110301030033042: [110220301202400,110210024220020,100401424300314,103101001422002,100040120000031,102002104011244,114200142324000,102100041413022,111140122114101,100012000101100], + 133200224411100: [110000204210130,100001130001003,103102104000031,110201134243240,100100100422103,110020134410001,111100044100001,102204004042041,102101002004300,102012014000133], + 1003001020044132: [111120002211010,102023120241131,104103101240204,110020110400102,110110414402000,114220200214400,102331024110432,101100001100404,101014024010031,102010001104000], + 1022000222203201: [103120031442112,100021001020000,100004121002021,111120022212034,100001244311023,100003000000440,102221021000100,112000042000013,110010002103002,100241214020120], + 1414221100113001: [103230004000142,102011114000042,114110024003013,114142102344042,114114040001042,100000030003111,103002004001434,114200000001000,114031122210003,110000242003130], + 1014412210100000: [100310014310311,100400000031312,103230004000142,100400010013000,102011114000042,114110024003013,114142102344042,114114040001042,100000030003111,103002004001434], + 1024200410304000: [114031102200100,110003010010401,102330030243120,102100100210033,234131201024402,100002200014412,100000240122202,110040311213342,110010102234002,102003144000043], + 1402021002012002: [110102224201130,103301201402204,102401121113302,100021020124002,111201210000103,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010], + 122042320003241: [110020402002000,102042221101230,101033124000402,103310421404111,103000020120303,100123000422310,100112044024030,114100042311200,102201100240444,100103100414402], + 1140012423030130: [102214011111041,100002401040201,100212304243333,102300220241031,102302424110100,110000014211000,100121210402002,102312200240012,102212004030221,111120014400422], + 1422001011004402: [102110202001010,102100020211003,100043200102020,103332044032320,111222000012010,102101220231020,103321204022210,100000004100411,114022344022303,102302434113010], + 1122030210010210: [100400000020210,114011300040140,110240032042222,110200022124020,102031001103304,100024110002203,100020134102010,112100222013224,111400204442102,110010102130001], + 132000024114234: [100002230102232,112140422012414,114110012310040,101000200310040,402023203200200,422202004012314,1004020103113032,111000000001024,1320021222410120,110230020421020], + 100210001413201: [100104341010424,103142210104020,112203001103411,100212024121000,100001001033200,100010001032200,100221110101420,102441030231300,100003220100000,114121024121404], + 110010232003040: [111320012221132,102302144110440,100002320411400,114021002331014,100041004200042,100032024202240,102144002001240,102020224000000,101242101020042,102103021340120], + 100010010010300: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 200110030001204: [114010034012014,103200031411100,100010004300024,110122400401032,114310000004320,100000324340102,114443200000122,102440020200020,114444124143021,114131032312020], + 1430122020302442: [111000024110140,102230100201001,110000401221440,102410104040240,100020004210021,100003401002021,100001040020122,110104101220110,110112211000311,100000411002140], + 102411221020002: [104100111240003,100010101020412,102203101113311,102100200221304,101011024001101,110142010120100,100103024102040,100122101040003,102100001341200,101421011104010], + 100240334240044: [112000431120410,100031034311401,102304104110001,102000200200301,100104211044110,110200101200402,114241222321321,114013124030022,114104200220022,100021221021201], + 1101433000021100: [101041301000320,100210104322421,110100001200142,100020001224324,100022340021012,110240010100402,100000021020414,102100220230201,102203041122004,102043024002020], + 1010203120443101: [101001044012300,100112231020002,102023200221200,102240220230204], + 1420020300020000: [103232004020011,100410300433104,102303214113000,102221130201324,101020130321310], + 103044202432100: [112133102012033,110202041102300,102142120202202], + 1040032000002410: [100321004011041,110002342100014,111101042244210,110124002040002,103110314000100,100000001224221,110023410122402,114302200014241,111204200002001,100002300411002], + 1000342000030110: [100220100110400,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,114000222213021,114102330210021,100000020401302,102103214000210], + 100222040400444: [111000010041300,112000002003301,100200221000243,102400044023410,110423034242000,111204000003031,100012004110024,102142000210040,102144241343120,110411422022030], + 210200010400010: [101021102402231,101001100302312], + 1013120130223202: [100030231000344,112311011101001,110100124402042,102120404134413,101100200330040,101003201002421,110040212000010,100100221040404,110211202030440,114440012312003], + 222310134112122: [110212012114431,110202204430020,114002020044120,100021004302202,102103320232241,114102010220042,102021301441201,110000202100340,110201124211431,104103102103201], + 1101112002114001: [102101320220430,110100010000102,111312000000403,110101001304100,102320014112013,102312010211010,100111120012323,100014044200222,101001000321032,100023100104410], + 1031201131004202: [100400414321103,110302030412400,102132204131302,110020034203040,101420300301103,101010231112144,111000100003022,100113020400211,100022030414220,101210021032304], + 110321100102101: [114110202312240,112201230410110,101000321001401,100001404130013,110202022120313,114100214120211,112132301100120,110201240003232,112122000202103,102421414021014], + 101423010000213: [102400100230000,101100300302102,114120420223002,102302020212101,100030004104210,103030201434002,110232110004010,103021201430000,101002320322420,102220021110200], + 1100402002222000: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 100022012023013: [102342214020012,100120221224010,112143020203014,103001300121022,102202100204301,102411200203000,114100400000241,111300004130403,110100000120100,111010002200020], + 1104024211002303: [112230122030224,100110130000123,102030000221134,100210304340400,102201032021231,100010020003310,101042204010110,111200332222140,111201314412204,102000200204141], + 112131303004122: [100422314300200,101403014020203,111311120014011,100123011004113,100420001002101,101134224001001,102321234111310,101004010323441,102000024000002,111122222240232], + 1021200024202410: [110011414240022,112004202302034,102100104000040,100010044300003,114130210231020,112120224040040,103301410110110,112114324040000,102124031023100,100204104320231], + 111120042002312: [100104341010424,100004004102410,101104001101000,103142210104020,114400240003003,112203001103411,101022001002030,102100200211012,101224020301202,114000212331142], + 1142344121012040: [100100021043102,100010141222300,114302004001202,100100000011011,101240311010402,110020001210223,112131000201420,110230032120002,103010100110112,111014030043044], + 1121040011142132: [101220014012231,114422004110130,112210132031001,114021114023402,100210004343102,103422430124013,101000140310132,100001311234020,114242312322020,102021221120401], + 1020301140222010: [103220120212134,114200014001032,100344101004202,101040004222021,100001214210212,102020201413321,102112100224122,110041200410002,114314024030222,100023020410230], + 102220031033001: [102314220240000,110231040000334,114210034112304,100014201221340,100004000004212,110213022123233,110313204431110,100230104321104,110211042120021,100042100003232], + 1110123401200203: [100041000411231,102140040210040,114110030002020,102010031444104,114103200002100,102410010201202,102202244040132,103303001400240,102442004024220,101224231020422], + 1102132032002100: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,102010421413322,102114020210302,110240301111040,102113131343200], + 1012100200222121: [100010014100021,110403241001010,100101334233020,103120110111300,103202420103102,103004330103000,102002424001223], + 120211230201140: [100120001044242,102133311142032,114221124000010,110000104200031,111034114110001,113140302201200,114012020010302,110130222010001,103000101411020,114321442301040], + 1020201011020001: [100012320001320,102000331120104,100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 122221101003012: [110310422104304,110010010001022,103100214000113,100002421021214,114300212300001,100223234100201,102020411100001,101130034000022,100120004230130,114000214011014], + 1440230020230323: [102030000223410,111101312240400,100231124320130,114000010012243,100301314313133,101332011001000,103310401401023,101300130344001,114031020030012,102122024020030], + 113013042013024: [100441204302021,100011320001003,100000221020200,100200000030010,100200010431000,100003421040000,101332004231001,103300004030100,101111100022114,110210010004301], + 222010301434313: [103034031400131,114002114012041,103322000112244,111123412214002,114200220003001,100043121024120,100001011022100,100240110002411,103410000104330,100104104302020], + 1201110020024112: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,112004021121002], + 120021102312000: [112000042030034,111200002221022,120201012121032,103200021401030,230222010240012,112102121020220,130300100333301,100020120024010,100202400002411,101002100301011], + 120102001000112: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1011230100343010: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1122201201023130: [111101034100200,111131304104201,114003410040220,114021004101032,101024200342211,110332124420001,111010332204141,100000204310000,114104200000400,100011000410042], + 211200224203241: [101001400301113,103101024004200,103024000103302,103300021402104,102102024000001,102202004011044,101012044004042,102020304000321,100021201020001,100112240020023], + 1141200403200024: [102302144110440,111130224102101,114201000004122,100143034304100,102201024041200,101223301020130,100041004200042,102322020212020,102144002001240,114002134022331], + 1013120020120421: [101020000323002,101041204000012,112112014020004,110000330024022,100221020410001,114314004030042,114311114034111,112042001120122,100111001020220,110321132002134], + 300010410000000: [103000011402201,110301232000100,100000244300040,114004310024404,110210134244100,102102032001300,102121041441000,111430412213000,114102022200000,110233010002020], + 100130043300011: [114042304100001,101211240301300,102210224012020,114313302321311,102212300202110,112101020200032,112002002030004,100024414212001,114203134112000,102000000221441], + 214021300010204: [110022004410312,110400011243102,114100120223101,102000401442010,111020004400234,321114010100340,100121041041101,102322101000200,101020041000102,1042012320010021], + 1110401002041240: [101021014002020,100443210030204,112130004043234,100220304100400,102102004000001,102400121110000,100024204204210,110013032003011,101240104011041,110000031021411], + 1102230420104200: [103132001440132,100021231022220,111220244103011,112412000201003,114031442303000,101003401032000,114310324001300,100000120100310,100312104100112,101201301012401], + 110131133221013: [100020201020032,103002221400000,103001010101001,111020142144200,101000231002001,101000211031021,102020001021010,111300022201241,101313201003110,110020001210102], + 121113311220421: [110400000002213,101031104002100,114132100210100], + 1040142200301340: [114000302331201,110021022103102], + 202400402100130: [1342140400001210,1203210010100211,400114001102410,111011220004001,431232000323104,100221110031000,1040100003200241], + 1110030011122340: [110033000022043,104412212102010,100432200033101,101230004040022,101021020324310,103140021211010,110132020031210,100020140121034,102340211000200,114420230000240], + 1002012421414222: [100111011011011,100030040101021,114310102300021,102400124020001,100102224234101,102010321411140,102111131410342,100031120413224,101304004220404,114104214003030], + 122034000041214: [103201411402002,110022000023010,114020302300110,111002100021022,102302120210122,114100032320203,100400300013000,112041210224114,101012000320441,114124414000000], + 100042021311022: [102231130213210,114113104123200,100023024211011,101210210300031,110002021121023,102300040221403,102201100200430,100114021040000,114121300224141,102301100241002], + 100314002002312: [110202012100020,110013202003320,101031241000010,102303010241010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310], + 1101000011321130: [101021134011012,110332202020000,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,102224410201003,110030410040101,101300401002320], + 1002334323010000: [110202012100020,102303010241010,102120231343224,111342020011220,100314114322101,102230130203001,103100034001310,102021401324232,111222102243400,101004410311232], + 1020120110201301: [112413224040101,100220100110400,101200031020230,101024001034211,114001012300002,102121100232012,114102330210021,102140320310003,111001100020413,112203101100310], + 1144002300012000: [112213000200301,100003224334120,100404224300012,110204130004030,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440,102410434000220], + 130044301014200: [111102420023101,102102244000330,102001004012322,100004001041301,102222131120032,100203101000022,110021130004103,101000021021110,101000000320000,100014011024000], + 102010240442002: [100003204214320,110040331214411,102012120213222,110011042200200,101014214010014,110400014240224,110020120140140,101000221030024,112040024013124,103302200144000], + 1000320022202241: [110202004211120,110341010044330,102031144010424,111021030042411,100302420120212,111212114131222,102140001441301,111012030022123,110031424214112,100001230120013], + 114000410030404: [100023114341301,111000020010011,110101302141002,101000101000440,110114102004120,103212121402022,103330410111310,110201001200101,100102014001304,102022000202001], + 322122213234114: [114003100030002,100110221221202,100122004230101,110042240021022,102101441123100,102032341100040,111004002230102,103012024012300,103030020110002,102234031103000], + 112231010320133: [100142104100403,103222004002001,102024021130010,103200224020100,103013024002104,112012010230002], + 100231001000204: [110220100000102,114042102330002,102102011414242,100041004100221,100014001041000,102310030240210,110000010033022,102210000201040,110110122210000,102200400234000], + 110000010300102: [103212014020132,102102030214401,102021420233130,111130410020021,101022000302211,101232020300432,101132000302333,114020024010021,100044004210004,114020204024101], + 240003001014401: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 1022032102241412: [100002100100320,102024401440202,103200210100110,103220301400000,100023014340130,102124231401212,114202024111304,111102222110021,100210000430203,110200102020212], + 1012021310200010: [102010040210212,111120432100010,102012201103000,113223002430413,140230300211231,103010140000114,111113002242010,103122200123301,114021034100241,114231004000010], + 223224002000100: [401000241000000,113330300000122,404402020103300,112140004002100,100120034020032], + 120000022033114: [101200400041032,100001034102143,103001224014142,101201000311021,110110211200222,100104200411203,111112034400031,102042031440222,101012021030223,102304000241010], + 1140002213020001: [100231114320100,100001000002210,100400320033201,110011402100202,101210300302302,110121112010004,102020131413423,100000220011133,114013012240011,100010104312120], + 1010211412010211: [103104320211111,102000101120401,101031001010041,100300021202011,110400314221140,211111010203024,100020324210410,101400100300002,1040001441000231,100122401224222], + 1000322321013021: [100003121032014,103222004002001,100003421042112,114240004110231,102024021130010,100030024102010,112012010230002], + 100321420022020: [102113101341130,103202130130000,101222121020022,112431024044114,103134314000113,100130014030430,112300221134030,100000004230023,112024204000314,103010044002100], + 1002220201011202: [103000104004220,101002244004011,101442024042013,101010340331320,111000024410303,103031100142002,100241131003241,100201401010000,110000040420100,101100424003101], + 1214220004140230: [103000004012003,112303041103203,102020231440400,102144200210031,114030304122412,102121104130242,100112011040312,101013200321014,111000220020441,102102011400201], + 1020323442100401: [100111011011011,100030040101021,114310102300021,102400124020001,100102224234101,102010321411140,102111131410342,100031120413224,101304004220404,114104214003030], + 1002000144000023: [114001000020102,101020040300010,100213001000212,100040201012040,100002004212420,102121014002022,100141404233000,114100222310230,114131002342130,110002022003101], + 1000210320000044: [114201232330041,142321203003111,103200344020420,401210002011000,404010201000410,1014200301032410,1103013112041021,102030001201100,110200024240110,110431004224201], + 120001112030000: [100004221034100,100200200412034,101012114000304,102232024002401,101102120301114,102202141120400,103400014000012,110120224221100,110000041322002,103444024001001], + 1121010201212010: [101040130301020,110044100443224,100000101223200,100402322200000,102211400212122,111404204423311,111132404421001,100114110003220,101203040300402,112400414021201], + 143100243214031: [114404010003320,100013200412401,114030412303102,102200320200003,100430000030122,114300104032040,103201101402422,101040004210301,100100101040120,100014011034001], + 1003020004044110: [102430231400211,110112012140003,112110220202020,102004021102101,112002012030102,112020021110112,102302004020001,112120302010202,100020010000104,112120020220421], + 101112300222332: [110021220021121,100002120412400,103322424033024,100010130140100,102103201412111,100001214302342,102233204000002,112011011132021,101030240322011,112312011103030], + 130001301114222: [112324002020202,100120221021011,111242212222022,102022411100012,100020100100300,101401140300101,101242000300000,100030124210101,103220200100320,101030004004303], + 112000420112230: [110020301220324,100041000010302,102020100243032,100031001020040,101110404021211,114210400000112,114042014102321,102112222001200,100021104100310,111321314133000], + 100001010030400: [110030230041304,100043200201202,110102110122210,100140001040042,102111214004020,103212144000440,101422120334233,114243122320133,112023001130021,101000301004122], + 1220300111022300: [102102000213403,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,101002424214013,100012101022110,100400222200110,114011112202020], + 224001302002012: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,100422211004214,102100000210002,104130020011020,101114422122000,102001314013400], + 1141414000020410: [101200030300000,103010304002201,100410001010411], + 1143030222112134: [114113344123222,112242202031200,112144012011101,111410302212101,100013104300114], + 103200312402020: [102331021100100,103223014033210,110011202100142,102123411402002,101042201030422,100410100030221,100002001211230,114410102321111,114012002212100,114203110001031], + 1003000211211212: [110024404201041,103014224004000], + 1012100440240201: [111121100010021,110310034424102,114400202314210,103022110142241,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202], + 1042100000041030: [102001404012100,102340120222440,102122214131011,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,100020004101012], + 1000020100003001: [114022300022421,114401200000003,100241001003002,111310004122000,101221000312044,100400240013333,102030300224002,111001314111000,103100040210040,100210001002200], + 130301214001303: [100321004011041,110002342100014,111110200020323,103110314000100,100000001224221,110023410122402,100032134341034,114203104001000,114302200014241,111013102200342], + 221222030204220: [102103001411402,111030244400003,114020012300033,112110010202002,102011220220120,110202004242011,101032121112212,102210014033004,114000020032222,101241200304401], + 1003414034014211: [102000001410411,100022404242424,102111021341042,114102210002021,102013300200042,102004030201320,101432221011020,102240022004402,100020310101012,102113301342231], + 121040403014300: [102020000204032,110000000003200,111401200000040,111202004100121,103230104003200,101041204222101,100024024211001,114031000012100,102110001342114,100222220001202], + 1042212020201342: [111121100010021,110310034424102,100100010422000,102101211410144,100024201030210,102010111102410,101000110322242,110100001014311,102404110230202,110043400012000], + 1002043000111221: [110024010440102,100033410104422,101012040320004,102100410211031,110142322000202,100100444300402,102021214001120,114011204102241,100023311224032,100000104310040], + 1401033001042023: [100242141004122,102024240221040,100004004102002,100011114300334,112020201120340,102303004110022,100110201042101,110134201140010,112101044000202,100040024340013], + 1404044002301014: [103221400100121,104101010010200,101104234001200,114103100220201,114002014101011,100004202211303,100321000110200,110021110043033,100011014302010,110241101310132], + 1013001000022111: [102132400232131,100114234102203,114001232300102,114023224010002,102323324112410,114400112311040,100422140030210,103000041402003,100010104210010,102000141133020], + 1000021040102102: [111101010010203,110110212010011,103120101441202,110011000022102,101002121003112,100004104210221,102202410240103,400014404414011,100000010101402,102010414013103], + 142030010033000: [100030024303023,110303401230040,110012000141104,140300020110000,102001021132022,100003301030120,103044004034040,101020230301220,102210241120001,102412140201410], + 200242400033020: [112224202021421,112423034041001,111210122203100,112040411110201,111123014400021,112000121132000,103120300211022,114142144124302,100002001020040,101031402400002], + 321330122010041: [100430021001320,204020131034103,103214301421201,1000001214032041,102100204001030,100102240020100,102210000240404,114320124031023,114220020213314,103141111442241], + 300010212004000: [100203321001221,112111040230130,103010041241404,110333010011034,110423301004320,101110140302324,110401321340320,100004141034320,100220200430102,101010104002400], + 1000142104014030: [102100420231433,103114001444241,100020214240402,111324002200000,102013110232000,110014032200004,100001214214401,1113004122042140,114201400000103,103110204004240], + 131331401002014: [102000020223013,102110201342300,114300204032002,112121032014014,102310111001210,100020241043022,102100121341102,102001231444003,114100304142330,102333014110114], + 1011001211030222: [114200212322001,100401210020002,110001440041003,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101], + 230000220330420: [111004302114011,100010410101220,114400012310301,102004201410402,101201440002012,102040031411210,102014004000221,102002240210000,112020210233321,133001230020010], + 100024421010021: [101421214042002,111430442210202,103420144004301,100002231231033,101101244201222,103304110111122,102103114022230,101424240300300,101130021101100,111042002202240], + 110012023000010: [100034100023401,100320221002000,114203022320020,110140042002031,100140214101212,110120021300003,102220202001002,111200104424220,110141041304241,110012000002021], + 1020114123004020: [110020402002000,102042221101230,103310421404111,102101134004010,103000020120303,100112044024030,103240100102101,114100042311200,101010001000400,102201100240444], + 114032420000111: [102000201131020,1010120030012200,102123332000002,100020140120213,114020012211102,102020034002300,100000104302202,112412000201400,100032204312024,102001114000000], + 1141010133004121: [114042032210200,114404220000142,101100214003002,102410420230111,100004121032030,100404342201400,114440210000102,100030211200100,100000120412021,100030101041442], + 1032143310002000: [111104102242110,100002200410230,102110201342300,100044010200300,102000021444112,100003010413400,103334120114003,100130204300200,114032124013234,110112131124012], + 133103224230102: [101204334232020,112012002303014,100004340004131,100210421004302,100200411000410,102003101130231,102240200214023,111021220021002,100101200410420,102101024002102], + 122410022210000: [101221422120021,103001024002110,100231114320100,100001000002210,100400320033201,110011402100202,100004130002301,101210300302302,110100012120201,102020131413423], + 1011000200000200: [110141010001110,104122011242020,110213401202210,111103310001234,102312000240002,102012104010301,100004004303030,102001424000000,100011011232320,110011200010103], + 1113013032201011: [101300000310241,110002010002100,110001302002012,100010204103214,114104120220001,112014312310014,102004311130001,101214301020044,112004140233122,100003020003040], + 1130201301041132: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1021000000430123: [110014002132100,104122202100000,102200210200442,103100304000131,110011212102422,100030100104111,100312021000201,102004010202104,100400220002400,114100024120001], + 1103000200420000: [114200402332011,100020101031131,102101001342004,102142221401140,114004222211104,102114204020220,101201020300003,103012201401210,101211111020000,102442100201100], + 303312302243004: [112111104020400], + 114001040100020: [101230040301234,102104231340013,110033032100000,110011002100114,100400432200321,103303041402240,102331010240100,100020200012311,114023102300012,114140144122230], + 300100010031104: [100000210410212,100202021212012,102000032003002,104003410010031,100100000012334,110020030011011,103020201401104], + 143210140020003: [101212114014000,100043124212321,111103004400024,110003032002202,101403011112301,101141301110112,100010314310021,101111211112300,114130224000034,100034131030102], + 1010221200010002: [110441140102024,101004120224442,100413311002132,100320421001431,110210301200101,111131102210013,110400241240242,101001024210000,102210101121104,110023102103200], + 114201010100014: [114300402301101,103020304000320,100100104300012], + 1022002042012111: [100100121041013,101401211012010,114000010041320,114120204003101,101020230322012,101124031100013,112004302030010,102100001400332,111100124100113,102410234040000], + 1004441004020034: [110233012120121,100000241030333,100020011020010,101000204002210,110112210000002,111002042204201,100001204130442,102100321410122,114024004020023,1014400221004004], + 1004220001134022: [103201411402002,110022000023010,112000124022430,114020302300110,111002100021022,102302120210122,114100032320203,100400300013000,112041210224114,101012000320441], + 1040310103220120: [101020000320011,110400014223001,102040404010111,112040222311040,100100101011200,102204404111433,100420320030100,114040214101433,100312121000310,101022220322100], + 131301024004202: [110200002031302,102002020243020,102040021121030,100000204130001,102041130200101,100412441010422,101010200312020,101040204210210,102300310220121,110000324412304], + 120000042402110: [103011200100000,100111011040002,111020400040100,100302000140222,102122340200200,114000214021240,101311111000100,100040341021101,111123212212000,102400220203010], + 1001022101024120: [100001220400300,102212001103340,100002334202400,101222401020120,114010202211102,100023004304344,110220242131013,102102010214104,110211030000131,102222312020011], + 100004120201310: [101041310301004,101000200340220,110021122100000,110000000143124,110100042013221,102121304003112,114431224113420,114033012202420,111211002241330,102420001400320], + 1240203003021100: [102001201440040,100212000030034,102300001100112,100121010400103,100121111001223,110201030101402,114431000001000,110040401300010,111311244120030,110022010034100], + 1104211101100020: [102242320200020,110030021222310,114010104030002,102010011011210,101041020321002,102013131134030,103312010110013,102004004010011,114101042313041,122112024242100], + 1020200410222000: [104100002100221,102000321102310,112000044002102,102134044134410,101202001022000,111300220000230,114110032343001,100110101040020,114012222301110,431300131230002], + 102001004014022: [114111140220220,112000204001011,114004100011010,114302010000013,100100124003241,100002310120001,110220022111241,100022024100312,100204001000301,101001134210404], + 100000200041112: [111100424100021,110111121011004,103001020104102,100002214210110,111001002201034,112024144002202,114212434100312,100013010001120,102200101123440,110302201334022], + 1001124200300113: [101133001104410,114202424001100,114113004120221,1100000411441420,1002203010011112,101211011012300,100010300121240,1012004033012200,402001100011120,100020321030202], + 222013004140110: [100113220020101,114031000022030,102014002000401,103103241421322,100300211000020,102104304023201,100002224244002,114310200002400,103211220100010,101202201021310], + 1104003203100220: [110021104200001,100302141003012,100000301221024,114100200002120,110310020040401,110200010014000,110202204430020,104120221240413,100002024303323,110310002221402], + 1420304010034240: [111121210031101,100013100100014,100000001020000,102000404002002,100120234300003,100121331044301,102100014000422,100101010100200,100031011042040,101403014021204], + 1022002220020032: [101130200003423,110002121200000,110300412020442,100000000001140], + 212002430430101: [102121221343020,112104424022201,1302314034023041,1001010233020100,112012200120020,111041134000211,1124042220104011,133010044232231,110000400001130,103201021200030], + 122030001322004: [100301224310100,103002104012101,114021000012031,100012324202240,110003410100312,122000430101030,114000022300301,100311000141022,114000000021100,114210202322020], + 1011014042130011: [110001022000001,110023342101220,110002012000400,110020422131120,100001000100000,110202222043022,110313312021120,102223400201104,100220214333200,110330234422000], + 1432031240003440: [100020201020032,101410211021400,100004214100234,103000011400001,102104241412223,101400200303132,103001010101001,110220000113011,103100000210002,111030014120004], + 310412123100110: [110301442021010,110001332103022,112041000220020,111304202202230,111300000001323,110000002001040,100440441010002,110040310040200,104020020001030,114003004100001], + 1024120321201003: [112000112000031,100142104100403,102123214020000,114202204113222,102022124012030,100143220410040,112024000213011,100103030001121,111000004400110], + 1001002001400001: [114132202312102,100021110200330,110322110010000,103214104034020,100400000013010,102142020212132,110222201200000,110302400012002,100103004000123,101230234011000], + 1201030211402330: [114030110041300,102300001002144,103001000142003,103132424000410,112013102004422,100400220013232,110010002000100], + 1000022110011002: [111102004100101,103122020213112,102140014001101,102000104012232,102021100220101,114000040010421,112042110220004,100000214240410,100433201004014,114122134140002], + 1003001200211022: [100020004313034,101400120320033,110430030000041,102140411342420,103243024040441,110021014412440,102020004000301,114114204001401,101042214000121,102000121102220], + 1021100244301333: [103110411420200,1344004001200102,100110034102102,1300011101120023,203001440023021,111131400032010,203343130112210,100402202200024,1300001321030230,112223432021101], + 1022232402221001: [102402024000034,103012024004312,102214020242110,114102224104002,114422404110312,101140320330114,101010010300020,102403144000120,112120020230024,100000204100304], + 100321434112020: [110102042010220,101020124000413,111210000001101,114013400011030,103004104010210,101220024041000,102010300201414,100202200003011,101413004041201,102334000243030], + 1104000032141013: [110301442021010,110001332103022,100104004300024,112041000220020,111304202202230,110000002001040,100440441010002,110040310040200,100430440030020,100100124301211], + 1211000030020040: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1031120104241002: [102202204040010,103333040110114,101022200343023,102000000221222,102011014001111,102331201001140,102101001342004,102103001414002,102022011101012,103002014010030], + 224210042002020: [114301120000030,112004000214201,102221002020200,100020224101141,100232034333120,102001101132230,100010320201332,110004224210020,100340111000001,102302011000130], + 212301402401002: [101001131032132,110340014422102,101022400300001,102140004000100,103202130122102,100021000010213,100231004220242,112430010114123,130020100202200,120002101133400], + 224222010130400: [110220220012422,103003311430003,112201001104112,100340000142320,110040014203342,110042132003320,114121204120122,100401200033020,100222004220000,110000104410123], + 1142200300020404: [112224111100141,101221414041100,100032424312011,100210301002021,101021244012200,103040000000212,103000001410123,100100040402102,111240300002140,101300004211000], + 1001010002401400: [110104112010103,111102004100101,102202414041044,102140014001101,102000104012232,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231], + 1110100120011221: [101003201002421,102034004000133,100102240002022,102113000210043,101010011034220,100421111011000,111232024102030,111020034403330,110001212034012,114020004022002], + 1001301100002011: [110201201211024,110202000000310,100422314300200,102141410230020,110020001224021,101110020013040,101012410301010,103120001400003,110003302000101,111122222240232], + 201000040000103: [104130242103012,110100221223104,102000101132400,102412101112121,112023140212112,102110244000130,114000312301300,100102304302000,102400231404200,111113022242200], + 142120402221003: [101223214040000,100304031003410,100202100012203,110130001001030,100022030420202,100403300010004,100402420012143,103000304001231,101014010320000,100200001000020], + 1000201021430222: [102242201000222,103000004011102,101000011032120,100120041014034,102102042002001,102110444130000,102130300200301,102111001341321,101104220322100,112434010204100], + 1040332000033142: [102102011342302,101030224004130,112400024011003,102012141440022,114000010031201,114204000003310,102100301021042,114041102304310,102411021112003,102120010202004], + 220120000200011: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110], + 222200101424203: [100111334330000,110023240021020,100300433210004,102240100011000,100400213242110,100020201002004,120021202100230,102320120240200,100000012221111,110102301010411], + 122202223100230: [100113214302002,102412004000132,110000002133140,101233341022410,100100124100031,114100012313002,120240000020201,101004202403121,100304320140012,100002110100312], + 100310120031012: [101110000333030,120210240004122,100030134340020,110002140002200,112020241111142,114031440010031], + 122013303234113: [112302112020021,112010032340022,100002104302110,110030222130000,101022440300020,110204434434200,102110224000013,110040030001400,114020210031032,100141410402200], + 110110410002212: [102300101103002,100101101000000,110020002130012,102322200210000,110104010022000,110014044200000], + 112200223000423: [102043120223043,102020204000002,102141004001412,110111002011424,114011210043200,103241001400040,101044001000000,101120032114401,111302222204122,103200424030200], + 1100023102323131: [100020201020032,101410211021400,100004214100234,103000011400001,102104241412223,101400200303132,103001010101001,110220000113011,103100000210002,111030014120004], + 1441301013001024: [111131224100212,102010104000341,114120100223000,100404010020000,101240000302141,1204002112200213,110010302002100,102101201121000,101100001111040,110031222130200], + 121200110100010: [111124004101012,104102040011120,114103220220104,102120004001310,102430121110340,101021204000200,102020121102120,112141104020201,101200111020111,110001200422320], + 1423120000420110: [114021004032120,102102112002431,102404200230330,102323234114200,102002200244011,102201014020311,103000304013020,102402001110001,114320204034234,100210021001204], + 210002001303120: [110220100000102,102100321320100,114042102330002,102102011414242,100041004100221,102310030240210,100000000412112,110000010033022,102210000201040,110110122210000], + 1110104004200300: [110420301340222,100024000010302,101103031103004], + 103044424010103: [101200011020000,112000044002102,102230021122000,431300131230002,103042141420430,100121021011022,102214001432020,112034420220403,101211231023001,101011420323313], + 300041221240122: [110414402020021,114312012300300,101012104210042,101430001010032,112402012020000,103322241400404,103210120100143,110101010011124,100040000123130,102001341102111], + 1241000103202121: [102121221343020,101010101022202,112104424022201,100013211002142,1300034431310021,144020001004041,1001010233020100,102210104000000,112012200120020,111023100040110], + 110310010110130: [102121201340001,110400242110410,100030020423044,110104101002000,103013104002044,114211004004210,100034204310001,110011340001104,111202030012240,103012111241130], + 1034021100104140: [102010124012100,100110100410210,102000111101030,101102204023404,100440100030210,114200340003213,100002214201101,102110004001320,114202322324020,101403100301000], + 1424103010000011: [112224111100141,111102214104403,100132004231230,100000030000001,110021340020022,101010001000320,110210020104031,101003204000300,100130334030100,100210301002021], + 110241020202110: [100100201020222,100020314101112,100340121001230,100010220121201,101424120301002,100020314311220,101010221000033,102032100202020,102104010203421,101110441011200], + 1101220131004301: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1220100001104003: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,102011004013000,111200122222334,102301024113440,100033230420102], + 1000231411023012: [101013004000130,101420031021021,112040014004212,100201000011432,101042144010200,110420010102241,102002031120120,101120134001144,101004231020140,100004100412101], + 140232200110400: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,100000010011430,100114420000140,102022300241201,110200100001242,102100042002002], + 100222300022032: [102002014010234,100031001041013,102042004002000,110014231333243,112202400204001,100100001010102,102002014014424,114003040042312,100122014301301,100010444102042], + 102002021000014: [114021412213020,110030002000422,100032121024110,100402431012022,111403100030130,102031024013013,102402330230011,110044020020202,100001140000010,102324410243220], + 220003100020230: [110000204210130,100001130001003,103102104000031,110201134243240,100100100422103,110020134410001,111100044100001,102204004042041,110120144204004,102101002004300], + 101410222111214: [102002120203400,100002020120200,102000431130020,102143000210010,102330124110411,102303342001023,102400404003211,101300124233021,100400000010200,101000211142140], + 110121400221044: [103111010102100,110230024213001,100403312201120,102220030200111,100411221010100,100421001011020,101022401000022,100000414100213,102300011003010,110000321010110], + 202003000100023: [102400340230442,101000400320004,102101044001201,110320024422220,110003011010210,110220231211201,112411200203314,103202024023021,102101011320111,110322202104032], + 1032302044100213: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1004210103100403: [102143124001400,100020440122040,102002034010400,102020030220401,101002121000111,112404002023002,100033134104200,114003422304142,101432024040221,111001404112102], + 122021304110111: [114443012310100,103003010101104,101022024010004,100030201042112,100410224304122,102404200230330,112313301100030,102110244000130,100013020204021,102313310224103], + 1443120203410000: [100002020413201,114330000002220,102000401130003,100110110020203,114000012300000,114040004102003,110402000001104,101400104024130,110004131231204,100002001041001], + 240042212001120: [101020414010211,103303001404000,101410021100102,100110004101000,100040020201004,102000034000000,112400200201000,102221204020110,100103121021000,112100020204342], + 131100040000022: [102400040202040,103121420214211,103222014000001,103000121400401,110000221104000,102042222021432,112404002023410,100020010124400,114200002320302,101020000343040], + 1030020114012040: [114313304002310,102004110223232,112204010411101,103202404003021,103211010211331], + 104124010221030: [110011232100412,110232002101410,110200021210212,110100100031014,102401010202301,114240000001020,102112004001032,102204114114214,102212034044212,114411120001020], + 1112010044000324: [100112021020320,114212104110100,102300124023122,100000104100102,111022134112141,102001040222000,102101004000001,100121214300000,102001201442022,111103214104101], + 1104001004000403: [110130302012020,100000211021004,102411134020204,114032200030021,102000000224012,110210120000001,101000120303020,102000001133312,100402000020413,100011044210004], + 1010000101201121: [112211122030420,101031201001231,102000010202042,102020001100001,101011014010102,102020324002022,112013012301132,102001104001214,112440104040110,111004410022000], + 340241311002113: [100001020012120,110031212000202,101441101010020,112310010200312,111202322222023,100002004342004,100000130100210,100020201030113,101033300332204,102030000202240], + 1002021221234123: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102410220200004,102100211340043,103443104001332,112100311104022], + 1010021122010120: [110020301220324,100041000010302,102020100243032,100031001020040,100104001041200,102012200202303,103300004021200,114210400000112,114042014102321,103230134011412], + 141404200043000: [114203042330220,102102231400111,100032421040120,101004201001232,100000400412200,100002020101023,111100232241200,100011234202334,102111024004010,103343010113030], + 220333033020012: [102342214020012,100220024324023,104130011240303,114100212210001,114143200211211,100120221224010,110402101344233,101001011001300,100112024032033,103112014030001], + 100112200011220: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100104002224,102100224000210,102310140240012,100014204201000,102103321411004], + 1112200001024110: [103020031403100,102200401111200,114003104031111,102302331003300,112131004020212,102003211120021,100033001020140,103131420221204,102120141343312,114330420004101], + 1240032120324224: [110001420430300,102213210200210,100000111040212,102013003040043,102102114132212,103010424023103,101232100300211,132322214002004,104101010011320,1040412210213020], + 1140202213000312: [110013334202122,103330104030103,111200002220003,112043421121002,102212030201100,110002302101012,100111401011110,100104234230043,102010341440030,100001120100002], + 112040104103002: [103200211420103,112203242043001,103023021244000,110104434402221,114323424033100,101421210302410,100030034340432,100004001021001,110241130013040,101020204002120], + 112002004100010: [101202001024340,100004000102302,100023001042200,101030040320021,101003101000000,114104000002301,102232110201100,111203040002344,114223104002130,100410300030220], + 244211021443101: [100020100022221,102011204002010,110411031110000,110120041343100,114110014000002,100000101042100,101120004020213,114002202300120,101020004004303,110003022203202], + 130020024021432: [100000044240301,110204002123041,101140021101302,111120224100101,114440120000030,101023041001203,100201021001300,110212001204000,102010014001001,100211400140102], + 202424041100244: [100002010002230,100002214312112,111021344401134,102000420203042,102000211443214,202240120031420,100024000000132,101003021034241,110240412120010,100121014104140], + 130020200201202: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 101044404010004: [102000401123201,100400040033043,100002004302011,102244421110032,101340020341021,100420214300311,100104004301120,102110022004222,101000421030200,100202034322202], + 1011213232122300: [100040201210010,110442111142110,100200220110004,100032034104034,114401110003222,110422120034403,102001201130140,103001144011302,114314012301300,100020131031104], + 1003023213014000: [100000241020300,110000100022040,111021030042411,110100100031014,110131011000142,102401010202301,100201134320102,110000302122001,110202012020000,114240000001020], + 100332003224332: [102104004021010,100244204311004,104132001240113,111221000010010,114302044003120,112211222041401,102000100240000,100010201023140,101024034001210,102302021000041], + 222024011001401: [110003002010123,102003010201410,100000010000211,110001410002011,100022024203420,112012121120420,111011200020400,100110224232000,110210410402132,111402202210233], + 1014432200024423: [112113214020100,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004], + 101043031044413: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,114201204111002,103310111402022], + 212400220001120: [102442024024214,100443211002141,101012400320022,100011014103012,100030220101040,101130031041024,102031004002014,101240021020011,103140100210304,100110000030000], + 1040010043012002: [103011431401300,100002200103104,110012101102100,103001001421100,100001000100004,102040300241403,103000310100320,102103331400000,114200022331002,103013004020003], + 1001002002401400: [103120200222330,102000421131000,114404020003022,103100114000000,100421242201010,114410212320200,112020011110100,102030000221301,103300010110424,103020011430001], + 100214400300104: [103100044030033,102103410200411,112404030200022,100031401222220,102020111100100,100041440102144,101044020301020,100024020010040,100001101033020,101024410341204], + 1012040004001014: [120402022102021,110140101300004,114400210002021,103103221421013,102010002000402,114233112330324,110423221000200,110030211224203,114201402332241,144200203310100], + 1102331100200030: [100002421031242,101212010301103,103103000121103,104000000010243,110441102112020,102020300201021,100122004323202,103040230104020,101102320003202,100011020140201], + 1400021242232400: [101033031004120], + 1100220030222121: [111020002201420,110124341203132,102000001132022,110312002100244,100000010422201,110220242120201,100030040004120,112230214002002,100033014342420,100404001011014], + 111200022022200: [110200002031302,102002020243020,102040021121030,100311314310000,100000204130001,102041130200101,100412441010422,100220031001210,101010200312020,101040204210210], + 101022440011103: [110130314400100,100104010021241,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241], + 1012112312400001: [114002014100310,100020020121132,103311100112220,102112002004120,114400004141104,102142234000020,114402044140023,111000024404021,102021231100030,112023114000210], + 200312010321031: [103002001240043,112023420232024,112002002003003,110002120000000,102340001102023,101202101000104,102100034001000,102302121101002,100400230021400,110001200421021], + 1111001400321000: [102031000211000,102202131004010,114211132343224,102020021100000,102200114011100,103014330110310,110020120040202,102241010230310,110224010010021,102441120234110], + 222002102020040: [100040201012040,100141404233000,114100222310230,114131002342130,110002022003101,101020001030204,100403122201202,102303304020122,100310210142030,114132012200110], + 1203030030432101: [100102004100201,102114020210202,101200200302210,102434211400021,100003000412141,100001300100302,111230032242001,102324031000000,103230004030322,102102001341000], + 1244020401100210: [100002104302320,101023424210024,100021244103133,112001004004000,100201440000313,103102400211002,100113040414312,103000030101020,100140114102021,114002232302004], + 134301110112000: [112302112020021,102000224000000,100002104302110,110030222130000,101022440300020,110204434434200,102110224000013,110040030001400,114020210031032,111010434400440], + 211041000201432: [110023342101220,101001421031220,112300421134001,110321031234422,102223400201104,102342120222031,111000034110311,102221010201113,103021004014220,102200001002100], + 102002120000000: [111222034100421,114222204004232,102023231101142,110000102001102], + 130111020210041: [101200341010102,102301002004242,100131011001300,110220002041102,103200030110000,100210024300001,114000444100400,100000200003102,102030031133201,110011000040030], + 1140010001220003: [1132120124402200,101200111024003,1113000131022000,120014042200110,100033000410011,1001101000204300,112110200230004,404440001010000,112031240431420,400400120100110], + 303040401010101: [110013312204132], + 1002410020300030: [114003344011001,100021101000000,102334021001211,101203001010111,100031201030102,114201104114111,100001100411302,101414214021020,114123420002142,100000001024010], + 1120314101200001: [110332102020012,102140014002141,104231322021221,103122001441103,103141214004200,114000430020024,101104301103200,114222404114003,100004004101010,101004224010112], + 112000432400200: [112004302004223,100410001002331,101400204023104,100011030420233,110421010402324,100000014100111], + 1010030010021000: [110033232104020,101201000041022,101204220301114,100002211021024,101012000300302,110100021200402,100122034300003,1020000000204104,114400034111022,103201224021013], + 1020110102110421: [110000402130200,110210002110430,103024004010134,110102204202001,100141101040123,110422420030000,420011043004003,110040002032114,100120414100102,102404224041131], + 103323200011220: [102120404134413,100100221040404,110110121300321,103321311400002,101420111013041,100000040411123,114001002211121,102202014001000,111040404111403,100123100000120], + 1043412010030000: [103000004012003,102020231440400,102144200210031,102121104130242,114104220000003,100112011040312,101013200321014,111000220020441,102102011400201,100400302201011], + 1103414011210033: [100422040021304,100002010413410,101433010300204,102114321401000,100002414201103,110324444424432,100122234300420,102001001133202,110222400001204,110001104210202], + 103010201133430: [100100021040144,114011114123044,103042141430211,100102404100430,114142044000010,102101404000000,102300200221021,114322222322000,100104020022212,114024104032203], + 102313034204010: [110432300102000,100011004102400,110040344210011,100003200020112,101000100340001,101300240310420,102100020214203,103000300124010,100030301030114,114211410004214], + 100202300110420: [100202400140300,110421220003142,114404220000142,111210302220403,101100214003002,100004121032030,114002300040001,100404342201400,103002001420012,114440210000102], + 132201202203040: [103134014000340,104103100010141,111101222240010,100040210411102,100110004102034,102040140220220,114010400014304,114300132321233,110000140032001,102033340222200], + 1111004200000302: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421], + 1044110410010031: [102140000212141,114301000000002,100113324103000,102424114020143,102023021321020,102114020210202,114040204014042,101200200302210,100001300100302,100040401020413], + 142110442131233: [111040124400330,112002000240202,111240012241220,102034031324100,102100401400000,100012004202204,100022011030031,101220031020031,111100122240002,102102022002404], + 1022010402202100: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201], + 1140040310301200: [110020120023302,100043120003103,102421012023000,110002000410040,114203412342202,101022411030002,102000021442024,100030314100004,110400302114103,103001021240120], + 140032400120003: [110042220002210,110410200100200,102113340210000,102221200204022,103021030102410,100004014300341,101010200321421,114100212211004,112001402002232,102101024000110], + 1141141021111132: [100100014100021,102110410204321,111121012212042,110014000000224,101021001114141,110022134200011,112320030202004,100210001002400,110000031103200,112320001130240], + 1000410203203000: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1010230110002204: [100002100100210,102420424042020,102000430221040,100100000422320,100102020411200,102100012002000,114221030000011,101320224220103,101302131002410,114140120222220], + 200001414122002: [110213100122010,101212101023221,112120222020002,102130100222100,110200204432001,103024041421002,102200034042002,102030004010204,100104011041221,102400321403102], + 220212141114021: [103000120120104,101013004222210,113011021023020,114200002320001,114002420023031,100141124233132,114210202320142,100041401221302,102100004030000,110224002122223], + 1104000000000031: [100440031001120,102020200223310,103220011420242,100031201030331,112102102302000,100141011011032,102141231343401,101231104200000,100002120200101,102112011401424], + 104031100202000: [114201204111222,103300004021200,102004204041000,100012004101221,102301101004100,110432112111103,101410020300143,101000100342143,101012111001103,102411021400120], + 1141003240002100: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,111122200021102,114032234033303,112400034040002,101041100300001,100000020201032], + 1001220032421000: [103112004030003,103100311424002,103040224000100,114323010000311], + 1110022213023042: [110022000023010,110200304432400,111222404100330,111002234114103,114221002303200,110031330120101,102300200240230,114014032333420,102001000221040,103110220120102], + 114131300401202: [102021111412201,101201000011000,102322124114210,101401221011342,103200004024040,100300224213123,114220000002123,100010214302012,103234124040203,100200034220322], + 330001100124241: [100020220410142,110000412003001,102011331131302,114000230023300,120202201010210,102021204013000,112042024000020,110022100044100,114400200004310,110003000024101], + 1104121202000102: [110202032123210,110412244220110,114001002300430,110101230100001,110411130100013,110000022003412,102401200232302,102230221100001,100021044210012,100112224301402], + 1100000000300032: [102104101340301,110014010012200,102110304020201,111012000021241,111303012201100,102224000214240,103130024002204,102113122004204,102000244000000,102112001341014], + 120100044024000: [112002204004403,103013001430040,102004201410402,102401244020424,101104121111112,102141032001100,102014004000221,102002240210000,100100220024041,114000000023404], + 144402423233242: [101222101202341,100020220410142,110000412003001,120202201010210,112042024000020,110022100044100,110003000024101,100010024302100,100000011020412,102022400210202], + 100140013103010: [112000124022430,102302120210122,100400300013000,111010012201220,101002104002020,110212301300020,102220211302322,102202001300342,110010222000110,111322300013200], + 1143002012123401: [411010033020221,202013001110004,1320010210001300,112012111114213,102230004030112,100100221012100,112102000202302,103013200104400,111103304400022,112122400230241], + 222222100020032: [110011202100142,112400102013231,100001120400212,112030122000211,102023424004210,100014140201220,111004012200210,114142122200022,100413131013301,104131002103204], + 1431402121001044: [100031120101224,112012004004324,114122220031004,103040024041111,101004004213014,114022214031210,103234100101221,100010111040104,100001200204214,103103311424020], + 1020104021310000: [112113214020100,103300344012201,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,100201104224131], + 1224102220311030: [111214100000104,102103034004032,111100014404020,110044014410012,111210124134403,100200044320404,101022024010403,101402014002002,110000110020241,102200001112320], + 131100004122440: [110101420400120,110110420012114,102103122004020,114021020011222,100040204304024,100304100140104,103120000104023,103010100101110,100001200121301,101102210330301], + 340000233002332: [112100124023402,102000224000011,101020044011003,100032301041204,100410304320220,100002414210010,102402000204104,102010042000041,102242204040102,102020111100200], + 1020103101321000: [101221121020230,100004110000301,112022200234200,102100011341140,102320231000001,101122031100000,111222244103200,102042310203001,100101021044000,112230000412212], + 110000202302130: [103311011404143,100021220010031,100000014211030,111303012201100,111020322144201,100220121003120,103240214031201,110210120000141,102212021120100,114021034021244], + 1040324330002230: [103004301434100,111322432204020,100003300001101,101100004204040,112120202314224,111321102010100,110141204400012,100010011202403,110102020032300,123000123110000], + 124031241220010: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100104002224,102100224000210,102310140240012,100014204201000,102103321411004], + 1143010202102120: [104100111240003,100010101020412,102203101113311,102100200221304,101011024001101,110003004210404,111232402242032,110142010120100,100103024102040,102112200210412], + 1001340224020303: [112003100241220,102204001121032,102004000220013,114130302313120,100102100000410,114003124010140,101244001000204,100340000140032,101110021040110,101000030322212], + 131420120012011: [112124004022322,111300210014020,102103201320411,100100031043410,101033214211000,114001100024243,114100012204104,110141112044000,100034244303010,102003104000032], + 220022110040120: [102333021100220,111314044130000,100102204234121,100403200032000,114213314002002,102001301320420,114110034120300,114001400040401,100100411202320,102320241001011], + 200310122220124: [100002311020211,100131144234022,110420202121100,101001410340301,103122100103002,100021001220144,102113040210400,100022410420203,100030424012242,100210101002121], + 1102012014000210: [110000204210130,100100100422103,110020134410001,103101001422002,102204004042041,100021140000322,102101002004300,114100202200202,112000020210140,103230410100410], + 141100400001020: [101300124221002,103311100112220,102112002004120,114400004141104,102142234000020,114402044140023,100314420140013,101401204040200,102132004004123,103030100142040], + 222123002211100: [102442211414022,110122001010214,114400322311044,111231012220013,110022300420031,103214220100013,102000324040402,102340301000304,100023011030111,100101220101011], + 1102310002000110: [104100012102004,110030002000422,100402431012022,110040002034100,102031024013013,110044020020202,102122410220401,110201434430102,102000200222121,101002020342002], + 1001012414012210: [110041030000202,114412002310123,100000300100343,102001410212441,102000104000041,102100034132002,101212430302203,121000000000100,100023201030204,114200010001110], + 222011100203111: [101010314000000,110202104242120,110020124201031,110041012003012,100111231222104,101000201110001,110021000414343,112002212311322,110014400000110,111402114420000], + 201203203400031: [110202032123210,111122004100020,110412244220110,102411314024401,114001002300430,110101230100001,102200034024120,104102130014402,110314042102142,111120122242010], + 102232100103230: [102102031403230,100024004210111,102002100222202,102001041100103,101001100320224,114021004100002,103201330101022,102140020210040,100100210411410,102100320220140], + 200242000102421: [100402004300002,111012104400010,100100004100200,103120140210020,102143211343014,100112000410320,110124044400220,103002110114402,102100214000001,100100121010222], + 104041102100301: [100111011011011,114014112300100,114030034013101,102400124020001,100002100412200,100102224234101,101013004001421,103000014011004,102010321411140,100031120413224], + 200424120033103: [102334004110232,110311331003000,101020240300003,112300032000100,112021334001000,101000100322140,100144430411240,111000024401300,114010010002314,102321040213311], + 102023020000231: [102302024112212,102042221101230,103000020120303,100123000422310,100000040410034,100010030122310,100003314100400,101443104041443,111210102220243,100023004100022], + 121200020020031: [102210000240404,114320124031023,114220020213314,103141111442241,112020141130103,101020001101203,100040324202211,102020120223201,102201011122031,101041400320310], + 211011003030122: [100222311000201,110200132020200,102202201121140,102020031103041,110422400001143,110200201212001,100000214302242,114213124102300,101024020302210,104020040010100], + 1132404221203002: [102110201342300,112121032014014,103334120114003,102102011401410,100130204300200,102330104110220,102333014110114,102043031412211,101210100300100,114200202320040], + 1010144011104233: [112041212004442], + 1210200310002040: [110204034240010,104102030012121,110111222040014,110300142000143,102141002000040,103010000120000,110000011100204,102100111413012,103442014000100,103021000144000], + 1020040000223040: [103244400103103,100002001040031,120220110010340,130024200410411,103212104041004,110012422200110,120100430000232,112314010200014,111323304123020,103043320110242], + 121002002002112: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,100402201004014,100420404320101,102123414032304,112401014040034,110021200002102], + 1404231040000003: [100103030021200,114310312320104,102300000210120,103010014034004,103222000102010,100001001020120,110211011313401,111211244410020,100111044232401,101002021142202], + 1101120110020000: [100001300102001,112033124022002,101013114001130,110110102042312,101004104010020,102001014003100,100243201003120,110010002004203,112000012300102,101121120321230], + 110310201330140: [110203100104014,110314122221300,112042210240113,114310222300212,110103204400311,112100104042330,112003022001322,110200202021000,100004030410001,103414000120102], + 1022111200121021: [110021220021121,103322424033024,200003230020033,100010130140100,110040000440000,110010010431112,102103201412111,101140114004004,110210004212240,112011011132021], + 1123014010424300: [112213000200301,100003224334120,110204130004030,110202120003032,100322004314021,102022010220223,100404000020012,102343301100440,102410434000220,101101000330302], + 1140301003000204: [110212012114431,100001140020000,100012101223021,114002020044120,100021004302202,100121104300201,114102010220042,110132000024420,102021301441201,103103144000200], + 110310143020201: [110204004430204,110300011230013,102100400222242,102122114003140,100002021032001,102011404010000,100000011220004,114111002340233,110000210004001,102100324001200], + 1140001013011013: [110033000022043,110100200030100,100000411231000,100023001222000,103140021211010,100020140121034,102340211000200,102300231000210,114000200010000,100012024210202], + 111300000203022: [114203104112214,100040004330302,101011024213031,102302004110031,102200324111003,102200241003011,114241010002120,100040001221420,110102110120200,101210021000110], + 1120110102132121: [101244201023000,102024204003232,100103144100002,114220010213003,100002111041341,110224234240311,101042301004002,110203222110130,100040011234103,100100000011020], + 1000102000312244: [101024040340220,110002012202020,112042111120402,111311244120030,102100100200001,102110034000010,112200211100102,103000024002024,102104431123112,100142414232000], + 240004203340000: [102000001132113,102202310203222,100042001020203,102002320220202,114130210231020,111321314133000,100000201041300,100004410120102,101020104000040,102432101112141], + 220220202201021: [100003134213001,102320221000400,110420134220132,100301014210302,112400124040230,112112002010010,111000100023120,102110003003400,102401000341040,103120041210040], + 243011403011002: [112144002012040,102110040210100,100014424203222,100120200402020,111002014122111,112013002310110,110232200421003,102140434004314], + 121120030011003: [111102214104403,100132004231230,100000030000001,110302302001423,112000042000001,110021340020022,112020022314000,101010001000320,111001014111122,101003204000300], + 200143400131010: [102200041120220,100100001041204,100002001024002,114002100040223,114101002200223,102430001400101,103210140100004,110021041330000,114021404100022,111030004402002], + 213142011001043: [102003210220202,100100001202011,114104030222003,101120004004020,101010434000404,103103044002112,110020202130122,102110404003220,110202002033222,100402300020100], + 120402112140020: [114001000020102,101020040300010,100213001000212,100040201012040,100002004212420,102121014002022,100141404233000,114100222310230,114131002342130,110002022003101], + 1001103101403220: [101434200303301,102302100241110,114000224021230,101300244224432,102101120213444,102010214000002,101412101103402,100000204214222,102144420210001,102220234040203], + 1111322204130201: [110022002120332,111110230014001,100301101000021,110020140044140,100000301031020,102100104000244,100221000031141,100420031002301,101311010340421,100011301024003], + 100020030021014: [100010400022200,102300001002144,102302444110110,102420221112201,103001000142003,110310004424232,100010344310042,100402012200112], + 1020300330110204: [100132130421010,100212001012200,102041231120304,101020121032010,101302314220212,100000111040212,111130220024001,114333120004102,100402102200324,100400404322200], + 1031204314000103: [100240000032004,102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,114420232314210,100301004321221,100020000410313,110301111301101], + 1410110210202321: [114000320041321,100004004231003,100020201024100,100223004121020,110202204244021,100200024121000,101034201140140,110110004402000,101031021032020,103030020100023], + 1030102031010120: [102120010200131,102312300220000,110020120041030,103001220104301,112010004020300,101042200303012,110401202021231,102201001120441,103012000121000,100240204101020], + 1000202010400001: [112032012004300,101001034002001,102000401442010,102000014004040,111020004400234,1042012320010021,221104221024023,102121321410143,110020100431011,112000034000041], + 1001012002100000: [111034014401112,111302202200213,100030241043214,101421001021031,101300400313000,101220040310221,102320030240003,202030010203100,114431310000020,100000004300240], + 1002023200220000: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 203023002012000: [100011231042030,102100141413100,100020034100101,110004424200024,102111144001232,100111221011100,103312300110101,101403004022114,102000441132020,102222244040141], + 1420200120211221: [114200024110021,102211021000220,100010001040112,100002044241100,110023244410030,110032020042004], + 1410032141012101: [110201201211024,110202000000310,100422314300200,102141410230020,110020001224021,101110020013040,101012410301010,103120001400003,110003302000101,111122222240232], + 101111100220130: [114311204002010,110004221040341,102313114114000,114004102201202,100000101001431,101010014001032,102340140222011,101043024000300,100001044241012,112210014003412], + 1022000401000210: [110241024242442,110444010032242,112220001100200,114014130041210,100001041031013,114212102310100,110224200113042,101000020301410,114000102210200,101041001032310], + 130202004013214: [112142301101040,101000130320340,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102,111110004402021], + 1022011140134201: [102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,100004410120102,111222214101043,101011211003002,101001040304214,103230430101003], + 1001320220202100: [100422000031421,101214104041040,100102000010243,112410034040040,103031410122401,103101000100022,100040021031201,103000300120001,100020141044111,114200000002420], + 1030000111414222: [110104110121000,110040140031200,114043010040031,100404030012420,100000101232023,100000021030000,110030102131421,102110001342020,114102302311130,100023200423040], + 1010310012100240: [102142012001000,102300120220103,114141302341111,100000000014401,101020200320000,100020114202320,112023210242031,102042301121010,110003204210204,110011002014134], + 1000130201221420: [110201400400024,111013232200403,102112220202010,102214104010210,110042042120021,112010120231202,101011101032340,112402010201300,101013411000000,102100001400004], + 1031402010032104: [100002121043000,102400234020130,100133204300040,102200031002000,114021112304224,101010120320311,101201101001302,112201011040200,100302241002010,112040101110000], + 1000042200200420: [101404110301130,102000001322140,100002230124133,110030411202403,102001104000101,100042114342002,100432101014010,110311102100000,101000030310000,111020104123120], + 1001323120212214: [101011411020120,114201232330041,101000010201420,1320010021102402,201200032021040,142321203003111,100040011432042,401000020221031,1440003320032101,100201001100200], + 114220104100004: [100222011211021,114031112210241,103201114030123,112000312000120,102120341340120,102422310203100,104134440011201,102311021104000,102104220213400,112021011112000], + 1010001031011222: [100000100100200,102010020203010,102200010200000,102001241410312,114444012310100,103140100210101,102330021000131,112041031114021,110400240002411,114432422322332], + 1020211314010240: [110104110121000,110040140031200,114043010040031,100404030012420,102110001342020,103242024032020,111123420020420,114000142331320,101114414000402,100011200100200], + 223002000202013: [103212000212121,112002010220004,103211014000111,102000034013222,102030021100041,103210214042004,102311020240120,102110110210032,102202001113034,100013020204032], + 123430211222102: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102100211340043,112100311104022,103443104001332,101422214042012], + 1041022013101211: [101033011001100,110014010012200,114314300012000,110020334420200,103100020210002,100100004230402,102110304020201,102321401104012,110202420004101,103004000112020], + 220123301201314: [100000200202012,102202310203222,114404010003320,100013200412401,100141011011032,111222214101043,100010021034000,103132004002020,100000241000002,100000401002031], + 311000010411104: [114221312340014,102402201110020,100311204312442,100001024100241,103000020100131,101211204201231,100000110100200,100012000022100,100020034200301,102320110240320], + 1021200214341002: [100322100143040,102410000230114,114201234002300,102303320221102,102300001001300,103311034030000,100020414100300,100040004102010,100013441022002,101200301021101], + 1440010000100423: [110400024211000,112010002313023,103013001430210,111100314400341,110003410004022], + 122001321300200: [100000410103200,101030001001022,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340], + 210120034202431: [112133102012033,110202041102300,102142120202202], + 1002220001020144: [110201430100032,114300212300441,100000310102200,114220012320403,101201100301040,103001001421002,112114211100012,103004111240200,114040002301110,110022444200004], + 200321003101014: [103204214040130,100142010410011,102041410242244,102323201000412,102212434110001,112102314020000,100000014200001,114010002304030,101300040310000,100012124101001], + 214042040020010: [100020424300341,101021414001303,103323314024002,101004121002043,114020320040231,110220012121020,100400104302040,100012101020010,103104001422213,114130222201102], + 114110223001020: [100122004300410,102202414041044,102000104012232,114443330001442,112203221102231,112400202020003,102000224000011,103001104010010,101212040303123,100111201014214], + 100003000004013: [102323101101400,1003002030122040,202003402402323,101230330042220,1304100402114410,410142111403201,1002022230124020], + 201312314012001: [100020201020032,103100111424040,102304000242033,103000011400001,102104241412223,101400200303132,103001010101001,110220000113011,111030014120004,111020142144200], + 123030200011320: [100020220410142,110000412003001,102011331131302,114000230023300,120202201010210,112042024000020,110022100044100,114400200004310,110003000024101,100010024302100], + 123301101404412: [100300001002022,102230214040102,1301124312021400,100010341024201,203001440023021,100013240400003,1300110022103104,103000314002021,1000100400230202,121100201000233], + 312410000420413: [102430231400211,102004021102101,112002012030102,114440240003000,112120302010202,100020010000104,102124200204223,102223211121031,110012020042102,110200012121210], + 1100201112222004: [100000210410212,100202021212012,102000032003002,104003410010031,103020201401104,110020030011011,100100000012334], + 111000023000312: [100122200012014,102120400212001,100104211044110,114313022302101,114021002302020,102313204114304,112100102300200,111201424100200,112130011100011,102413141112111], + 143000010021300: [100440031001120,102203004042010,114203042330220,100020001041410,102032012000101,102102231400111,100032421040120,101004201001232,102141231343401,100002020101023], + 1202303342030000: [101010010320112,101001400301113,103101024004200,103300021402104,100020124100010,100301020140000,102102024000001,102202004011044,114003104032034,101012044004042], + 1220040321310311: [103102101422031,101421100301230,102130124130100,102022020204430,103214021400010,100012401020212,110100022010014,102000324011143,111110420014032,103004044010300], + 1001100121010011: [110002012000400,110020422131120,100001000100000,110243000001123,114024400030020,102102120210120,100402000010424,100002004301002,100103120023100,102140011343001], + 202000301100403: [102001200221011,102420000202033,101000004010012,103024000103302,101301014220002,101012044004042,100112240020023,100104000101010,114040100011424,102020000220210], + 122044001400202: [100200400430003,114420102323300,110212022133311,110404122110112,110403010000304,114100040214000,101210021021243,100140024230240,101010200320244,100100241000020], + 221001014242010: [111323002200100,112010212000010,100022404301110,110220001312011,102202210201312,102121041340001,102212444022430,114321120004122,111210012220010,111020012111214], + 220134020042142: [100002421031242,104000000010243,110441102112020,100122004323202,103040230104020,100011020140201,110300212000100,111200404440043,111010100040312,102223301012003], + 310001400100202: [110320202023400,114101420030202,100011004343022,110104422010121,110302204433321,110013122130200,110401140004202,114020204102020,102402330230011,110022202130021], + 1040120240020040: [101122031100000,114010022302104,101220040300414,1300322131001002,102300200220002,101141430330003,102121211343322,101003140301001,1320004203402400,102410001111322], + 104102313100010: [112102024020402,102102010214442,101002024000400,102240231110222,102010214000120,114023142202040,102330020242041,100114310414323,101010310304023,101223214040013], + 201220310133010: [100011301040031,102101021341002,110002220002220,114404210004101,110011001100133,112121404020102,101000000300323,102322144112403,102024001102302,110031102000134], + 1030223001041101: [114130302313120,114202204113222,114003124010140,101244001000204,100340000140032,101000030322212], + 1420104202002430: [110221220004222,111001240012300,102020020222311,102412300200000,100110401000111,102141200210120,114010302300324,101001214004102,102201040202004,102002220221442], + 1010014020241002: [102240020200400,101210331023020,102021111412201,101011211002010,100021300103041,104110411304420,101401221011342,100222100412022,103200004024040,102140002000412], + 1002410011102233: [102121020220110,100001034201201,102010402000020,112204304010021,114020022202002,114212222340440,100001040100414,110010400142004,110022011320020,110200220002000], + 1000120421000330: [111220002220100,101133410300302,132200010004401,110114410003233,140200430112430,112144312011433,110000040024442,101410044021332,100413304100230,103010201241124], + 112100110204010: [114043342242304,101014124224432,102312001000100,112430022023221,111304214132302,102023120213242,100342011001201,102020011411100,101400130302001,100044000103202], + 1240210303020020: [102111000202241,103232220103211,103202404031100,110043132100220,100202204222000,112421024013100,101201114044200,110422420000022,100402002200010,110040304210001], + 1001021020111202: [100204131213121,101012104004211,103300300144000,110320212020203,100140424020004,111001002140322,110200134430401,100000134102314,102203001113302,110004414200010], + 100041000023002: [114031022302044,101012131000024,102002024000132,102110141410402,101044001032114,100001111032112], + 1002210013012020: [103110004004310,103012301431324,114101412203113,112122332013301,1002400121102010,102113131410033,112344420200240,204130104001203,141000003401010,102221001121003], + 102022100034002: [110200140401144,100430200431021,112002020214003,100222101210111,110010220410220,114040010022000,101133104002112,112140044022100,101030201030000,102024041130142], + 110031040003102: [110013334202122,103330104030103,111200002220003,112043421121002,102212030201100,100104234230043,102010341440030,102101024000110,100401301001200,100001120100002], + 223103104131004: [100114004100001,102003320200411,103222244003021,112440114040203,100401001011010,103001204002010,100340114211043,100033001220020,101100120334014,114233002340141], + 1103220210400202: [114231202331202,100003021234044,111102032220111,110200204224211,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203], + 130300320200133: [102142221342202,102100422004010,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420], + 1010001000100030: [110303120102044,102120012001031,110201310010120,100400004303004,110002022030224,111234024134400,102011011131431,100204011002001,102013301320044,110020221320103], + 310002010000002: [101400004022100,101421100301230,114031212300211,102013110201200,102042321440100,102300121004222,112000230220102,112010022302321,102000324011143,102304111101041], + 304030001120333: [100003414100400,100114104101001,101023221000031,114221004002212,102100122002001,101000011021414,112010022302321,102102201121020,101000214211011,102300131102000], + 1024240120110210: [130043000011201,103240031202014,110220314242441,103001022431400,101000000001210,111121112240002,111011020020013,111014224400434], + 1414001040334100: [110021100023210,103122000100403,102023120241131,114103412201420,110014300041302,114241000002004,110020310022021,101121021020012,100424200020200,110321001330010], + 211003100101021: [110010100022010,114004004112122,102130004001001,110033242001020,110202241202130,114003002301032,103202104032224,111102200021041,102021024001221,104130410011020], + 110210212021034: [102040044001211,100220301003101,113400010104100,100023234240221,114140014100000,103003130100120,111210020001013,102111000210000,103121311240102,110401342114000], + 1404111310320220: [114031332302421,110130020000332,103034101240100,112021014001212,111201300002000,100421240012401,103020404010101,111130002114340,114204002320010,112230230412403], + 1432110012311122: [102001130220001,101410211021400,100022441042300,103003024001001,102304000242033,102104241412223,102002421442002,111131214422402,101400200303132,100240011000000], + 1042121311023201: [102012300212321,112400202023020,104400100142023,1320142020103004,101200020302200,1320024233112412,100010230021300,102230004030112,402014100021201,1002022012411300], + 100120000013241: [101400100302311,102013424000314,114013204020122,110100224200101,110014342002102,101122201021010,110002314202114,103021424001214,110000022003020,103104014002131], + 1020241130042023: [110101210013000,100404121014002,101240220300022,110120020002304,100011000202214,100000024100000,110212214400114,110012101102100,102102304001200,100010040001210], + 103002200004212: [100111011011011,100030040101021,114310102300021,114014112300100,114030034013101,102400124020001,100102224234101,101013004001421,103000014011004,102010321411140], + 130100101001002: [103100021440001,100120100032121,110000201324002,101200400331110,111201022200100,102100100210100,100002244341113,101000141033304,101011034001210,112400002300002], + 1040332320343102: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 121302301210201: [102140000212141,101440004042202,101014201030204,114012444020220,111141312211004,114002134022331,102020014003003,102311210240304,102000000223101,100020024212001], + 212121302424404: [110203204241122,110001214200042,100021111211003,110030010432322,102032220221210,100000004310202,100203331000130,103203120134221,100002100102303,101100020320003], + 220000201000031: [101100210320232,102302001102032,110003004412202,100100311001010,102010401101200], + 1030040014002303: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 232042120031022: [104100002100221,104310001300102,112000044002102,114021132202032,112012004004324,103001314001021,111300220000230,114110032343001,103040024041111,100110101040020], + 100203011102301: [100024000110221,101000130320340,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040], + 1401040240341421: [101200410300210,101001200322403,111001204120010,111214204104043,111100114100203,100400330032440,102221410204210,102212010242200,111301002200002,103102040122432], + 1000400400420010: [112132212010031,114112110001112,132002014101100,112111020202401,110203022121202,100243210430220,101023114000013,112314414020000,120214141304321,101003211110010], + 331010342211000: [110123042010000,110213012044343,102430321112030,111113004102021,100012130010240,101001101031102,100203114324000,100320224314301,112200102033440,110100000101440], + 1004200222102000: [101043042401310,104001222102120,110233000100021,101113012101010,110023132100402,110010102002310,102022102010211,100021220002020,103004041414132,112112410232001], + 103440042301030: [102010130231400,101010311003410,100020424214024,103422430124013], + 100003101012421: [110000002133140,101233341022410,114100012313002,101004202403121,100304320140012,103222001420142,100000120121031,100142104304130,100000124302200,114404240034104], + 133410114200022: [100104214302040,111021004400020,102103202002122,102420314024020,103204140100110,100401200020232,114401002310000,114111202200420,100033034300421,100130220400121], + 1020044410201122: [111012104400010,100432200033101,114244120001041,103120140210020,110010011212411,100300020142022,114420230000240,111241224101013,102012100200002,102030301322020], + 1002222131232002: [110202102121414,110143020121321,112034300220110,110300001300241,111224424101114,114201014110304,112010100202041,112013222000202,110222042040000,111001422140044], + 112044204110121: [100010210002122,102301100242102,102110204131100,102112201403021,103011324001001,114003020012133,110301032020000,102110401141003,100041004100341,102021140203004], + 241321322204011: [103324221401420,110400332010004,114212002340000,103111004004332,112204340204032,101020320320424,110324011300003,100014121020424,114300034032400,110313010000400], + 110301042320030: [100000204102030,110210131301120,114102042311423,110423200004021,111200102222210,111140002113000,111020142202010,110120112001133,111004024400024,111002120040021], + 213423003000000: [111120230020122,103100221440010,100021101000000,100113324103000,100001100411302,114123420002142,102023021321020,101000304000400,100040401020413,100000024300321], + 1030000120201004: [103002104012101,114021000012031,122000430101030,114000022300301,100311000141022,114210202322020,100401301000011,124210120032121,100314020103003,120330342110101], + 1013400011031002: [110102224201130,103301201402204,100021020124002,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010,114042014014024,100000000200102], + 110004322311020: [102000004002101,110202000000310,100422314300200,101403014020203,102141410230020,100042030120422,101134224001001,110020001224021,112100000200031,110003032000041], + 1212421124040004: [100011001021002,110000141012003,110112301300000,101040100004242,100003000100210,110000040041001,104002100004121,102443320233202,102402001113222,101000021032102], + 134120020401020: [101230004040022,114244120001041,101021020324310,100020140121034,110010220000210,114021000044211,111241224101013,101113020300321,101312014223102,103201044030202], + 1001042010002000: [110302302001423,101010101022202,100013211002142,110104000024100,102211204000440,100200001001420,114141024004011,114140044002043,111030424400000,110202221212123], + 131103024111001: [100100331000022,114222040214020,110200004210000,101000441140230,100142221012003,100100030402001,110132124400400,100121221022103,102022010223000,102120124004020], + 212402003000222: [102023211411003,102340200224222,103212000212121,100100011010220,100124011040300,114114414122002,114320110001030,103211014000111,112120340203021,101243010302200], + 1402202200133200: [114210424101200,100420110312244,101420014021400,112230324002000,112320301100420,110101024402203,101122000320210,103002400110231,100013100412100,143000203203020], + 200203001014102: [100011110000122,100013001221300,100004014211122,104100312101104,112034122000441,111130004400001,100004010001204,114411102310102,114102032210440,101022241024011], + 101023222400410: [103114010100442,110400222110100,102120244001000,100002411024300,102042041130041,114120444000124,100110304233020,100104004030002,100101000402002,100113011000121], + 211411002001112: [110020001310000,100310201003000,110412121110214,110142300120000,100002201032401,103012011412220,100240010430203,103210331200130,114300100002210,112040101120100], + 1002020102020112: [100000100120300,114202244112111,102110202001010,114011404103142,114041002212302,100043200102020,103332044032320,100202121000302,114040002300000,104331000040420], + 204000203400200: [100010430101320,110104011122301,100002214312112,111021344401134,102000211443214,100024000000132,1300003000223100,114020004120130,110010000020002,101302414221332], + 133401111043112: [101200000304000,102220011110041,112014402034232,102144032001002,102110000210220,111303034134331,102010200221212,100110004300112,114023240040131,103000000120110], + 122200020002210: [100000400100222,103004324000021,114000002334110,114131102312120,114102004141000,100402021000110,114142022200000,102212200201003,102020412021404,101030101032043], + 142012021144020: [100104010021241,100004301021110,114102102344110,102022200223242,112142000203203,100011210102401,102110111023211,103001011422133,112033011120110,101211004041120], + 224000000142022: [112200004010400,102011121102202], + 1020400302400013: [101410411010012,100203011000010,102221104042021,100140001011002,1340010113012333,101201200300020,100000024103201,114201003002000,100100221223042,101000401120424], + 221332040100231: [102110201342300,114300204032002,102000021444112,100003010413400,103334120114003,102140341343300,100130204300200,102001231444003,102330104110220,114100304142330], + 1110203112200004: [102010114022011,114002200000421,101020321002002,114302210010001,114030004104220,100104004301000,102443211401140,102301041000014,112002002302310,112142011101404], + 220111221200200: [100200400000010,102100014031110,101020020311410,100100301000200,101000020304001,100100340412100,110030104412010,103210244041141,112010410240031,110100332004011], + 1100020000001301: [114021010023030,103422000104202], + 110013112003003: [110120200000200,103020040141031,102310044114012,100130431023023,102400204201010,110300400000232,100130014234331,110030224201200,101022441110111,102032041131131], + 201100201120144: [100032041021210,110004301222000,114310000001232,102040041320010,103203401400132,110104002010100,114142044120310,110220410000040,101030004010034,102201411100212], + 1031120000004100: [100032041021210,102300324010203,100030020011022,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,110104002010100,100030024303023], + 100303110011001: [114002044012422,1240210023303321,111011220004001,121410130210200,100221110031000], + 1440000300001002: [103004211400012,100001020100030,103000004001200,100001020104410,114201300002200,100231020101032,111220124101004,100021004100412,100100011000200,102121010214421], + 102240031203001: [100441224303402,111201024102030,100000211034102,110100004220111,100010000114111,100001034200114,100000401042204,101002321140010,102002004001210,102013200241320], + 121244010213214: [100202000030042,102031000211000,102202131004010,114211132343224,103040004012200,102200114011100,102000234000003,111314100042040,110224010010021,110011002010023], + 100101013002202: [100310444310004,100211001204102,112333412022030,100403012200100,101411021100200,101300001000114,114303202300104,112020044000400,103230004000322,111201314412204], + 1123010441401100: [102422114040010,100022041001002,111240340004003,101204400304011,111101222244030,114032424122040,112011012004300,101021401003220,102020004001311,100301020420101], + 132112214304001: [102211230244321,112121214040022,100034244210020,100041014210020,102401221402002,100000030100102,102102011342302,102140200224200,101001244010120,103011014042120], + 242401003413002: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 1021443140024012: [110020001310000,110214024430312,100011014100041,100310201003000,100212341003212,112013212032000,112010220224003,112001040231401,100200001001300,100012104313201], + 200222132040200: [102222131120032,110021130004103,114041302322043,103204324031320,102310204033140,111222012243120,111103110022000,111102310012110,103200011404234,114000422301302], + 112403302020022: [101410411010012,100203011000010,102221104042021,102022014002413,111002134113102,1034200000211010,1340010113012333,101201200300020,100000024103201,114201003002000], + 142220003430002: [101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,112143144020012,103231224012042,101000100340001], + 1100002000103020: [100201310000404,103100334030202,102211014034100,111000222232122,102301024020102,102240031000040,100102204231301,102102110231403,102303300220004,100001131030122], + 1010142013410010: [112011011111323,102133114131312,112210104000224,100003020002222,102302224113320,112441402014033,101211120304230,101123210321002,102333100201022,114421224140012], + 134140444202144: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,100030010102102,102100104002224,102020004000014,100000211023014,114144014122041], + 110041002323000: [103100030100010,101400004022100,102013110201200,102042321440100,102300121004222,100042000102010,112000230220102,102013000202010,112010022302321,101040224003400], + 1003121301200004: [100030004300300,114310020001102,101111004022001,103002304010110,102021001414200,100404400020001,101221334040104,111230030010400,100040021024200,114404004120002], + 100001034000204: [100000010411400,101002304210122,102100340232410,102144312001130,114400240003203,103000320120003,102022002000202,102022040203201,102141002000022,120103240002010], + 240021120120021: [110000000003200,101041204222101,100024024211001,114031000012100,102110001342114,110200000004322,114342044032200,111110020000001,101100401022000,100400000010022], + 1023020011001040: [101214104041040,100304011002220,102012204010044,114110100003101,114240032321200,110024020122322,100020141044111,114200000002420,101024420304241,110204310112224], + 1002244040014321: [100020244100302,100002200412020,100102000423142,102000301100100,114410012310230,102024011413201,101300414221100,102122421340210,114001042203020,102010100203212], + 102111000200102: [104101000012210,111010200042110,102102330211000,114111104121010,110410241112100,114123000000123,100200320032100,100014441224023,111202000002022,103003004002202], + 122042401000000: [100002020413201,100000204203120,102303121002022,114000012300000,114040004102003,102121314020202,102101402001102,110004131231204,102021030200100,100003020100001], + 1043104210040200: [100400220010240,102020200203443,100012200002000,110010114203300,100000000413102,102100111411342,100032004200002,100103114232142,103022100122202,100441120030002], + 110300213030242: [103000200111020,100100100412204,101424100304000,114004000022042,103003444010014,103121120114230,100012241220110,110002111042010,112420122022130,110002321321021], + 1123400001001000: [100000014211030,112200122022200,111020322144201,103240214031201,110210120000141,102212021120100,100010001043004,101041200344232,103242010103121,102220334043022], + 1140200120221241: [102201204040211,110020442001124,110024102010002,100100101220114,101324030311010,101402001013023,111433000002144,100010021211303,101010231002430,101001010320221], + 1000432212100423: [100010101030000,112400024011003,102012141440022,100420101011004,114030424122003,114000010031201,100013001020211,114204000003310,102020100231030,102100301021042], + 244323143203122: [102343230224321,101200221022044,114201104111034,102310140240012,100014204201000,102140114004004,101232240300002,100141101044100,102132401400002,101022121001000], + 1142014042201001: [102044104002014,102022000220004,110210001310230,103001220104301,100010144303000,100102434300310,100421200001003,114024200040223,112010004020300,100133404030004], + 1004010000032041: [101040014000130,103303404020012,100210001002120,100220224220102,101000021141201,114140024000003,102010014010000,100000014214334,110034420441200,102020120222102], + 1003044002221200: [102013424000314,114013204020122,102144201343034,110002201320001,110002314202114,100430010431044,103040201222041,110111221000100,102341131103201,110000022003020], + 1021022210032144: [110012014411212,110131021000040,102130211404020,102142024132020,110222004210002,114110200232130,103101400122200,100400020013000,112011310234002,112414102021100], + 1101100031142400: [102203344011410,100021324100000,102103430210003,100012014300120,110100120400020,102414014022212,102012220241003,100032000101014,103130020213032,101430211012120], + 1112102242103130: [103040031403031,101030014001004,102012421412000,100010044300131,110144102001321,100020304102100,100013010004000,102200000204231,112020022000410,111232100010040], + 121002012020022: [100003101032010,100000204100040,102410111400000,102023104012330,114001412302040,111100022240034,110204100002100,112131400431402,100400202200141,114203204001211], + 1122021000011001: [103002001240043,112023420232024,112002002003003,110002120000000,102340001102023,101202101000104,102311330240430,101023101000220,102100034001000,110001200421021], + 1030004031401012: [114031022302044,102012030213014,102003320200411,102002024000132,112440114040203,100401001011010,102010124013210,101114000330410,110100331003020,101011104000212], + 101210301100103: [110202000000310,110000010120043,110000302030030,110301311303102,110103111120042,112100000200031,100003200120040,103120001400003,100044041024214,110030124410000], + 1013220022033100: [101240210310204,100100220423210,102000111441024,114240000000041,100211041001012,102032000223300,101013024000102,101414000300100,114202002320420,102400400200100], + 1014240104120122: [110220100000102,102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102140121410131,102310400240000,101201340300430], + 1001111100200000: [110411010000101,1300004001031100,404130103212403,114124400000022,1100210001041103,1200020222023401,1042431100100100,102022400114011,110432010304000], + 1010130302000100: [102024124000001,102020010200102,114104300220204,102121300201244,103001021431101,110022030110040,102101200231432,100042000010010,102000331132232,110040300001031], + 1240120303221100: [102000402041014,103204214040130,100142010410011,102041410242244,100022010411004,102323201000412,102212434110001,114240044000100,103140031420300,112102314020000], + 330023104004402: [100131204300010,102102020203131,102230214040023,100000301041003,100202344123110,102012010214403,112410102300413,101031021112020,102124000210033,102221321120312], + 1011042212142122: [110102042010220,101020124000413,114013400011030,103004104010210,101220024041000,102010300201414,101413004041201,102334000243030,112224012020000,103200114030201], + 1110104210010020: [101010101003222,1304024102134240,103200344020420,404010201000410,101014020300010,1440124410104100,110000204412220,100300421001110,102030001201100,100100014220442], + 1000004100000131: [102010421413322,111210044101201,111123014100000,101042230304321,110011020002013,110100002212322,103103404004112,100021024100103,100200201000403,112142011101404], + 122201400020101: [112001001112001,100310444310004,112332000411020,102431200203321,100211001204102,110002400042003,102032010241003,102403204000000,112333412022030,100210124104100], + 130131304010113: [103101224000011,102200042000104,103002000104400,103002144042123,110114021000012,102304204110040,112020004002110,114242210004001,110031404200110,114033020020202], + 100100222200020: [103140044032100,100032224101400,114100004121121,114110004002200,103033044023040,102403101400210,101021410320100,102301000241011,100001301020220,114023122212301], + 1131103122330020: [114032234033303,114300124030100,112011204004112,110102022000200,114020420030200,112431104040041,100012014202441,100121114230123,100003120410040,101040334212110], + 1423300001022042: [114200014002201,101400001013200,114101222204110,102143032001040,102302004110002,124013121333134,101002314000000,100330000141002,110011200020113,112433102023242], + 1011124220303023: [103104120102204,101221311031011,100004301021202,102232010200402,100400040013021,101323244232010,101232000302102,102210420240403,110400331000311,102201000201000], + 1002000120014000: [102001204003131,102101041340032,103010110120332,100012020204300,100001104301010,102320110243020,101002020304011,102432314021013,114001400022003,104010000000320], + 1104033302100122: [111101144102000,100020100101101,102300310242221,102024101321401,114020000020300,101100021101232,103000001401041,100000134100202,100000321040000,102131000201203], + 132404344313001: [101202000300323,1202120201221210,1002004000020441,104140041004101,100000144310420,411011320001004,144200003100020,1400102001010010,1002004011000420,142110112121222], + 322023000301324: [110122120100022,111100424100021,110111121011004,103001020104102,110200422113400,112000000223310,100002214210110,100011200201230,111001002201034,112024144002202], + 1010420322320000: [100040000010200,110011200022002,112210004002112,110023202200020,100020010423201,110221220002400,110040030023010,111242044132200,101041104000203,114202432321030], + 1102400411112430: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 131103404001411: [110200002031302,101403220331230,102040021121030,100000204130001,100412441010422,101040204210210,100000201034001,110000324412304,110000201230100,112020024000010], + 102221214200042: [112312022021021,101200101021000,101430004040203,103000024014022,103122104002013,100040404102010,101020404210020,100001001021002,114200104001010,114040414014202], + 1002001202000034: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,114201204111002,103310111402022,100014001041210], + 1040022040342000: [100202440410010,1203210010100211,400114001102410,120200122422404,1031104420000230,1040100003200241,1020220210340010], + 220340041000100: [102023324010020,114020310024000,111131002212014,102120311402124,103140124002022,102123301340300,114300110001310,102000100221400,100034300102201,112121004021023], + 1200033040041200: [102101324130010,102100441341013,101440004042202,100100204101010,101200200302210,112100002302240,101430001014014,103312401404300,102103104134040,111141312211004], + 101104142130230: [110002022002032,110000242002021,110042130002002,101010000324423,102421340201120,100002204300121,110402332010103,112400242014010,112410000203032,110020400021220], + 1002021202004000: [110402424222014,101001011114020,100030044100103,102012040223003,114022012202024,112023212001400,100002110014312,114042004100020,110320042021132,102002101123010], + 100310120404403: [102240020200400,100042111220111,112220100202000,100042041220010,102101134004010,100403211010100,103240301400123,114102210214041,100021300103041,104110411304420], + 302004004042232: [100401140034220,114002002300222,101242004043300,101013111000000,102102131340404,102420041111041,112004312310301,100040121030000,102000404003020,103111020223101], + 134020334240000: [104100421240110,110213012044343,100042010103431,101001101031102,110041221200014,110301122022204,100242130430022,101400004022212,110233020402400,111102130021203], + 112213102313043: [110004020020022,114032412303041,114322024034312,102143432000102,102040010200101,102200434012013,112000301122111,114001110033210,102100201400122,102013120200110], + 100213022010032: [100200104321000,110000110410110,101021000341001,112032302000220,102004301444000,111133030010200,102103231340304,102100010222101,114000044101422,102020204002424], + 110112122200421: [102334000243030,102311321002232,100020420123031,102412020234414,102202424111200,102100040220330,101002041002243,102402001110220,101002424214013,101121201011000], + 1120231211123244: [100422000031421,110302040102004,101032000323012,101402114042420,102220021120430,111341300012200,100102000010243,111302304130401,100024334203210,103031410122401], + 1002020200101320: [110033200023234,114034120024020,114202042330012,103024110101112,100120244232122,111434000000313,110202000012302,111010012202230,112400100203420,100000004303002], + 242132100033200: [102300100220200,100101021020221,100121014300312,110220442220001,110210142123042,110110400003300,101000201143043,111222110012011,101000040310042,103221214033302], + 1121104310010100: [114400022321400,101302340312230,100400122201240,100011101222101,101000034000203,100200321200200,112044200243000,100002300421000,100202140430012,110200301210031], + 200130111130033: [111302204133040,110300000011120,101213020304210,110422011240010,111020010022310,114011302300101,102420021400002,103221200100302,100432211002022,100424444303100], + 100101020122122: [102012021321102,102141000230042,102002000221000,114044020020230,102321001000211,102242130202110,100002031020102,110200440000121,112400204040200,102100301341002], + 1112110121000220: [110011414240022,100000200202012,111142010020301,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231,114002104020100], + 1401002203210440: [100400040010041,112110020420002,112014002002044,112012242000021,112000002300002,111000322200012,101030010320010,111403000002120,111001212200010,110000240000033], + 310031013104114: [112142301101040,101000130320340,101214440300301,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102], + 122141021011010: [100020031000013,100024004310330,111100012111200,110410324244300,101001001000302,111034020021310,100110040411303,102101030311301,114121012211212,100223401013100], + 1421300233313030: [114000042300021,103213434031333,100002010120410,112211204010133,102222000201000,101011000320010,114001202300211,103001104012000,102001011441044,101143020011020], + 1021011021102110: [101041030320401,102141212000200,101203121020430,103130021444021,114144014122041,100022001040322,102104402000040,110020030024004,102112204131410,102324000240024], + 1010222134200140: [101040010311213,103001101422010,102014400223314,111012340040202,103242404020222,100103020004000,101414220302220,102100411121420,100112304000043,111403422104410], + 1040220210344241: [110021002130201,111302202204022,100120231204012,103002011422011,102201411002430,101023114001014,100000110120224,100002100122314,103240010101410,112110001102000], + 1012013102314000: [110240301111040,111123014100000,101042230304321,110011020002013,114200000003241,103103404004112,100200201000403,112142011101404,100110120023012,101042044010040], + 1003020000201402: [101403014020203,100402004300002,110003032000041,102143211343014,100112000410320,114010340043300,110030124410000,110124044400220,102111010200000,103002110114402], + 220120243041121: [111122010010414,102040404041112,114140030222402,103331304032010,100121311021322,112301120200041,111003302200334,101000200321321,102440000234100,103030100144420], + 100011310002320: [101041301000320,110311142023232,100210104322421,110100001200142,101001021020212,102401001110000,100022340021012,102002001133122,100040020103014,111131044101141], + 100120221000001: [100010231040220,121013200410000,101320200340302,110012000122313,101022200313121,110100300030021,110000121321012,103242034022234,114111300220301,103014441410102], + 200220202301120: [111311002203000,103301000140120,101033220300404,101440410300202,110013002101010,114021104100043,114401020031002,114020204104030,103243024023000,103232031411102], + 104430000240433: [100010241020042,110301222101042,112000303004042,110113014221020,112003204004010,101202024013411,101100401103020,101432320330300,103440004000121,100430304100000], + 204131021421012: [101211320300031,112230144011204,114100102340202,101044214000034,103103014000220,110321202023302,110100110020132,111010224112310,101000320324202,103000000102202], + 111033003003001: [114011420030140,413240313440033,1020020141223341,1040200130322041,1300232010010331,1030422101440422,104140041004101,121421403104300,120023100030211,411011042301123], + 1000213304012212: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,100011120000004,114131002342130], + 1001201221030030: [101102400330110,112030001120440,112000014021000,101024014004200,102001004011002,111003000020010,110432120402013,110213022123233,112230002033202,101231220303431], + 340020400130202: [110040022130003,100030430422242,101120014204000,100100014230110,111002132202012,110201004241002,101000131142230,112001204023241,111311120003133,114022024012213], + 202121222001123: [111100214100402,110021130004103,114041302322043,103204324031320,112430002022342,111222012243120,111103110022000,100241004324000,111102310012110,103200011404234], + 302202022000201: [110102000401214,100100111044040,102120230212201,101230001020030,100013014102414,100014200010022,101004204210100,114031424101013,102011001320032,101000101002401], + 242212000000112: [100010020101222,101222104010140,102304244110431,101012400301024,101223214040013,102421204023110,100011000201002,102004230222000,102034200222100,101010121032041], + 101222002421002: [110420020103322,112400204042221,110400431001201,100030101232000,103122404000100,101140030330020,102330021100410,110432100401100,111102012241200,111032004402102], + 120010214010021: [140203123020300,114010230023434,144203403221310,141000201412111,110004030120020,100332121000004,102301014204000,112040314000200,114210414000324,103122201420410], + 1121000310412032: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,114402104142102], + 1140202000411022: [110212022124220,100003100410042,100222034340301,101440044041401,102130124000000,100032310000111,101121221022304,100101101020300,102113131343200,100444030022201], + 100203040101433: [110104112010103,111102004100101,102202414041044,102140014001101,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231,114022400020320], + 110012114220400: [100242024100001,110410021002000,112042012000041,100020034311000,100001241033300,100024211212040,114300024031112,102000000222030,100301224022420,102331201001312], + 1141100012310001: [102111040210242,114110000002430,111220014133002,100424220032043,114013422300032,100131414303044,110101101120302,100040201030342,101012201030310,112032220240044], + 122000414221301: [110011110144000,114402014112002,140400400201014,102340040222321,100004101020200,121022000104032,102402040200201,111041212200040,110013004410001,120221112100202], + 1410232202140101: [100023421041402,102120031140142,101010224000130,100210020410010,101000414002041,114034422302101,102322004112023,100222044100141,100020140002030,100023401221342], + 300201321024400: [100102224234002,110400444243022,110131001002021,203201100012000,122001000320022], + 114210100240102: [100012341220120,114010144022003,102301104110010,103031220102401,114100242200433,101420321010000,110133002013103,100002101020002,100031200102014,100101004301013], + 1020420002111003: [103244320114100,100032011000241,102311011000014,112031121113040,101010300300110,112044414003133], + 110021300121042: [102102000233342,103302220110131,110100111121002], + 331333440004000: [100400102201130,100000000112010,111011424410402], + 1412300220000021: [114201010001201,100030024300201,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100,110012404201130,112221002032400], + 120304121003123: [100042320001030,110024001010110,100100014300230,102043104010014,100001004300242,111120044100110,102200201110443,114240314000100,101002411030000,102002324011002], + 1101001030310020: [103020031403100,102200401111200,114003104031111,114000044020204,100102020411200,114200302341234,103002110100200,114420002322003,103202430100244,102302331003300], + 200302221220221: [102011214000304,102202000200010,100042010200121,100004300100000,101010001000231,102340031103401,103101010110042,110422302110041,114031100030401,110214014241404], + 1100010401123032: [100011004343022,110401140004202,110040002034100,102402330230011,110432242020141,102110334020204,103200001420012,102120020230022,103102400214410,100232300001102], + 102042210123102: [102422114040010,100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,102020004001311,100301020420101,102002202000000], + 1003020040020124: [101020414010211,101120204002140,101142004000232,100040020201004,102000034000000,112400200201000,112002112002220,100012304300004,110402030400142,100400320013200], + 220133412111101: [102103411410211,114142204000011], + 1120402011102401: [102002040220110,101010201030113,114012012300010,102141220210212,102232004040004,111202024134001,111302120011012,100002314210021,103101031440430,102310141002001], + 130001020112003: [110401410402040,100020211001002,112012000223204,101131001100412,100000121220100,114031120043120,110023214202401,110232202123140,110022040430124,101442404020304], + 102120132020100: [100010401042400,103000204010112,102041400222231,101404001011032,114121224001011,100204200433412,103430100132341,100400040020412,110340242204300,113013410103100], + 100001110111332: [110100202042123,102222004033120,110110001002120,103000301410200,101100111110312,114400320003004,113000310120101,110122101320110,123313001421440,103421301203240], + 213200113002004: [110311011200000,100120100400303,110202202032022,103204021411022,100101020400000,113112010233312,101104020320044,112004200210302,103213100102030,111000304400002], + 112400202412040: [114013342210210,112430012022003,100102204230412,101000041144313,110141012040443,102200001300021,100123020000002,112020202302001,110203321302023,111114002220124], + 100002000000041: [100024000110221,100110020031042,101301014221122,110422102110221,114220040000201,102102204022310,111004100022110,103030040121410,114040210022000,100404400013222], + 101000002402020: [1010400230221020,103034010121101,102302200210010,102340120222440,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 1000420020040022: [100021330000403,102004420240202,101302040341100,110040000001400,112101400230241,102110424004111,114100020221400,112020102003000,101003010300000,101020014210000], + 220120002330020: [111000000010022,102040001123104,112110001103200,112044010213042,100400100013220,114300202300030,103401140121121,112100122010004,100100240010030,110010214201300], + 1010201214230102: [102431111110001,1003002030122040,1320124301012211], + 1122120421000400: [100020300200110,102342110212020,100024024200032,221123404200214,100021024100301,1101210010010223,1300004102024404,100000241033100,100421001000020,1300102043130042], + 1010001010132001: [100002100100320,102024401440202,102110021342213,103200210100110,102440031411200,100023014340130,114214034100221,114202024111304,102200204021004,100113210103120], + 1002000330130202: [103001111221030,110042400130000,111200020004203,104101201240100,102301112004021,110000011012202,100201230412211,101301000314000,111010002110212,111121022221002], + 1031020030110320: [102010424000101,100300121000420,100402431014100,112202012030100,100043300401302,114003114024220,100041221020214,102103224022010,114020012301024,103021041420400], + 132203220040210: [103101200221334,114021000012310,102003040210002,110041001300210,100100304301220,103200004030010,100400414300130,100400231000200,110332030011233,114000210010231], + 221030033040112: [120130001004000,102120140212001,110102030010210,102220211120002,101400104042212,100000021022400,1003022312322100,102001244001224,103441112000230,100010030100022], + 1243240300002241: [111100100012010,100001021033204,103014201420321,100110414302000,100000001040200,100011204240002,103004211403213,110110111000001,114002100021033,200003202003412], + 322013114113424: [100100000422320,102100012002000,102233200213120,114200302333000,101113114202020,111100104100422,101000004222120,103241200114201,102212104041220,112001024003224], + 1400204401220400: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 1020022211011041: [111104102242110,100002200410230,100044010200300,102000021444112,100003010413400,103334120114003,110112131124012,102330104110220,102102002004104,102113101342120], + 130104321111210: [103244320114100,100032011000241,102311011000014,101010300300110,112044414003133,112031121113040], + 1210400010032000: [102143124001400,100011011020440,101002121000111,114023314013200,100000201024213,114003422304142,111001404112102,102010201122000,114011042300202,101400031014311], + 322320233210422: [100003121032014,114000030020101,100003421042112,114240004110231,100030024102010], + 202023221104042: [102101324130010,102140000212141,101440004042202,102424114020143,100100204101010,102114020210202,101200200302210,111141312211004,102020014003003,100020024212001], + 100212202241102: [102140411342420,103243024040441,110021014412440,102020004000301,101031101024100,112000210242204,102201022000411,114403014112210,100100224031000,103111001212300], + 112220201012110: [102002000221000,100011224100020,102110010202100,101104410330240,100001040413220,102140201410013,103220204033101,102101224000200,102100321340322,103023020120203], + 1001000230030403: [114200212322001,100401210020002,100402042200000,110001440041003,100010111022102,100220300410430,101402010301000,100000220111021,101024201114010,102412220200003], + 1200400421002402: [112001312001002,114013314033010,103044111423021,111301002202012,102010010220020,101000021142411,102000140242401,101014101111340,110020301121011,110234044402320], + 1002102000030214: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102410220200004,102100211340043,103443104001332,112100311104022], + 112401003010120: [102120001343001,100112004101222,100030001041404,101440420301210,103043011400000,102100021410201,100004231022202,114100210002313,112002002000201,110140010032040], + 1042300202221004: [112032040234431,101020004000000,101004310324302,100120040400011,100214044220201,110410002020200,110100200400200,100124021201021,100200111001432,100200044121414], + 1001100010200123: [111423000022420,100102224234002,140102120200000,110400444243022,110131001002021,203201100012000,122001000320022,121104330112000], + 1004001122104010: [103110021442200,102132400232131,100114234102203,112221200410000,114023224010002,110020320412002,114400112311040,100104214302300,100300301002020,100422140030210], + 101042432400310: [112200004010400,102011121102202], + 1101020311341010: [114220040000201,111040032200021,100404400013222,110012130410040,102241044033231,112201010203210,100000214310412,103042320101230,103004004001222,112410040200202], + 130200001130230: [104100012102004,110021232000021,100401241014100,110301322104142,100001140000010,102420020204200,110033002000020,110343014421300,102100110230303,110302222022010], + 1121211032002001: [102001000212142,114121000002140,114020002303212,102303110220130,102223231121242,102103132002023,100024121030022,100124120011100,100020004300123,114003004031430], + 131001204134010: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1022004103234130], + 1102210040114000: [101444024041143,114121002310100,103020001400040,101023020301100,110200332041001,114004020010203,102100221341001,100040004304002,103204321414213,100012214302010], + 1101121321400020: [110104112010103,111102004100101,100122004300410,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231], + 1010024100204040: [111030212113431,102001111011201,110044320441241,102233034000002,110410122010102,101122404022022,110311110410340,112101202012010,114240004000000,102300104110220], + 1102003334203204: [100143114304004,100100101041214,100101201003011,103101000121031,114004012302010,103101024001202,102200300234001,110433104224034,114214012341203,100220011004202], + 241020003101021: [102100012000020,101031201001231,102000010202042,103012240110400,110202421203200,103012220110230,102101320312141,100120421004010,112230124010202,110002401320100], + 1014010040004114: [110104231221040,100102000010243,112410034040040,103101000100022,103000300120001,112300042020334,110001212010040,112112122012022,112030010222033,112003120220010], + 133012010030010: [111041004113300,100011144312020,103110120210013,100020221040231,1012220402104110,103012004034001,102001410221023,101010111034000,101020224001010,103021224040441], + 124021130240230: [102203011120021,100401140034220,102103122004211,103022230124332,101242004043300,102102131340404,102420041111041,112004312310301,100040121030000,102000404003020], + 112203012002212: [100200004301323,110010030440201,110041002130210,110020004414024,114340312301134,100031220121003,114310242320310,101100001102230,114302102300200,111042012220110], + 100200213010000: [101233021020110,101300120313040,101102024000200,100021031221022,112032021110403,100210104220004,100010314203131,110011022120011,101000101001021,100241330432204], + 1101100102101012: [110303120102044,101022040322021,102042100242012,110201310010120,102100201400021,101113031012041,114413012313200,111234024134400,102011011131431,100021420122102], + 1032103100013002: [101000104002203,100000121024021,102101104000212,110243310101220,102002304010024,112101002304200,100000130122022,112002002310420,101300040312022,101424020300230], + 1030001004000220: [102010040210212,104400301202200,140230300211231,100030010000110], + 1112102112340041: [101030001001022,102030001412241,101001204010220,100114230020141,102302141002440,111320210000113,103204101404121,101412210330002,102100020210143,100142120100230], + 1002312203011014: [100114234102203,110020320412002,100231124320130,103040424010400,112203010200014,114400444140020,114203004113000,101141111100022,100000404100021,103132221442102], + 1120042002003200: [100001404102020], + 1400021120440312: [102210020240030,121401221221000,110020000010044,110111044402003,114300410001304,110021011310043,1010030200302021], + 110114000410013: [100020220420321,100120004300002,101000310140030,110302010102310], + 1113210300210202: [112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,101002024000400,102202031002304,102240231110222], + 200000030001242: [110100030123401,100110014103210,102013130223020,101000011000041,104100302102030,103200030110000,110102202013213,110202120004000,110000242104040,114000444100400], + 133214410010320: [110034300021014,114400112314022,100112440013034,100041001211002,114200134110042,104104112101440,102300010242203,100204304122112,110011230001023,101233320302120], + 1043042210004200: [101001204211221,100231411002211,114240210000130,111240000001101,111202000003000,114100024001310,101043021124401,112030012300122,112012020241224,100000404100023], + 102240003042103: [112100124023402,101020044011003,100002414210010,102242204040102,100021014100124,100122040012210,101020104000001,103013200120113,101040000300110,110042141214302], + 1420034221310000: [111200140000402,100134120420201,101234100301031,100210304340400,102201032021231,111200332222140,111201314412204,102000200204141,103220100102140,103041130110112], + 130021040301112: [110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,100010101020023,102000221442214,102040041320010], + 1101404040020132: [102042114010041,100020000022000,102223001120110,114010110022103,101443204042201,112113224002200,110020100120103,111320302200414,110212400000102,112002010201042], + 244021041420102: [102424204043100,100300211000020,101410401010030,103240001403000,103044004010022,100042034202031,112301032022414,102103100310300,102012014002001,112002014000112], + 321142410244003: [100222004320102,100110004103122,103020200141000,102414034040100,103031300144042,100120010421220,100000201041300,100000111034100,114011200003102,103132114002002], + 1220040220124203: [101011004212201,110032022002020,100214230430124,103031234000122,100400110020244,110103341120422,102044021101411,101100104002023,103230011412301,101042001021012], + 1022003012223042: [100034100023401,100320221002000,114203022320020,110140042002031,100140214101212,110120021300003,102220202001002,111200104424220,110141041304241,110012000002021], + 240113320121400: [110230231300100,102010424000101,100300121000420,100402431014100,100100001220400,101423100300002,103111300102020,112202012030100,110300011202224,100043300401302], + 1022200104244200: [102100304000010,101240100304114,102332320243001,110014231333243,110022114410310,114003040042312,110000040022323,110201400000100,110400204221003,112000000241102], + 110443022100300: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,102042411104200,102321410240300,100021014100124,100130244302034,100122040012210], + 1032001114400430: [103342021400021,100102004300104,101020004011302,103004011400313,102300021103201,110010140011021,120131201313314,100121020100210,110002340022120,110030012103030], + 1003020021101200: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,110100034200300,100401201010220,102100204000234,100211120140002,102043221012112], + 110100001021130: [103044010120003,100142011022211,101000401032212,103133031440020,100110021040020,102300121000004,114000242303001,102021111411014,103003101400121,114210002324000], + 1200011003200002: [110012000141104,140300020110000,100003301030120,100101004230030,103044004034040,102412140201410,114034000012210,100341231000131,102200414042021,102021112004011], + 1022130000304402: [102010040210212,111120432100010,102012201103000,113223002430413,140230300211231,103010140000114,111113002242010,103122200123301,114021034100241,114231004000010], + 100002020202212: [103301201402204,102401121113302,100021020124002,111201210000103,100101101010100,101320040302031,114010102300010,114042014014024,102321044112101,102014040242202], + 1132212040101333: [101342300314204,114104200220022,100021221021201,110001244204302,102010244010000,103003204011330,114200034110031,114423002314000,114040002210432,103314044033003], + 211003220221232: [100002100100210,102420424042020,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200], + 101102000000000: [100031034311401,100023210021210,102100104000203,110200101200402,100000140100020,102021201410011,103211014030010,100034124101023,111010024402022,102400004021004], + 1010001101200102: [114031022302044,102031011441221,114103020221100,102012030213014,102003320200411,102002024000132,101044001032114,114430412322343,110100331003020,110040000022001], + 1402103200020020: [102000001322140,100002230124133,110030411202403,102001104000101,100042114342002,100432101014010,110311102100000,101000030310000,111020104123120,102314144114220], + 1120101011010012: [103210304032003,102130224131022,112011220222001,103110100210212,103214211400431,112432002020302,114220432322310,101242300302413,102140011343010,112004321121013], + 1043240403400231: [110232022123020,100002004303100,110130010102101,103140044032100,100010240101221,111000122201420,102100010213413,104134121240044,101024011034002,102000041101100], + 140201021040010: [103024100141200,102003304010020,102030004000432,112000000221030,114120122310211,101000001030232,110423144244320,102034421103014,111302110011020,100004001030201], + 1000432101204140: [102400014020002,102102144002200,114010014121300,101301414220012,110000410030114,103100220110400,102212431101040,110204031300403,110424110004001,100102224031002], + 240124203010001: [111000122201420,104134121240044,103000300124010,102430010202411,102100241341002,102414000204201,100100001040011,100002221040242,100001301020220,103000120100410], + 100024432022020: [100001004104043,101200000304000,102220011110041,112014402034232,114222422332100,102000000211031,102110000210220,114333212323001,111303034134331,103143121442031], + 100140020321111: [100413011000000,103234101420113,210330042103020,103202004031314,422202100011300,102021211440022,100024101020044,103140024002140,101004224000300,100111214302000], + 1120002012134340: [100022001030013,102010020244010,102100300210133,114444200000122,102100031340024,102233114003301,114401200002300,111000320303042,100024224200320,142014000003120], + 1000000100030420: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 1100110211123100: [110013001010410,103042020144300,101200004202030,101100011200342,111310324120120,102000021021313,110100201320201,111010402100120], + 1412021002132222: [112113214020100,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004], + 1140000100020010: [112020104001300,101400110300032,110032412204130,100101004300200,111032414402324,102424040202123,101120244000002,102110024001402,101300000340401,104240102023211], + 1000420040110202: [100030100410121], + 123304123124130: [101300300230001,140302100211100,100023404104311,120020400211102,120010201002204,100000011100100,120300312102002,100240221002021,112120100423020,110041140002200], + 301010323000012: [103001111221030,104101201240100,102301112004021,110000011012202,100201230412211,111010002110212,111121022221002,102000020241101,112311000204002,111112124402010], + 120133212323431: [102013010221140], + 142040121101031: [110222410000021,102030004002133,110002122002302,102300301000100,100224300411140,112211402032230,101140301101104,100441431010310,102040241133000,111023014402302], + 121300011104241: [102101222000102,100113004302233,101022204002023,100113040003021,103400311210111,110123012044100,110140211201422,101021304003002,112142010234322,111201012201003], + 1012120002321010: [100421231010141,110141420123113,110222121311112,100200041000012,110221022034121,110220200100234,103200121201441,102200420232102,111001204110001,111130022243041], + 1020000010240412: [100204210031132,100022444100030,103310104021204,102120214130021,101201000311021,101022044001032,100020204104010,110300112001013,100021000104412,114002222301143], + 102102400234012: [100200011001220,111202014132111,100003141022321,110201434240143,111030044110010,110041304201404,100040211022000,114000134102201,100420104301012,102110001401111], + 1000210211012130: [110300202021130,101300231002120,103400104001022,102212200313103,100240020430431,100202004320010,103021310002011,102101044000040,103010030100210,101011231024200], + 1124320210301021: [102022004012201,101010241003223,100000024210130,102034221103124,100014030200221,100020134212021,112001120220130,110204314402021,102102230203330,101001104003130], + 112021220414203: [102223111000042,100004420014012,102240210240022,102320200221110,101040401032021,114200004110030,111102324104110,102024124011010,102000324013042,100030124212213], + 1100310222233021: [101242011000124,100202340430142,114420242311240,110141001301302,101200200300310,101011000320010,102020004000040,114001202300211,102110201342301,102330131101200], + 104301202010341: [110320442100100,103022421400100,114422000000001,111201310013231,100002011024422,102141044002021,103021101430300,101011200324311,102100041341103,112400002021310], + 1412002220011020: [101020024212042,100041204212120,102113110210240,100410110420202,112423424042102,100320431000002,411200101402221,100120214230002,103204200103440,100210004104001], + 200021433001003: [112023400202302,101203440304221,100031001030010,110021202000201,100100304002210,110200100000200,101001000322100,114143412342040,100110141011200,110414101140240], + 1121022332003204: [102023210204300,100130101023140,100141314304233,110000004422320,100021304210300,101012341111024,100033104212020,103132204000234,100020001044140,102041014010103], + 304020020201411: [114000014014332,110420104221220,103041204010000,114030304122412,101014424224002,100023041030400,114040002210003,102014011102400,100400002200044,110004400412002], + 221000204222230: [110000121222112,112410112010214,101424410302410,102201011123104,114022004100430,102300000242022,112204022021221,110414130001220,100014001020030,110231000000102], + 240010043343201: [110400040000210,110044002100020,112010010241211,110020401212010,100300020140110,102041321123031,112100202011301,112124300200300,110002204204002,100200410430212], + 141100040031300: [103104401244021,112031202003020,104114400011000,140402143000011,100210134104040,110422001144121,110000031031240,102110224004010,100022024300010,101142424001012], + 1031440241024040: [100000001220044,102022200220022,102042031102112,102140114001021,102410111110002,100101041040330,102000100210400,114102302311211,114034400040402,103021004022022], + 1031002140030101: [100200400430003,114420102323300,110404122110112,110403010000304,114100040214000,101210021021243,102412044040011,100140024230240,101010200320244,102214000210013], + 113011120210100: [100114004100001,114102300004024,112102201102030,103222244003021,102420011111224,103001204002010,100340114211043,110232020002221,100033001220020,114233002340141], + 1000422421400200: [103301210142043,101110044200100,102411000200000,110414300030001,100030020011022,100400014321101,114100122342002,111202012222402,112012020230301,100010101020023], + 1104233101302044: [100044004100240,102011101321222,101121301100014,102010200213332,110010120042000,100210001002120,101000004211110,100402020013110,112004000213042,110113030403241], + 1010220030200112: [112141014003133,101442404002102,100020100002001,103203210100011,114301102300421,110100101240201,110200340000130,100021414314013,102000041101120,100313104014220], + 1120100000144413: [101221020011201,112310132020030,101101401020424,114030220011120,110020442001124,100011101011002,112002110240403,100100101220114,102040101121143,100010021211303], + 1023120012001201: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,102000220220104,103020004011414,103310111402022,103110114000220], + 1102202003002400: [112222002021104,110121112012011,101400401012014,100213001002313,110020100004110,110200310002240,100211024101002,103140404001201,112100122300333,100201444322002], + 1120102020400021: [111011104401124,102224202023120,103440004000101,110212000110034,100010221030210,112100010233440,100212321001100,110421000003000,114200412322323,111200212220401], + 1101120040121004: [103124001420200,100220210034042,101210004011003,114434330000120,103224034003141,100204011000221,114412402323000,100000201032240,100204401004031,101240204232402], + 200020212112110: [100032041021210,110001041213031,102300324010203,110414300030001,102100142002204,100030020011022,102040011121100,111202012222402,111322234130000,102040041320010], + 1000120132204040: [102202000201220,102203011120021,101220024041000,114330432320002,112224012020000,100343241000240,112232102030022,101000424210014,102103122004211,103022230124332], + 201200400021141: [102000020223013,114040102301100,112121032014014,102310111001210,100020241043022,102100121341102,114100304142330,100301024310020,100130010101430,103112000210401], + 1100110310012002: [100201131000322,100240414222323,110002102230200,100210004030410,102304004110020,100003104302021,114342024030024,100312301000001,102103200312030,102200024024022], + 101021200224210: [111043000011003,100101004100023,110030000043100,102001211104244,102204004040030,110000104201012,100223021000014,110022001104214,114002020020121,111122322110210], + 1000202320314100: [102242201000222,101410044020102,101000011032120,114004202210130,100004210412101,102102042002001,102011014010000,101420031011004,102111001341321,100022204300002], + 123300133122402: [101013400302012,102021021031000,100000201120001], + 1002140001233123: [110332424431130,110421102023242,110011414201101,110020000440124,114400104140001,111120442100320,114312112320302,111001112202311,100212324104022,100230000410021], + 1140003043230212: [102422114040010,100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,102020004001311,100101101010100,100301020420101], + 100100002201001: [100222004320102,100110004103122,102200130202201,103020200141000,102414034040100,100022304302043,103031300144042,100000111034100,103132114002002,100412200002013], + 1011400002021301: [110332121234200,102020424010200,103320000144300,112141102011002,112133134041003,100002220111210,110104411322230,100000100001342,114112014000241,110002001222020], + 222102331424320: [102001030224000,110224032120040,100240404100140,100340230424131,110001004210440,101202300303044,111002010001321,102042404001104,103213101421223,114020204020041], + 203043130041210: [112121214040022,102401221402002,102102011342302,102140200224200,114000402330220,101001244010120,101030224004130,114000010031201,100004020411201,110144100400420], + 1010113001103001: [100104341010424,103142210104020,111121004103434,112203001103411,100212024121000,100001001033200,102202014042012,100010001032200,100221110101420,102441030231300], + 1002102022031321: [1000110030001310,100231201410110,112213013124000,1121420100113022,1031104420000230,1001421031214242,110002402134100,101023220340003], + 103014002001100: [110130314400100,110310034424102,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241], + 1404110232102111: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 100001000110041: [111200140000402,101234100301031,100210304340400,102201032021231,112020044000400,111200332222140,111201314412204,102000200204141,103220100102140,103041130110112], + 1012131220110000: [112004001122300,100222100402024,101301124222004,112204220200011,110013202120001,100230040410200,103210004031201,100030300422112,100033001230040,102002000242023], + 100100010103100: [110241024242442,110021312002040,111101042244210,110124002040002,110444010032242,104132420010010,100001041031013,114212102310100,110300112023012,110224200113042], + 131210221002110: [100332010141200,110231104241010,100020044100330,100400140020411,102020401120022,114021102203101,103040230101104,112004040221232,100101110400231,110010020014000], + 1010004112000030: [110033000022043,110100200030100,104412212102010,114102024123030,110132020031210,102340211000200,103044004034040,102300231000210,100020200102220,110414012023214], + 222224000111400: [102010000213110,114400204120131,114100012340011,100402340020201,114111200034000,111003002142001,103011104010114,100400300013102,103022121401123,111214012220421], + 1000002134030324: [114120030223400,100340100424220,101202014010412,102320230243132,100311004101130,342003122142040,100243404101011,100102001000010,102322124112422,110024102204001], + 120041002442220: [114423334140322,102200020202000,102201140211010,114000324101021,100020124304402,110000001044030,112010402310201,114011002303330,102201204030240,114012000020340], + 1003010040241110: [110212022124220,102130124000000,102010421413322,114002200000421,102113131343200,111210044101201,111100402200230,101020321002002,111123014100000,101042230304321], + 120030431041010: [100003104342121,100400414321103,110404201113410,110020034203040,100032304202003,101010231112144,111000100003022,100113020400211,100022030414220,103004004012230], + 1040040000103000: [114040300043111,110203111111000,114010030024204,102010201012014,102041204000002,102323204112320,100402201004014,100420404320101,102123414032304,112401014040034], + 203200042234321: [114102300004024,112102201102030,103222244003021,102420011111224,100020004300114,100000000413010,110232020002221,110010021200102,102101300311032,102013102002210], + 222201042020000: [110401004221204,111112000011222,100322444314002,101003301020022,100102431021300,100001030100030,112012004004000,112044204000441,103141100104002,104110100014103], + 211000020414014: [100120214301000,112013322301200,110400404221001,102100001021000,111121002100432,100210004220021,114104310000040,114202100004011,102010121100324,102000014012243], + 1103300343030342: [110103341120422,112122024023021,110042022001000,112001204001021,110104112012000,111101220010010,111020004404000], + 100314221020104: [100121230031032,112000431120410,103042024040104,102304104110001,102000200200301,100104211044110,114241222321321,114021002302020,102313204114304,114013124030022], + 1013142100012002: [102103001411402,114020012300033,102011201441000,103101000100000,100113410410314,110212424434423,110214002122002,102400024041204,101000014004024,110030021011003], + 120044110312333: [114120304000212,101211414040000,112000022310414,112010030221031,110012000000201,100001114011131,100102001220101,101021004000020,101010001141222,100221414100030], + 112231003012013: [102041020220100,114120204000410,100000001020000,102023031321010,102220020201230,114003104100012,114010214013020,112000224000141,102303021004001,102304010242101], + 330103201034211: [110101210013000,110212214400114,110012101102100,102102304001200,100101434332222,100000014100014,103001001421100,100001000100004,101014424011000,101230011021204], + 130131334222411: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,110100034200300,100401201010220,102100204000234,100211120140002,1000023402103012], + 1112210032111001: [101021004214202,100011011020440,102114320203000,101011001103200,114001112300001,114023314013200,102040104000040,114022120040112,100000201024213,114002002300302], + 1120024002022013: [101042410301221,114201010001201,100030024300201,100020120101000,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100], + 240012003010211: [112142301101040,101100000330120,101214440300301,101121100332142,112401314040311,102011004013000,111200122222334,102301024113440,100033230420102,111110004402021], + 1014400100010024: [100100300421022,101204121022310,100342220042002,101012121022204,114022002212232,100212220001141,110012102000311,112422000200003,102010004010020,100000114100022], + 211303120204401: [111201032220400,114203000004300,112401024044240,100022120412132,100000321031423,110322100104010,114043002302200,101222121020001,102120230230000,100032021041010], + 1000140140100030: [111200200000232,101200101021000,100101001011114,101430004040203,103122104002013,101020404210020,100001001021002,114200104001010,114040414014202,100000024301031], + 100100430440030: [101410211021400,100004214100234,103000011400001,114100012313002,110402410002000,102001011442200,100324200110130,100342120144000,102020001440011,100100031003220], + 100102020004010: [102111211401000,103302040111403,102020001440401,100030240102022,102004004001010,101222000300004,100302004321241,102111432004030,101232101021021,114100220004120], + 1041000003143012: [103112004030003,103100311424002,103040224000100,114323010000311], + 1100440001020001: [110102401201204,102400100230000,100212030414010,102031021441200,101200020303202,102020041321410,111340300010010,114120420223002,102013224003020,100002210201212], + 203000001200131: [102021241321003,103002001401403,103201300110101,110204002121413,100002001042304,102144020210132,100400000020403,103020010100321,110140004200100,100030001220222], + 1031020030010423: [101024200342211,100230404343341,102202000201212,112000134002211,114200000001130,100001401002220,112001021110124,111410110002320,100010020101230,100120001011321], + 100201301044400: [112324002020202,100120221021011,101401140300101,100030124210101,103220200100320,101030004004303,114000020034200,100010001040020,114203224111020,102003201440022], + 144040403114103: [110040022130003,100030430422242,101120014204000,110014300001402,100100014230110,110201004241002,101000131142230,100104044230000,114022024012213], + 102000001110022: [100140200020242,100004120021240,100131101201030,111201022223123,100400300134001,110001020030002,111421014442003,100100244002230,101010001000241,110030010140000], + 100003024400040: [102103114000024,100014011034234,100000324303120,100221200002204,101102120222000,400200234320200,101041200320322,100020400410010,110200320000000,121112122000000], + 110210422300200: [100003031030034,101001044211204,100000140100020,103001324000110,100002014200021,111010024402022,114000030014400,101013404000020], + 140031110310140: [112210010201431,103100024002220,103303000112122,114003100020203,100320104321221,104210021140401,100112101024230,102042030211303,101000400301224,102110214004300], + 110210242021141: [101032104014144,102120214004010,100022041030000,110100104403201,102142140313104,102000024044003,110410020403024,102214204040420,112412300200103,100010430202422], + 1403130023000010: [100042301001230,110002240134040,100020200023001,100040014310020,114000014100101,110031324200020,102100211124411,112202304002043,101110310331140,101000201000000], + 1040331203010000: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102100211340043,101422214042012,103443104001332,112100311104022], + 114312430124100: [114020000011320,100021314202402,103142211442311,100323140143012,100004411033203,101440400302320,101204004040140,102111021022024,114231324103240,100401041011000], + 300000021402122: [102211034013100,100044000201201,114241110000102,100010214313120,112040022002231,114324302302212,114401322310000,101110404001000,100212040003321,100000000101012], + 1123102221001201: [100003030003020,110010302000004,110410000104042,100014014203233,111422100034314,100102001013034,100001014100021,100000040413000,100001034310012,102030414003000], + 1010231200000222: [110200100002031,101420310301020,100020330100100,1002443410030003,111103224103001,102100141413100,102110021342213,112002310211210,100010031020102,100011401031000], + 202012120000200: [101002024223013,111000340012231,102000114002003,102103401440120,114300140000220,102110032004232,110040002120031,114213222324300,102322030240100,100402000020410], + 102300030411011: [114002104014300,102000311102212,102010004040000,102230130203001,112433112020200,112301312020123,103313404030100,101400201014000,102000201101332,102231041120104], + 1101212121001223: [110202012100020,102303010241010,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144], + 1213210022420221: [102020010203200,110130201302200,103041021430301,114000402211404,101000100302003,110343042000030,111302204120210,102202031103300,100203211002212,114140022340203], + 1042420002220300: [111120230020122,102140000212141,114301000000002,112124310203104,100113324103000,102424114020143,102001000221124,102023021321020,114040204014042,100040401020413], + 201204220210010: [110241142024233,110441140102024,100413311002132,110210301200101,110400241240242,102200001002100,102210101121104,114443304123123,110023102103200,102400140230123], + 102300222300301: [100322000143001,102013021131042,102201000200312,112022110220022,100020100100100,102004021444000,110320002002201,113033001030411,100010024102311,102200304033030], + 1030011214001012: [100111011011011,100030040101021,114014112300100,114030034013101,102400124020001,100102224234101,101013004001421,103000014011004,102010321411140,100031120413224], + 1402031003014021: [100310304310342,100010041031020,100042400001023,102010020223010,112402000200101,100020201221000,114200014114313,101400201100022,101010020301243,111010130022401], + 1000003010012100: [110000002133140,101233341022410,114100012313002,102001011442200,101004202403121,100304320140012,100200034020100,103222001420142,100142104304130,110100000100000], + 101200410111314: [100422000031421,100002201031130,100102000010243,100024334203210,104301222102024,112300042020334,111244034102140,102104220213122,103012200100120,110402000100440], + 220120020013214: [114120430002002,114033300041020,100000100120300,100031021033010,114011404103142,114041002212302,100120004300001,100202121000302,100212024322044,114101024122320], + 1123204010400001: [102300111002202,100241001003002,111310004122000,101221000312044,102030300224002,112010022000304,110323142102300,104124002103241,101002211110002,102311031104220], + 1010221233021202: [103000004012003,112303041103203,102101024022111,102020231440400,114030304122412,102121104130242,100112011040312,102014011102400,100020410124020,101013200321014], + 1102314300203012: [102101324130010,102140000212141,102424114020143,102114020210202,114040204014042,101200200302210,102434211400021,100001300100302,102102001341000,114011012302220], + 201121134043002: [110303120102044,101022040322021,110201310010120,100400004303004,110002022030224,114413012313200,111234024134400,102011011131431,100204011002001,102013301320044], + 220200301004411: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,103100024002220,103303000112122,102100014132110], + 1020342312020232: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,100011120000004,114131002342130], + 1024030040200120: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,111243002222100], + 1011010030224042: [111240220002100,110030344201413,101001014001021,102304244110431,100011000201002,100103224301304,114000100020200,102004230222000,102100322001021,102102100231000], + 1120401010212100: [100104024303320,114422004110130,112210132031001,102010310213001,102012030213014,114021114023402,100210004343102,102021221120401,110031200023240,114242312322020], + 201140001111221: [102001404012100,102122214131011,114223204100010,111041202200140,100023031000024,114021040010311,100020004101012,102402000201011,102311011000200,114220000000024], + 101320021031040: [102110230230004,102123040212103,102020034010140,103102010211110,100021000122000,112130002012100,112203420410100,102000011413043,100020404100041,101004210301301], + 100230012010002: [103031421401120,100414200432002,103421020124110,100404202201012,112000100221202,112422002024102,100111041000200,100200004102020,101121020320133,100300014213032], + 104102000001231: [110012031011302,100212030412303,111200104411001,101002104002020,100300304101302,102121200313040,100300021202320,111201004131300,111311434120141,100101041000013], + 100001412001010: [100100100422103,110020134410001,100300020142022,102101002004300,102043001021033,101210211022100,110421202110000,114100202200202,110004100002122,100100121010222], + 220423221121222: [100000104210240,101101200311102,112401402023020,103142104001331,100200204123011,103031120143010,110020211221100,100101130101111,103232020100412,112000210230234], + 203221200211100: [110300000011120,100000221020004,101213020304210,103221200100302,100424444303100,100031421024030,102204101123101,114021204031202,111011110004013,102103000214000], + 202202201101120: [112113214020100,103300344012201,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,101001010300404,100201104224131,103340004020422], + 1130443121020041: [102210100313100,102223111000042,102240210240022,102320200221110,101040401032021,114200004110030,101242004043300,111102324104110,102000324013042,100030124212213], + 1110042001101230: [100020020012200,102300111002202,102002114010040,100404010012404,102030300224002,112010022000304,100412414102410,100212341201044,114101042313041,103002024002220], + 111320000100042: [101100011102402,103102041440324,100002020122000,103001031403201,112110032304211,110033020003012,110042234410000,102424111401024,110000400030340,110020004203230], + 211132000231102: [100410200433034,114000100012241,112142210422404,102402404004240,134010224314220,120120103004400,100430114103130,110002202000200,100020314310022,101440120022100], + 1430000024201413: [100013204331410,101024000321043,101000001031042,110402040103431,101410101102110,114403334142212,100100004102234,112424004044002,110301330044403,100010100010030], + 200244430030204: [102334021001211,100001100411302,100000001024010,100111421040321,102023110221011,100000014202111,111310000002001,103131004000400,102000000222333,103020004011302], + 103120242040010: [100000304303100,112030202301321,110203004210000,101010140313340,110011002002402,111010200000330,111210000000103,111113002113030,112111012310412,103200321204100], + 1002120031224022: [111000100012002,111102010012102,111300030012334,112000021130124,114440430030032,114300232301422,100002124340103,100020211021110,102412140201410,114000010012402], + 1402010001001000: [102010221411043,101020004011302,114212100023341,111200112221320,102011200242200,102300021103201,114244100003024,102410101112322,102121041340000,110010140011021], + 113030102034301: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 1100030004343100: [101233021020110,101300120313040,100021031221022,101200031021100,114210004110002,112032021110403,100210104220004,112201024001343,114402022310200,114421304140420], + 100040113302002: [114030110041300,103132424000410,112013102004422,100400220013232,110010002000100], + 1104444012104031: [112324002020202,100012400101400,111242212222022,102022411100012,100020100100300,100001210102104,101401140300101,101242000300000,103220200100320,101030004004303], + 303200040203400: [101042410301221,110432300102000,100102024100020,100011004102400,110040344210011,100003320401100,100020120101000,100003200020112,112143144020012,103231224012042], + 142100410211030: [110014002132100,104122202100000,103100304000131,110011212102422,100030100104111,100312021000201,102004010202104,114100024120001,100001122210110,102000110220120], + 122010302210402: [100413111001202,144041310003010,101201204010202,101000001002242,112342411130020,113013200130020,114122414000301,110201304401200,111032232230200,111003200003301], + 243114112111101: [102104201320013,100040404102010,111010144124143,110000022203101,103011414001001,1140000003002130,102102221400210,103000330141120,100021214103400,141112101002100], + 102100031100120: [100003031030034,101001044211204,100000140100020,100002014200021,103211014030010,111010024402022,101013404000020], + 1014042233020300: [100002221021122,101404410301101,102122111412001,101000141110130,110001041100000,110311404430222,110103202210414,102030100200300,100000020002303,110004031201142], + 1140100032112103: [102002112041034,112401144042000,101222044204000,112430220200100,101004101230410,110003122001030,111100202220222,101202014042010,100123311000030,100210011224040], + 1004100120001021: [102211230244321,112121214040022,100004004100120,100041014210020,114204120210000,100000030100102,101012400320002,112002100233204,103303001400240,102200121300400], + 1001401100141010: [110011232100412,110020120040121,110000100022040,111021030042411,110100100031014,110131011000142,102401010202301,100201134320102,110000302122001,110202012020000], + 100030020401100: [101214104041040,110104231221040,102012204010044,103101000100022,100020141044111,114200000002420,110401440001204,100042110122000,101021021002110,100142224102102], + 1004233001320021: [100021304300200,100020020102201,102111400210040,102023001440404,101023014004000,100020010101201,110412042010210,100100214102200,102103000233434,101000001032020], + 220024422100202: [110200002111002,100201131000322,110141400010211,112002040210000,100020300000010,114030014101223,110002102230200,110223121301222,112441020201421,100013004114001], + 102030120020020: [100032041021210,110004301222000,110414300030001,100030020011022,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,110104002010100], + 1200211024001002: [102021241321003,103002001401403,103201300110101,110204002121413,100002001042304,102144020210132,110420040000002,101020011031033,110003040140004,100210030001420], + 100010220010313: [101012130310043,111303420012131,110141221322023,101422004042000,101243404044201,103002341221402,110010224213240,112012102004004,100000020204240,114423004144120], + 1144000400000102: [102100111101131,100134111222040,102242241113020,100202404324312,103311300141243,114100122321432,110410304221000,100202101001210,114313344030012,114020010022401], + 1000203400134202: [102110120202001,112100042301414,110102030023004,102120314034114,112330121130102,110002101101212,111100320023012,110341222103022,102200120230002,100042024300400], + 1030101404000102: [101032104014144,112102002010331,102120214004010,101132010333413,114114040222210,102140041342000,110222140404112,100022041030000,110040432100110,100402020024213], + 1000003440110220: [100041200010000,110024021040134,110301001232000,100220010002421,102001201443121,111210240010100,100202421000201,102430001110014,102002101410204,114401230002424], + 102000212410100: [102020404003432,102110240224014,103103004030401,110213022100021,101224321014333,102322001000202,100030114200201,102204321003224,102214011120002,100011310420210], + 132110220001012: [111011002200001,104000131220103,100001002213422,100003000004420,100033020410033,101002200300021,110020004414100,101232101020423,103243114031220,110112201000014], + 102012110001212: [100011444101344,111003100041003,100420241003104,100002100100004,100000031021034,102013011414120,101403044020210,100132004303034,100134004303010,112131021102320], + 100212404012020: [114400022321400,100100020410000,100030411042022,114304212302401,100031420002140,100000014201221,110200030001040,112022400231120,110002421122102,101004110300011], + 1101120402220004: [101022014222024,110100120400020,100401024300321,100000201022420,114030000030012,103000011403101,100000010202201,100111404302321,103243014020301,100012024210210], + 1000034403112000: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100104002224,102100224000210,102020004000014,102310140240012,100014204201000], + 1000400422220130: [102340221000300,100220124221000,100402002201002,101011014002032,102104101122100,102423114022101,101131201110300,112002010221020,111012030020003,114200404001002], + 1003013000131344: [102400031401212,114013342210210,112430012022003,100102204230412,110141012040443,114420444142010,102200001300021,100000131232000,100001401222233,110200222120200], + 1023002142012124: [111304340002030,110102000401214,100100111044040,102024102020000,112003020220120,114022100010000,103400201200000,114021200012000,102120230212201,102040131440020], + 100013110300030: [100020314101112,100340121001230,100020314311220,101010221000033,102104010203421,100021034210010,112440204040000,114202122320234,101000004210200,100110014231114], + 102300011233241: [110300324420404,112400230202202], + 122431414104211: [100131424302300,102104004021010,112033000244420,111011242233002,114302044003120,102320001000230,110014210424201,100202234032222,101422404040210,101430020300303], + 200204412203200: [100142010410011,102041410242244,102101220214011,114000424102300,102323201000412,102212434110001,102141020210132,112102314020000,100000014200001,114010002304030], + 104023203101001: [110300000402020,100003034100001,102000010200014,102110402004000,102431400204010,102112042004203,114030100040000,100120431012000,100002024212102,112210204002124], + 102000001024012: [100012320001320,102000331120104,100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 122021030002101: [100111141004000,100440221001232,114204122330314,101023321002102,100012030122000,101000131030300,100013001030230,103101004000424,100011201042003,103104310211412], + 100114100020010: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,110030222130000,101022440300020,101402010301000], + 104314042204004: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 1023042204100004: [110102401201204,100212030414010,101400004022210,102031021441200,101200020303202,102020041321410,111340300010010,102013224003020,100002210201212,103013020123142], + 1144300103320031: [102104101340301,110014010012200,110020334420200,103100020210002,100100004230402,102110304020201,110202420004101,102442400231201,103004000112020,100024004103100], + 221022141003020: [1010400230221020,103034010121101,111320012221132,102302144110440,114140004123122,102143202000400,111020002202333,101321311004010,102110241342210,114122302311011], + 1010004011140000: [100030324200410,101000001111200,102300404024300,102113200210140,100040041020102,102403031110014,114200020003431,114420142322140,101002200343110,100140004102001], + 1430010000201220: [110202012100020,102303010241010,102120231343224,111342020011220,100314114322101,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420], + 1100230021000003: [101221422120021,103300121401234,100122200020013,100400320033201,110011402100202,102331104112002,100004130002301,110121112010004,102020131413423,114132002200241], + 200040000240113: [104111102100000,110000102100212,110130042014110,100100014100021,114423100002212,100011401040040,111121012212042,100001020002400,112320030202004,110012102130100], + 200310000000400: [103201411402002,110022000023010,114020302300110,111002100021022,102302120210122,114100032320203,100400300013000,112041210224114,101012000320441,114124414000000], + 1123010401013302: [110401004221204,111112000011222,100322444314002,101003301020022,100102431021300,100001030100030,112012004004000,112044204000441,103141100104002,104110100014103], + 1222000410114014: [102200004120034,101000024002230,101422021012014,111001200003214,102100021410210,110012020021204,101001420312100,100022201044101,102200010204000,100031000413030], + 1030100224102031: [102301031000041,114210002340104,101013224010003,110110131010010,101012104214110,100400122200034,102031004000320,103040001400020,100104224300040,114110400002011], + 1123000244112000: [101000021010022,100022310120003,112004031122404,114341322301120,100040234212230,102210214110002,100020204103212,100000100104142,100200024301424,100101344302232], + 220122120201100: [100021044202120,103102420121202,111041104111423,100014030122210,112401000200410,110110120010014,102202210201312,102212444022430,102002000211004,102043100223200], + 1040104403024010: [100044301030400,111210044410020,111311402221430,111420230003130,100030100423022,112203301101120,111310000013103,101200000302112,100020001031123,100114010111402], + 100413221011014: [102302200210010,102340120222440,112202000411103,114003344011001,100002301021040,101014201030204,102411201112404,101203001010111,101000314000042,100031201030102], + 1010023010101424: [112112014020002,100004414100021,110112131124012,102113101342120,102130241400320,114402010000201,114204122330314,100004340100020,102241120242020,100002141021000], + 1021101030422441: [101301014221122,114110200212210,102102204022310,114040210022000,110012130410040,100104101200201,112201010203210,103042320101230,100020300102123,100120430411222], + 1412112020400144: [100400210010032,102000000220040,102011211321000,102124210200120,102014024011240,102330021000022,100000021221004,100030201220012,100142244232110,103144000112000], + 102401001121003: [101221121202421,100044011022224,111042022141200,102022031321021,100442220030040,102034010220333,103321230110010,103014000100413,110411200402042,102030000241013], + 1032014311200200: [112224111100141,111102214104403,100132004231230,100000030000001,110021340020022,101010001000320,110210020104031,101003204000300,100130334030100,100210301002021], + 1422230110104012: [102322014113341,101022104001221,110021422000000,101120030330110,110331012224112,101002200301130,100004431210220,103401034002022,100113211221220,102204000232030], + 241410140000441: [100422314300200,102141410230020,101134224001001,110020001224021,102321234111310,111122222240232,102340004011311,111134002210042,100013014300034,104132120011021], + 1001020004042102: [110100111221242,132344004001203,114303202300104,114020202201002,102100300233312,111021044400403,102203210201342,111001320002031,101000030312102,114000424010214], + 224002231100213: [101123210321002,101003010340102,100022024212302,114104002204400,110001010130320,103000001404112,103013331403110,102242114032121,111001442231001,100040000401432], + 130010421404001: [100000200202012,114404010003320,100013200412401,100141011011032,100010021034000,103132004002020,100000241000002,100000401002031,114030412303102,100430000030122], + 141000021431412: [100000241033100,114100032340001,102101011400100,102300011002030,100120220000101,102001004000210,100014100420220,102042404432411,1411201002002040,113120400001003], + 1041011020000020: [110201320000011,110200114241402,112214002024310,102000331322102,100302024101020,110020232003003,101020024001110,101241000301002,114021202300123,103000014002000], + 101011111204224: [112004202302034,103300004021200,102122214131011,100023031000024,114210400000112,103230134011412,102021021101204,100231020102202,101000134220400,114204204110401], + 134202231002444: [100122004300410,102000104012232,112400202020003,102000224000011,101212040303123,100021021000101,104240010040022,100011124202310,100030300124130,100001100013110], + 120101020222413: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102310140240012,100014204201000,102103321411004,100400001001300,114113000004012], + 1022002022230003: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 1001021022014111: [111301240010310,101300400310002,102400014040241,101120321040104,100303101000021,111001212232021,110002300420010,102202110230404,112004031112020,100240011003010], + 221021003242220: [103030411422014,103043334040203,110422201312402,102120131401230,102412044040011,110200302024000,113130020101411,102041210224224,112200030203124,102004020224404], + 300344100042003: [103044301431001,102101142002021,102010220220022,103211001412040,101004114210003,102202030203203,102213241100111,100022202042210,100402022200030,100201010430000], + 110100000110224: [100003141040411,101021120323020,114111200034310,102001111412134,101032201032000,102220314010103,112212002031124,112201200414124,100102200102000,100101001013000], + 203210011000224: [102300041004010,103000140101310,112400104044001,102310204023400,114401010001000,110402112220024,114002310021310,100021401020000,100203310430032,110103011141230], + 101122034010202: [100201310000404,111110000001400,110213012040120,104124200021020,103100334030202,102434204022012,111204244100232,100130020020401,111301130002040,102211014034100], + 121300412002000: [114000040010421,112002010220004,103001131403322,102320001000040,102000034013222,102120004134001,102030021100041,103000114012310,103210214042004,114210010022002], + 103034002010024: [101114101012020,102041111020030,110022001201023,103101124003110,110002001231100,103001101403020,101304320302121,103110034001104,102010010200000,110000001321010], + 1402210030020210: [110400022010030,100214121000000,102130411411444,110202204213200,110002131200133,102412241111002,100424104302020,114142102344221,103210014003000,100021300411033], + 1421222110441200: [102301401002404,100232214222204,102012004010000,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 1044000213212102: [114423100001142,100040211022010,100110041021042,110202020004210,102204001123002,102311121001300,114120100220202,102022001130220,101311411021202,100002004240244], + 1100102114320002: [103004301434100,111322432204020,100003300001101,112120202314224,111321102010100,110141204400012,100010011202403,110102020032300,123000123110000,110030014422103], + 100200000032003: [100012400101400,111242212222022,100020100100300,101401140300101,101242000300000,114102404120000,102004021442313,100121211012110,102221220204211,100140304103400], + 320032031014103: [114124404100121,102010200213210,111010002230001,103141010210001,110001010440034,101023111024020,100400400010133,103040204030013,103210004020020,110303202101031], + 1034001210121010: [100102101000203,100001021030011,102231301122300,100021030100001,103230040101112,102001004000100,100013204210001,111121104100004,100010041032043,102321021000142], + 100111234400011: [114000044020204,102320000221020,110142020400012,103131420221204,102120141343312,114321114032200,100142011022211,114230344103210,100030020104423,100102011010000], + 302044400024400: [110041030411301,110001041213031,103301210142043,100002024200142,101110044200100,102411000200000,100400014321101,114100122342002,100010101020023,110033041200104], + 1434220011212031: [114020420040020,102103401140000], + 110000211003131: [114121100220011,102010021321412,102400204001110,111034332202000,114020122300100,111010004111121,111214202212323,110102021120400,103304401402003,112002032003101], + 100001201014102: [111000232113233,100200013102111,100303404100220,131431104100201,101004044212020,123030423110002,102201121303321,101000020340002,110411102112101,103040040100020], + 1212200412000424: [101204021022220,102100031320041,112141102011002,112133134041003,100000100001342,112102100202040,114112014000241,110002001222020,100020204312204,110200111304014], + 130022034002403: [102110000203003,100411400030100,102120221120200,114002010040032,100400012201120,110311011330111,102020022000021,102000114010020,102102000312101,100220204342200], + 140312100301010: [100020004313034,101400120320033,110430030000041,102140411342420,102020004000301,114114204001401,101042214000121,102000121102220,100014300000200,100210130430132], + 112403301042104: [112224111100141,100040134340044,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031,102041210224224], + 1131012304201002: [110131142010001,100002431220022,102100204000022,100312200422101,101020301032322,112002320232203,100310020043043,102211200240102,110004031201104,111010020020434], + 1000031120010024: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102311120222404,114020404020132,101220111023331], + 1004010111024112: [102102031320011,100041140201301,102140041342420,102140021410400,103011100120201,102002030240400,100000120202410,102300004110122,102202334040220,101001100320224], + 1031320101004220: [114213002340022,114400210002021,114201402332241,144200203310100,114211030021301,114030214020000,100044001020100,114022000013011,100001241021321,111232232222210], + 231000002000301: [101001040340004,101013004002011,101300011002044,112022334022101,101011324004222,103210241422022,114411312312124,103240001403000,102202204040220,102121010212140], + 1042201120000101: [100220100110400,102403004042342,101024001034211,111122004101222,114020040013100,114000222213021,100000020401302,102103214000210,111001100020413,111301204111233], + 1404202021310400: [103110020210000,103001010101001,100022141030334,111020142144200,102303001102431,100141334301022,101420200304000,100221111000020,114024102212214,102102000212010], + 130200230200413: [111302204133040,110300000011120,100000221020004,101213020304210,111020010022310,114011302300101,102420021400002,103221200100302,100424444303100,102201000201101], + 112343234002101: [110400014223001,102040404010111,101021014224121,111301000000031,103020200123211,112040222311040,114230330212000,102204404111433,100420320030100,114040214101433], + 100010300103030: [103301244010210,100101031041022,100000240003101,100041234101100,103001220100000,114100000031020,102401024020221,111231012242301,103240404032240,114444004140210], + 100031200000201: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,114013214010111], + 132120024321401: [103001024002110,110100012120201,110020204200342,114411200031024,100431200032321,103022034000034,103303031402100,100004214301320,110302004430024,102023301101100], + 1411211020410042: [103202134021411,102321011102100,102104004000123,100330104310102,101101000331232,103120234000102,114030310030022,100112301021402,114011004123232,114402022314101], + 100130113001011: [100030231000344,112311011101001,110100124402042,102120404134413,101100200330040,110040212000010,114102124000200,110211202030440,114440012312003,100000001024104], + 1022301021301303: [100210014322020,114010224101022,102100220210000,100230410112111,100030131042200,101203004042010,114221000210214,101410044041001,102343022000042,1144030041011004], + 1101004202110100: [102111342001302,100000000413211,102322001000202,100021031020121,102011220212320,100011310420210,100001104100010,110130224402011,112400010200232,112030302300102], + 1422200102201221: [112230122030224,100110130000123,100200201213011,102030000221134,100210304340400,102201032021231,100010020003310,101042204010110,102000200204141,100022024300010], + 1003202010101100: [101044120322004,114020204101200,102304021004012,100013031024000,102012014002001,112302412022221,100140014100401,103120021441003,102311441100020,102310010133100], + 123410031001034: [102302211004320,102043340202001], + 120103000222300: [130303204002004,114120242312002,102110201402002,123102202010320,114100422341111,103102104003010,102103130200001,121133013031103,110300222020112,101112240323103], + 1101001210301000: [110202012100020,102000311102212,102303010241010,102230130203001,102021401324232,111222102243400,101004410311232,101201034010420,111220410010144,100001221021031], + 1000211000121100: [114000034010043,1040014000334201,110220210110004,110221401304401,101310000020110,102220000230020,100111204004442,110420001101321,100212211003002], + 110101010200040: [102401004021010,102124004023202,110002100012000,100001104210032,114240102322101,110033301230100,110200202122114,100001100400202,102100304000112,101021344000433], + 1410320003040204: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1020002221310220: [100021214313034,102121111023020,110000212134440,101020134210001,103010020012322,1341322100304120,103002020124010,102120010221204,1000210011101210,124000002040110], + 1001022200103211: [102123140310122,110101214402023,110400014224001,111000144410222,100040001022000,112204022020043,112110112300112,100410124102101,110222241300101,103222120100140], + 1103022300121220: [103034010121101,100002301021040,101440004042202,101014201030204,102422411113113,114412010002302,100021420200400,103100201424200,111141312211004,100341044310403], + 100400020110201: [102302014010000,102342324111110,102000344002023,110000010440200,112212000423203,100402140022003,112313001130400,100400100020012,112110030200020,101002004004022], + 1002000303000110: [101001111020310,110011234213300,111000000043030,103120100104000,114121104000220,100011004201102,110011021320030,112002101120233,141002100010000,101200120302000], + 141030210010400: [101200204040424,100120200002330,110014000112012,111224024130401,101042021021000,102010211202301,102201211300230,101202020304010,110010002000212,103014410104041], + 1122002230110012: [111311002203000,110101114200020,100332111004200,101033220300404,101440410300202,110013002101010,114401020031002,114020204104030,103243024023000,103232031411102], + 310021210012441: [100000304340012,110404211211000,114120004000010,114011012210001,101301101004120,112120042011000,112011300220120,101202204232022,103230021411101,100020200100120], + 1020032201102134: [100020121020300,111110010022310,100240010430203,103432001210300,112440134041000,100210240013000,110401214242400,101044214042221,100033201031241,110010114210202], + 101424120000440: [103240411403020,100020101031131,101010000323030,100043420411130,103310220113140,102010124004041,114200202330330,103101101440200,112002201122121,100000101031020], + 1134401304200003: [103210304032003,103214211400431,102140011343010,100033210124132,100222020403200,112140010220300,111300002201131,100302104011002,102242040212122,100003020421240], + 230100000320020: [100034204311021,101121024024120,100102204231301,112201104011200,110003101312402,110341024422102,111031030040220,110024120430323,101403200302022,111400102104003], + 1000402040020200: [100202221212300,101001204211221,110004022000404,114240210000130,111240000001101,110010012102144,101020200301303,112000111120040,101120204202002,112030012300122], + 100100241002012: [110131441300210,103024014030000,103002204002420,110211112020002,114030100042110,111000024110032,111012030010120,103401411211122,103423034002121,111022144120001], + 1120230201140020: [114021000012031,122000430101030,100311000141022,114210202322020,102001101130200,124210120032121,100314020103003,121412220023000,142200042211002,100124230011120], + 1100000000031100: [114031022302044,102012030213014,102003320200411,102002024000132,112440114040203,100401001011010,110100331003020,110031200023240,101114000330410,110040000022001], + 242423020001001: [101220014012231,102010130231400,101010311003410,112210132031001,100020424214024,103422430124013,101000140310132], + 1200032202204000: [101032111230411,103010110120020,110100032122000,101020210301131,110304002000013,110200001314040], + 1211104214400310: [100403200010022,112003011123014,100000004310100,100013031002413,110020012001003,102212004013002,101101004204000,100221011202004,110020110040001,100020011031110], + 104202031141140: [112230002030102], + 100021403300304: [112120200204001,100030024301424,100024234202001,100020044201000,112102010201010,112402010201300,110032224422403,102102001342202,103244440103211,101340424220200], + 1101120311020442: [111203102223243,114311400000224,100040101001132,102113232001100,101110044000400,102102021002000,100303111202002,100101021021101,112001010242211,101411044021403], + 1002000110032000: [102002000221000,100011224100020,102242130202110,102001111412134,102110010202100,101104410330240,100001040413220,102140201410013,103220204033101,114010000010110], + 204222104004002: [102133011413110,111001200041102,114022424102243,101223020300040,102034324000220,101230020303000,111340130010314,110200422121211,110214220002020,112220414010040], + 100020000100220: [111104004400200,101001111020310,114002102301424,112222002031003,103141324004100,100020004200210,100010030104002,100011004201102,100234120400143,102300010241302], + 1134040411001100: [100202030140400,101024130300401,100110201040011,142011423130201,102000201102031,114031212300003,110004022101020,111001122224141,114224400021312,100001010404000], + 112003222001110: [102100120214000,103100004000304,102201140211010,100042121034200,110112402141330,100210001001303,101001144012310,102140030210121,101003120304130,110000001044030], + 220210040234101: [101000141031222,100012424200031,103001331400021,102043120222040,114023024101231,102002031130220,102101041341001,114241202320300,100010001040020,112431402022004], + 202421000043010: [114020202300410,102140201343122,100121100402000,241220023100031,123010242104441,102301024113000,100000411233303,110204420000422,100103414042003,102030014012023], + 120023324040003: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100000100120300], + 301111300000021: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 210004100000043: [101010201030113,114012012300010,100302000140001,101000004003224,100241224311010,102001340200322,102021014004211,100000211030342,100000010100100,100210021000032], + 1221012400400000: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1103001200101014: [103102011422101,114300022300010,102011424013030,102201102000000,103012240110400,103012220110230,100120421004010,112230124010202,112220430200204,114201304004220], + 101202000100402: [103340041403223,112002110220340,102002220221002,114100234004010,100030410102000,100000221020014,102101010210022,102003224000022,100010031222001,103001114001210], + 1001200402413320: [100400224300040,110040102001121,110310304430141,110201002043201,102140210230000,101001004012413,102024244002012,114231014000020,103321024020142,102011111414201], + 121122022030420: [100023421041402,101010224000130,101144134001102,103002144042123,110012220002021,102304204110040,100210020410010,101000414002041,114034422302101,110421104242000], + 202321040302201: [112020042344001,100241000430420,110004302120001,100221201210110,102110104000020,103242001202412,114042110040100,112001104000332,103041200100301,110002201322320], + 101032030403423: [110020102000133,100000204342022,100001020012120,102101220213001,101441101010020,100001214303000,111202322222023,100002004342004,100200100401130,100123010012402], + 1113100022001200: [114000024100022,101020030332430,101022004214304,101001231032003,101010000323030,101001020322010,114112244122013,103310220113140,100043041020120,114200202330330], + 1100201000000201: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1440102343010102: [114014224011404,110012302001040,101002021141330,112202012021413,100102131200140,110330000400230,110001201014403,112231201102041,111201000001101,110222144212143], + 120220202412000: [110130302012020,100000211021004,102411134020204,114032200030021,102000000224012,110210120000001,101000120303020,102000001133312,100402000020413,100011044210004], + 1104004003104414: [103101200221334,114021000012310,110041001300210,100400414300130,100400231000200,110332030011233,114000210010231,101000100340001,101300240310420,101000344223010], + 220202021004102: [110202004211120,110223224433004,110023342101220,110341010044330,102031144010424,111212114131222,102223400201104,102342120222031,102221010201113,111012030022123], + 1040030110002100: [110141201302122,100023001222000,101002124002220,140300020110000,100003301030120,100101004230030,103044004034040,102103012004030,114034000012210,101044004000132], + 1001222210340120: [100001130001003,102032031440302,103102104000031,110201134243240,111100044100001,102204004042041,110120144204004,103001201221020,102101002004300,102012014000133], + 1004002044003121: [110213100122010,110213001300231,112120222020002,102130100222100,110200204432001,102020411123201,103024041421002,102030004010204,102400321403102,114100214102211], + 1231203124221410: [100011011020440,101011001103200,101002121000111,114023314013200,102040104000040,114022120040112,100000201024213,102110230200201,112043010243000,114440124140143], + 1010020041101200: [102100001411312,114041010012000,100103214302031,112000132402200,103134244000000,114022210020000,114101022332103,110200014242110,101011344000022,110232044241140], + 111203000101320: [100201310000404,103100334030202,102434204022012,100130020020401,102211014034100,111000222232122,114002104100010,102301024020102,100002011040201,102102110231403], + 1041001113010003: [110200002031302,102040021121030,100000204130001,100412441010422,101010200312020,101040204210210,102300310220121,110000201230100,102004014011022,100240201003034], + 1033324002112000: [102100200231031,103241201200324,100240000430003,110030331010011,102121421141101,111020400021120,103402204002200,101024121032030,114003022330324,102022204000001], + 1031044004100010: [114201204111222,100104001041200,103300004021200,102122214131011,100023031000024,114210400000112,103230134011412,100012004101221,114122112202230,102021021101204], + 1001013310000131: [100011004341114,101230000302010,112241010203003,103000204042111,102203204044020,103010101412020,103223424020000,100122214230421,100120010002400,101030131140310], + 1003020110432022: [100141220000211,110042202002303,100320011001200,110002002200300,102002344013100,110443002010003,111200302214000], + 121240000022002: [103020031403100,102200401111200,114003104031111,114000044020204,114200302341234,103202430100244,102302331003300,102320000221020,110142020400012,112131004020212], + 101030000020023: [110130010102101,102000041101100,100042004301301,100000201032010,114010204101202,100041234101100,112204220200011,100000101024211,112021042003200,100211211002001], + 1103222304004311: [103030011404010,100013140102040,101002024212040,101011021020240,114121002204241,100102000022100,102140002001203,101013224000220,102310000240300,100223424120240], + 1002220130044112: [103100021421214,103312200112110,101000221031032,103402304003240,112402404024011,101112024024301,101231024010320,112001021122340,100340221201130,100030204100000], + 204400301220423: [110031034202003,100001211022312,111014004410102,100001124302440,101003004212410,101300021000320,114120014121314,114440122312030,102412300230420,114200434111420], + 100210201401102: [114024222212420,114201234002300,102234010200304,101220020300041,102440011400244,100314010143240,100012431020012,103042024012204,112210204003320,102200100204220], + 120044320332301: [100030220100110,100002114314022,111130202220102,102000100200100,102020400244030,103112100101020,114402102312001,100413131013301,110001102103432,112033300230131], + 330102144022312: [102230040200031,110122001010214,102101204000010,110022300420031,114230230000123,100222024320003,103323001400013,114013012300240,104121001242101,102024400223212], + 1212220200312040: [131402001003121,114420000001024,100304111000014,103300031403210,100022131043110,103422421110341,102010021413001,102040300202332,110010001011032,102024110400023], + 200230041040040: [110202210102120,114001004100003,100041014102004,110320022101120,102131421000411,101412030302001,102222021124112,114000040031021,102400001110113,100404201012020], + 1000401100010210: [111030022232010,100120204230441,102110004030022,100122200400044,110002200043410,114203222324004,101012400320103,112030312300010,110021012130120,100403410013000], + 1440132403010234: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,111201100011141], + 301224100000000: [100200004301323,112401024044240,100031220121003,114302102300200,111042012220110,103312214033030,100030424312230,102410244043324,103001004013200,102002240222132], + 130002044043000: [102200024110104,102102030231013,100111120412201,100134224003032,110311100112142,103200301422221,101130020303010,110203034240000,103002214040200,112220030412041], + 1120224041231022: [100431024302303,100020010010020,110231211300200,112004020202021,110003001101020,104134010010001,101300011002200,100201441000001,110311020011020,100030204100110], + 1021210004312140: [100012320001320,102000331120104,114040300043111,110203111111000,102010201012014,102041204000002,102323204112320,100420404320101,102123414032304,110420220003321], + 1104002000311101: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 200212020030411: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 123004313111011: [110202400003213,114112014140000,100133004000124,112440104042121,114200124000134,100120204234213,100003011231420,103230231200010,100431031014023,102010204002000], + 1142103413304220: [100104024303320,102010310213001,103244320114100,100032011000241,102311011000014,101010300300110,112031121113040], + 1032010210030041: [110301402000211,114000014014332,103030201402004,102304340220231,110420104221220,103200004030020,110240214432004,102122141142000,103041204010000,114432234113040], + 212200030323230: [101030001001022,110230231300100,100300121000420,100402431014100,100100001220400,110330200400021,102100020210143,100030024303110,100142120100230,102220324011110], + 1211212212200042: [101302340312230,100400122201240,100011101222101,101000034000203,100200321200200,112044200243000,100002300421000,100202140430012,110200301210031,110000420020100], + 121101001104002: [110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,101000100340001,101300240310420,103000300124010,100030301030114], + 313040240200001: [100002200103104,102040300241403,100431000032001,100202031002101,102103331400000,100204101210044,102021024004322,100121114230123,102102334000400,114323400212122], + 1110104012102222: [100024001040202,100003141040411,111110014101210,111344032200432,101002100301021,114121222311302,102100301341002,103002124000042,102011020220400,110024000410240], + 1130112340202231: [112113214020100,102010202004402,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,103340004020422,102410220200004,103113010102100], + 200310444140000: [111220202240410,102200020211042,110114002004014,100010114200031,102341041000204,101224110303300,110003020001402,100000144311102,110100200402003,114001000010302], + 1102211001200000: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 1440031100120001: [103112004030003,103100311424002,103040224000100,114323010000311], + 121021001042233: [100004011220200,110024021040134,110301001232000,111210240010100,102400204022024,102430001110014,102002101410204,102000004001020,100011100412123,114401230002424], + 1411320012201101: [101001044211204,100031034311401,100023210021210,102100104000203,110200101200402,100000140100020,102021201410011,103211014030010,100034124101023,111010024402022], + 120101044000211: [110010334200041,110022004410312,100001024102001,110400011243102,114100120223101,102000401442010,321114010100340,100121041041101,102322101000200,101020041000102], + 1002000330321000: [110012231320200,101203001010000,141000211410012,100113300012420,110101322000312,103421314002310,102102010232420,100100001004210,103004000100014,102202421120032], + 211204302112402: [102002410222340,100110000020111,102100014132110,100002031021102,110232232034400,114000002300110,100024214100000,101013001000203,101040121003000,100104044100201], + 211000200240002: [110001202003004,114000122301411,102114101444001,100022121031020,102141010230201,100103240011013,100020210101002,100042420003120,102300220220432,101020120322020], + 130141101102212: [112342210200100,101021020331240,102131221410130,110031011310220,100020400003003,114100234000201], + 201020401210324: [102040431121110,102212000200124,100300310140241,100240134323001,102042000222002,100030010102102,103312241402001,101004200301002,102122412001012,100022001040322], + 1422301023203200: [113122211022230], + 1142000100001002: [101302134233230,100022001040322,100000130010033,101030404212000,114102224000201,100022021041122,100020001042002,100013011020311,100120041020012,102012204000242], + 1042301012221000: [100012404300402,114001310020304,101210321000020,102004021122000,102402011111020,114333400002202,102100024003022,112311301134110,100120001002143,110320222022322], + 1100022000200103: [101124304021340,114012040032014,101002044010000,102100234001041,114030000012340,110001000011400,101204001023030,111103402111200,100003030413032,112430032020021], + 220031222142300: [101002031030004,102301110242001,101002134010003,100021004312011,102040214012332,100111304332002,112020242313303,111004220040121,100132014003120,100240214100000], + 1003410220042303: [104441021202022], + 102000012443012: [114001000020102,101020040300010,100213001000212,100002004212420,102121014002022,100141404233000,114131002342130,101020001030204,100403122201202,102303304020122], + 102121040200010: [101020024001041,100200201000001,102100000210002,112224232044014,112002100240200,103032004012111,100001404100110,110131022014120,101213110310042,112000002000110], + 300032004140021: [104120011242011,114300000000002,110020002104100,110210014220001,102111400202120,111400214442024,111122200021102,112400034040002,101041100300001,100000020201032], + 1020100110003130: [114024024023000,110421102023242,112100200230014,110011414201101,110001000023414,103211404020312,111440120030122,110202002231020,100120400400010,114220432322310], + 1103204101211110: [102000001132113,102202310203222,100042001020203,102002320220202,114130210231020,100004410120102,101020104000040,111222214101043,114412142320040,102100044000000], + 130200124013021: [100020344302010,100002100000100,110030004200002,114100102340003,100100414230101,110134022013042,102110011142012,100120044000204,100001000000200,101034401033340], + 1423003021430230: [111240340004003,102021024000010,111101222244030,112011012004300,102300010242330,102000401120420,102004012043122,114011102210402,100120001014040,114300100000041], + 132000110004104: [112002110220340,114040210021100,102002220221002,114100234004010,100030410102000,112240334012440,102101010210022,100010031222001,110020200001031,100034021034000], + 310010030020223: [101001014001021,112210010201431,100103224301304,100410331002222,100032204311200,102022330212000,112004012000011,100031301020002,100320104321221,112123020420224], + 1421010011200001: [102002014000220,102203004042010,102410004024030,114402320000202,114014112302234,102012401001012,114112000004001,101004421020002,114003002301122,100110210033043], + 242332030024112: [103020031403100,114003104031111,101030301000221,102302331003300,102003111413120,100023101043203,112131004020212,100033001020140,114200122340300,114330420004101], + 102003031003010: [110020102000133,100000204342022,102101220213001,101302001001041,100123010012402,100210131002013,100124031002220,102240014031121,110310212100024,110420022110000], + 100221302020040: [103000004002012,100042100102211,102110030200120,100202140000111,114001032300011,100142044103021,101100010012423,100330020141212,101031010300013,100301010142004], + 210201040124301: [102230021122000,101004004213014,100121021011022,102003010240141,102242024041210,114022234100400,112210102030020,114130120222102,110000222130120,112032322004103], + 1020023401212202: [100121214300000,102123214020000,102022124012030,114002320022312], + 132103410002010: [110004020020022,114032412303041,114322024034312,100100244231020,102040010200101,102200434012013,112000301122111,102100201400122,102013120200110,102020130212402], + 230003400300422: [103023200124021,102141401342003,101012000300312,100110044231020,101000110324210,103001024010002,101010324003011,113020230142210,112440014042100,102300200240230], + 1000100030000402: [104310001300102,114021132202032,112012004004324,103001314001021,114122220031004,103040024041111,101004004213014,111124002211203,100121021011022,112034420220403], + 1041002220022202: [103001024002110,110100012120201,100010104312120,114411200031024,100431200032321,103022034000034,103303031402100,100004214301320,101000340000101,111203002221000], + 1112201221101002: [102441324022342,102142004001013,101213240301002,101041301000020,103220000104122,101401030302440,114240004002100,103000111403340,101404104022202,100000011233203], + 1000012011222401: [102000214001143,102142000224040,114000122300001,112133002010330,110103332012031,102000344000000,112201031104011,100001004200110,114010204022402,110201122110010], + 130100131014001: [100000121042240,102101201403410,114001002200014,102413124042401,112210400412120,102000320222120,114234304112011,110240221202310,102212311120042,103100241442411], + 110002020040310: [112411140200242,111201202221200,114323400212122,101001201000220,111123002210402,102414024024010,100011004203023,102022020220023,101010020304020,100010001043003], + 1002211040040300: [114000224021230,101300244224432,100100220411240,103022101431300,102110004020133,100224010432200,101120241102000,114131014004220,114014002300000,112120004043000], + 121122321030012: [102120231343224,114104144120120,102310011001022,102104001410213,100031214201041,103120210212230,100022221030000,102140201342100,102323034112101,114112000000211], + 130220302023000: [100010300121000,100001020100202,112342222022401,110002202000200,112044002313041,112202311102010,111411130210010,102221224040201,102111201141234,110021420430011], + 110210233003003: [103041220111410,101100202130022,102004201032002,114101012343012], + 112230141003000: [100024000110221,100110020031042,101301014221122,110422102110221,114220040000201,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040], + 110111003000001: [101410411010012,100203011000010,102221104042021,110001040443212,102022014002413,111002134113102,100140021040220,110212320001324,1034200000211010,1340010113012333], + 1000010412223201: [114441040001202,114422000000123,100010330010200,110412000000421,110221004213100,101112314020004,101023300320033,102203221104401,103100020121000,102220104012021], + 130333010240140: [110120144200000,114022412330004,101200221022044,100103104302044,101041030320401,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210], + 203011140201112: [100004001021111,100001010014420,100003000104203,102041410242244,102101220214011,114000424102300,114001214100103,102311110240101,102141020210132,112102314020000], + 1400222002221313: [101022014222024,102203344011410,102103430210003,100012014300120,102414014022212,100032000101014,103030104000102,111311002224001,100032134101100,112010024023002], + 120103001020314: [100010221022032,102404224041131,103301104024110,114024030042032,110024010110012,100000414342003,111143034100121,114040004104121,100031101041011,100001131020300], + 100010233130003: [102110230210000,101124201110410,101423221010210,102200021102420,103020201412410,101010211033312,114421302322203,100200401010040,102101010200120,100200001003310], + 1102304224013203: [110300221220031,110201220000032,100021214313034,122011001202102,202023004201110,114214202320312,101001021001033,100010001030022,102121111023020,110000212134440], + 310430313100220: [102300324010203,102100142002204,102040011121100,111322234130000,110113004402201,100030024303023,100001134100120,114023214101310,110301232000100,114110340004414], + 1111342001000204: [110301011320314,111004014402201,102100200002331,114311034034030,101340200340001,100001000001210,102200112000100,132303424001013,123320003100311,101041400311420], + 101004130040421: [110002412130400,112011010223100,110140304404000,112110001102104,101000011003140,110202022121042,110000121102001,112301031103203,110222431302410], + 1101003301200001: [103242420100012,110224044242243,101400004022112,100100210000011,102200000200201,103110020210000,102201430201310,100022141030334,103200211410311,110000320002401], + 1100220302311410: [102032000201000,111123230011010,102001114002202,1001213310010221,103210000102340,203114302220300,122112002001021,1100000001400421,1112220124040014,110202040110440], + 101100300300024: [102040431121110,101221020040220,114111100021420,102212000200124,100300310140241,100103104302044,101041030320401,102141212000200,102042000222002,101203121020430], + 122204310412010: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000], + 1040004001200222: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1004112041012212: [114300200000110,102000021133001,102301434110030,102100301400242,101300340341000,100111341011011,102401001400103,114421030000000,100130200020214,101000011031133], + 124302130120210: [103000004002012,100002011042020,102110030200120,100301421002002,100202140000111,114001032300011,100240101000030,101003104212220,102302211002004,114030310012122], + 1040013000120120: [114213222330042,102403004020102,103303021404201,100020010420242,110001040133002,100020020411100,100011101000012,110440404220220,100022001043034,102430100201204], + 140100143012322: [110200411140130,110114120120100,103124210100201,111014200024034,102301002004242,112020014000340,110021404214210,101003014210212,100130220400031,100210024300001], + 211201002112204: [114444244144110,114201004110120,100412114304000,103001020120202,101000020302400,102021014012210,102244221114031,112400000200011,111101400011011,100101004301032], + 123420320314440: [110101210013000,100404121014002,101240220300022,103011431401300,110120020002304,100011000202214,110012101102100,102102304001200,100010040001210,102002020220000], + 104130221040413: [114200212322001,100000210100030,100401210020002,100402042200000,110001440041003,100203011004130,100010111022102,100220300410430,110101021201003,101402010301000], + 200033000100233: [103303001404000,101410021100102,100110004101000,102221204020110,100103121021000,102203204123112,112100020204342,100442041001211,101212310301011,102200312000014], + 1022202000342000: [102442024024214,102100330211131,100011014103012,100030220101040,101240021020011,100400020033003,100100110411000,112204130410100,103412114023431,101400004021230], + 100204031403310: [101421100301230,102130124130100,102022020204430,103214021400010,110100022010014,102000324011143,111110420014032,100003131040012,103004044010300,103144220102102], + 1001020013212113: [114022014010344,100103204102201,100021104314210,100023024300210,112000412001142,110020010042001,100001034302344,102113101023001,100020400102400,112020014000031], + 122123001322222: [102342214020012,100220024324023,100214104301120,104130011240303,102320234112041,112420030202242,110012021200100,100120221224010,110000200000133,100112024032033], + 1002323202100000: [103304014020032,100004110000301,114202424001100,114113004120221,111210402244301,102100011341140,1120022020242320,102320231000001,101122031100000,101211011012300], + 200020010004100: [100024140122042,111130032100003,102110044130102,101020424003002,101020130302240,114001104102144,110004030102043,110040000031242,111331014120444,110022002010102], + 1001102340011320: [102021001132040,110402420402001,110021021210300,110021232000021,110404000000012,102000101120123,110221022101104,100020311220412,110123004401121,102203031121210], + 1401330004220002: [110120144200000,101200221022044,110241112020204,100002004104004,102100224000210,114201104111034,102310140240012,100014204201000,102103321411004,114113000004012], + 1002320400132000: [110300120403013,110131002010202,101010010320020,101120101100112,102410124022400,102300424112201,101020004001002,100030031220030,100010100420004,100120300002212], + 101040043020110: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1141010201442220: [101230114202200,100400000020230,112411140200242,101000034212001,111201202221200,102412001111203,102440400200230,111123002210402,100011004203023,103001241432010], + 1020302012421014: [102110141401203,100003021041343,102040034000131,110111200000000,100341001003013,102200011120011,110002341300120,101010011000121,101022140300332,110140412011321], + 204002110140322: [102010400202113,101033044211203,110111200000000,102200011120011,103102234003012,101010024011001,112100330410121,102121001142041,100023120012013,112214200222101], + 101134012000120: [110300324420404,112400230202202], + 204421121232032: [101041010324010,101000004210020,100032300010000,114140404123402,102130031410200,100010300414000,114310134003100,100004040120000,114011014014042,102040411132010], + 1122000200040320: [110031034202003,100001211022312,100001214303000,101420304041030,101000004214010,114120014121314,114440122312030,101012314212232,110042200411210,114001204100003], + 1020121441133031: [112221002043330,103214200103130,101011024213031,102230200204114,112030210211000,101210021000110,101000121021044,101032004214120,102100202001221,111214012221010], + 1040200220043020: [100011004340114,102002204002010,102101101140040,102000021444112,101012320320322,103100214001400,114231402333020,102121001343030,102102030210111,102311014112010], + 100400030221014: [102332320243001,101004204212040,102202014030001,102131341023330,114003040042312,100122014301301,111201200004040,101003204223410,112321041130330,102113100201211], + 203102001212031: [101022014222024,103114204002100,114230004110101,100001101033010,102142002000030,100000201022420,114000024101202,100100014302013,112020021120403,100002114104410], + 131041214120220: [114402020004242,102242304042410,112032012004300,101001034002001,101122414004224,102000201131020,1010120030012200,101024411001024,221104221024023,112220044014012], + 211320002000042: [101003040320032,102000401132401,100110314300212,110022302102330,112032314000320,114300110001212,101032401001100,112101204022303,110102020034012,103400021214112], + 1121104000200320: [114021412213020,110030002000422,103100014031411,110000300424304,100032121024110,100402431012022,111403100030130,102402330230011,102022400211311,110030400004330], + 1102130114123404: [102010011412143,102323124020210,110221030000000,114202222332202,100010024101400,112020220232032,101230034230201,112420102020304,103301011402200,110104104223210], + 100220021003024: [111000100012002,111102010012102,111300030012334,112000021130124,114440430030032,110011004420221,100020200102220,114300232301422,100002124340103,100020211021110], + 1103232022020200: [102401141113031,102304314110202,110210400002012,113032012204012,100204311000400,100403012200201,112002111121013,114211100001224,102112004004002,111011012142130], + 1000104010301402: [100300031003200,101023000340120,102310031100100,114002034102120,101020200302021,102021030221122,114020402303041,103000000104034,112004044022023,101010221002100], + 1401143300244402: [102022030202021,114000104100334,100000111040212,103322201402320,100112014300400,101320420300210,103010424023103,100400404322200,101232100300211,1000000000020010], + 131101211002002: [102023104002000,114010314101200,111114010020011,110304044431200,100001204302200,100310111001140,112122104040040,102103131122203,100000004204201,114002104011010], + 201400420001130: [100413111001202,101201204010202,112342411130020,110201304401200,102203320200340,101204000300001,112004421133402,112203224002121,103100000122400,112101220200431], + 1014002010101000: [114200212322001,100000210100030,100401210020002,100402042200000,110001440041003,100203011004130,100010111022102,100220300410430,110101021201003,101402010301000], + 1000102024410000: [102424204043100,100113220020101,114031000022030,100300211000020,101410401010030,114310200002400,103211220100010,101202201021310,103044004010022,114130020222342], + 1000012010013210: [102422114040010,102020004001311,100101101010100,114103212312012,102321044112101,100022024100041,114231212342200,100020011043020,100021231020200,114201112322020], + 1020023010022302: [100002031120341,113020001020004,100003044210040,103243401401133,110012212132410,101210014200430,110014011320012,110400022122040,101111010020120,100223400002001], + 120030002313204: [114402404141241,100200400430003,110212022133311,101041210311410,110022004211030,101210021021243,100140024230240,112230240412241,110000204203220,102214000210013], + 300210020000003: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,103030040121410], + 110310000210213: [114110202310100,100112031000231,100203001000312,112034100224100,101101421100021,103400001200200,110331241332440,110120122010133,100210301001021,121030014300011], + 111101040102020: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 130123330014210: [100020330100100,102110021342213,112002310211210,100010031020102,102440031411200,100023014340130,114214034100221,102200204021004,110012001100010,100041430100100], + 140004423000020: [101221414041100,103041020101400,111300402200003,114141024004011,110022341300320,101021244012200,103040000000212,103000001410123,110202221212123,101300004211000], + 100022210133110: [111000000010022,112110001103200,112044010213042,100400100013220,114300202300030,103401140121121,112100122010004,110010214201300,100112000400000,101041004000412], + 104021002242002: [103122020213112,100104010021241,114101100211240,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,102000034013222], + 223241001220000: [110241024242442,110124002040002,110444010032242,104132420010010,100001041031013,114212102310100,110300112023012,110224200113042,103203404020010,101000020301410], + 130042104003431: [100002201220230,110043000044000,110002420440214,113000010132312,102202020200142,100020224312010,100004204230430,101101301100110,111040400003000,100010111222000], + 104020001440042: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 120000432013231: [112200224002440,100000311022110,100202004324201,102041020200401,111103214101012,104103012102410,103200100100303,114011204102241,102123001340111,102202004024001], + 110420210203120: [100440031001120,114203042330220,102020200223310,100020001041410,102032012000101,102102231400111,100032421040120,101004201001232,112102102302000,102141231343401], + 1004204100011420: [100430021001320,114042102330002,100014001041000,204020131034103,114113404003030,102310030240210,103214301421201,1000001214032041,102100204001030,102200400234000], + 110041110341222: [101001040340004,102424204043100,112022334022101,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 1012020002410120: [100040201012040,114100222310230,114131002342130,110002022003101,110224130002014,100403122201202,102303304020122,100310210142030,114132012200110,103011011410312], + 1042000021003221: [102343230224321,114201104111034,102310140240012,111130210020000,100141101044100,101022121001000,102102201340311,100001104301200,1001300002020110,102014204013110], + 132101034304010: [101214104041040,110104231221040,102012204010044,103101000100022,100020141044111,110401440001204,110204310112224,100042110122000,114400322311044,101021021002110], + 1031302000233240: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 1011043202114020: [101230040301234,102303014024221,100010314103002,110310321232001,100100224304110,112000000211220,101020024210020,102000110221011,100022020412310,114103244123211], + 1000012200213001: [100212424322433,111142000011122,103020201401020,102000401132401,114022020042232,100200410434002,112130030422202,110002022130324,100221124121143,100414300433033], + 131003032313314: [100000121024021,110111041011032,110243310101220,100020010022143,100003014244002,102100311400022,101000004000400,114003102303200,100000044310330,100011000420231], + 124123001220000: [100003211020020,111000240044102,102300000220000,100011200100023,100010044213301,100330204322010,102111211401000,100122124300402,103031114000000,101233124010023], + 1141010002240001: [101003201002421,102034004000133,114440012312003,102112411140024,102113000210043,102114101120004,101010011034220,100421111011000,111232024102030,100020104104100], + 312200100100000: [110130010102101,111022412140224,100212034221414,100222100402024,100121301023030,100404000020000,100020224310403,100020424102200,101121401110420,100200001211010], + 130104120020410: [110030230041304,100043200201202,110102110122210,101240011000120,102020034010243,100140001040042,102111214004020,103212144000440,101422120334233,114243122320133], + 102020021202423: [100440000030040,100023101001004,102001014013004,102101000233302,103210210100210,101013101033100,101043004211000,112340340200112,100001000010010,100002121021340], + 121000042040044: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1012002030041000: [102014001130210,110002302201420,102421004041011,102240040202421,100130004300103,103000404000100,100040004331010,101203001022300,112142441100101,112420030202242], + 1040002030420224: [114113014000010,114202400003330,111201222220201,114140204123004,114330004003002,114020210040010,112140030420012,100002324211100,114440100001332,111231042242020], + 110340103023303: [110102401201204,100110004103122,103020200141000,102414034040100,100212030414010,100412200002013,114312004002020,102020041321410,102300020220011,111340300010010], + 100021223010410: [102214204030204,112011312002001,101344331000033,100031001030010,101200100300130,100103000420004,112010040224120,101110104203101,102030214011002,114312000000010], + 122300010322102: [110001022000001,100021004310222,110020422131120,100001000100000,110202222043022,110313312021120,100220214333200,110330234422000,110243000001123,114024400030020], + 100240330023040: [100003101032010,100000204100040,102410111400000,102023104012330,101423221102322,114001412302040,100301441003041,112002004004131,102131014030410,100000010002403], + 1000330401010002: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,101022440300020,101402010301000,100000220111021], + 1000240301001004: [100102030022032,110004002104412,100300330140221,101010004012023,114020444011203,100041101020304,114223104000224,103414310101301,102300041002342,103311041404230], + 221030002000232: [104111432100240,111102440020002,101000200340220,103312010113222,100034110413403,101230111202201,102123411402002,100014114101200,101042201030422,112410144044044], + 1001130441201023: [110103014401023,100001044310021,114030444102123,110001010030000,110021404214210,102024000201400,100130220400031,103244411400010,100000400100142,102002034001310], + 111033203043100: [111240220002100,110030344201413,101001014001021,100103224301304,114000100020200,102102100231000,114040202330200,100410331002222,100032204311200,102202111110404], + 322122003100301: [110031132004101,100030204311001,102001314010010,100000340004033,102043002003004,102001000222212,102020210213130,100023004312402,100110304032200,111002200022030], + 1013001320000020: [110020001310000,110214024430312,100011014100041,100310201003000,110412121110214,100212341003212,110142300120000,112013212032000,112010220224003,112001040231401], + 1104120301033130: [102021024000010,102300010242330,102000401120420,114011102210402,114300100000041,102222014011300,100100121010022,100002134204321,102114201120000,114401132311113], + 202011103000021: [110100001200320,101243024011000,100000214101311,102200230202120,100010021221221,111012202111021,114410110004100,100200301000032,100102310402243,112410202020240], + 1000220240001243: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 100432020213041: [120004030002401,114303212321010,122122400100233,124210002004022,102104240200102,111241012204330,114002022300021,114210010004204], + 1422023004220140: [110111400400013,102101300210200,100041044100100,102041014011220,102301104110010,101001000322303,102320001000040,112300031103011,100100140024100,104100042101240], + 220430002102130: [102000010202042,102020001100001,101011014010102,102020324002022,102000144012140,102001104001214,112440104040110,111004410022000,102221241110321,124301340333312], + 220122412202010: [100300031003200,102310031100100,102230121123030,114020402303041,103000000104034,100002021020001,102000110224002,101022121000241,111100004100400,102014000220344], + 111000220211012: [100013100100014,100120234300003,102100014000422,114010422330121,110020402100200,101401424024210,103044001403210,111300122200243,100000101040410,102304010242101], + 214030204134210: [103212000212121,112002010220004,100112110020301,103211014000111,102000034013222,100022301000112,114121030220301,102030021100041,103210214042004,112002042310020], + 1000440040020013: [1010400230221020,103034010121101,102302200210010,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122,102143202000400,100002301021040], + 112022100012210: [100000200202012,114404010003320,100013200412401,100141011011032,111222214101043,100010021034000,103132004002020,100000241000002,100000401002031,103230430101003], + 1140200040312303: [100000001220044,101321001000010,102022200220022,102140114001021,100040400100203,102410111110002,100101041040330,102000100210400,114102302311211,114034400040402], + 1120310221022021: [102012021321102,102141000230042,102002000221000,114044020020230,102321001000211,102242130202110,100010001040020,100002031020102,110200440000121,112400204040200], + 310204001001300: [110000104200413,113141002412032], + 1414420013004000: [101100104000222,102324141000002,101010234004042,102041224010012,114340102322021,103040044010112,102102000312101,100040320003002,100131001222020,100033021031120], + 103324000011102: [114010200011100,100102110412002,100000204214001,102013024000211,101420000300100,111303020011022,110030122001102,114200100002242,114100114000220,101200304010130], + 1400032011022112: [100012230204000,110143101120300,101101200311102,112401402023020,103142104001331,100200204123011,102012024040044,103031120143010,100103401003022,100000010004223], + 102303404030230: [101020204002030,114034220041220,114000204101231,100024004210111,102002100222202,103343010113030,102013000202010,114040202214201,100200001210240,103200234030122], + 1112444322313010: [114423002313120,102302004110032,103100010101002,102300041004010,100241020000000,101403004040100,103000140101310,100000424201102,103111240223100,110040004412402], + 201222004000012: [103233020100000,101000100342211,100120414231002,102011201320040,110400230404040,100001204301011,112010334002223,112234000202010,102222011121001,102000124010244], + 112100002032200: [110111032140220,100023101042010,102410111400002,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,114200022343003], + 221310201022220: [102100044001000,110041214411012,101000300301420,101000101022043,112400122020014,100222000000120,110120000402004,101000000303020,102101401340100,100002101031040], + 131010044143200: [110201201211024,110202000000310,110000010120043,100422314300200,102141410230020,110020001224021,101110020013040,101012410301010,103120001400003,110003302000101], + 211422120110000: [102102101412200,103003000142012,1002201014202430,100112430012432,103330400114023,102403004020222,100002301031043,100040321042021,1211200224022400,100034231033001], + 1231242044002020: [100410410002011,102101224002210,110311232120010,122203322100011,110330022021224,110123442011041,103021000110211,102201324110204,103010141222231,102102140230141], + 130214040211300: [101042014003022,102210020240030,121401221221000,111134344400330,110020000010044,110111044402003,111043124112002,114300410001304,111012422202203,200000300421000], + 1022010040400121: [104110021244203,102224101113104,102103022002001,100312331004000,102102224000012,102100102001032,100142431013000,101000031001011,101100001102230,101010130321200], + 1100020200404101: [102340221000300,100110020031042,110422102110221,100402002201002,101011014002032,111004100022110,101002201140040,100211000412142,100141021004020,102320234030000], + 1002113311404312: [100440031001120,102203004042010,100020001041410,102032012000101,114014112302234,101004201001232,112102102302000,102141231343401,101231104200000,102112011401424], + 1120000132041101: [111030212113431,103222004032000,102233034000002,110123011200000,101122404022022,112130004021000,100100200021431,112101202012010,114240004000000,101100304021321], + 224000232002220: [100003030003020,100001014100021,100001034310012,102030414003000,101342020314000,110011300143002,102112104004041,102110201023020,100022244300030,101402011104010], + 240020030104010: [102000004002101,101403014020203,100402004300002,100042030120422,112100000200031,110003032000041,100003200120040,102143211343014,103300234023033,100112000410320], + 140104300101112: [112142000203203,102100014132110,101021210300311,112102002011134,103020001420020,110232232034400,100010001031001,100024214100000,101013001000203,100104044100201], + 123001121203243: [102301004113010,112030022000210,102320214110001,114000312331020,110002002104100,102301214110003,102144241343120,101010021000112,101111420334431,102334004031222], + 222022110330001: [110342022000001,110000024201210,114403000001001,112311212021024,100030030422421,101120020304200,102020121321033,100000421021000,100024330000002,114100030222001], + 102400010401030: [102121100212102,110020402120123,100030220004324,103002021410120,100004301032422,103040001223140,114221112332002,110002410023032,100010400400202,113001012400112], + 121020233202002: [100000111021003,1012321211130014,411242003002123], + 202023130044140: [1010400230221020,103034010121101,111300400002313,111101040014040,114021040010311,114140004123122,102143202000400,100002301021040,111020002202333,103221010100230], + 102004430222400: [102402024000034,103012024004312,102214020242110,101140320330114,112120020230024,114234004000210,103221021412001,100000204100304], + 1002043411001003: [101121211101004,101114101012020,110002002000100,103013000104404,101001304001101,102002112041034,102041111020030,110022001201023,102011000200113,100000040001141], + 1010201000232002: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 112040220341200: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 1104300002032043: [112224111100141,100040134340044,112004310224204,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031], + 1204001101332012: [102000220220104,114202044111100,102102044001132,100020221030411,100010100201100,103021004000012,102300211004013,114033400030122,102201301110113,100102211010210], + 320034002102344: [101101200311102,112401402023020,103142104001331,100200204123011,102012024040044,103031120143010,100000010004223,100042021022002,100101130101111,112000210230234], + 221423010221012: [103021024013303,121000042140301,1300102201211020,1112301032024000], + 102122001042002: [102113020210120,102201101122100,110202102121414,100102114100420,101012310342300,102321320224101,100002404310212,100020004310022,114012212302132,100430324300003], + 1201112102020024: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 1413022211003112: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101042001021012,101100104002023,103230011412301,100400000010020], + 1002022000200002: [114203042330220,102102231400111,102100422004010,100032421040120,101004201001232,100002020101023,111100232241200,100011234202334,103343010113030,100031404302400], + 1120321001000103: [102000100222110,102302231004020,103001000141212,102000001133312,102202220200320,100402000020413,100004341021204,100010121034013,100101201041310,114102242313010], + 131001424120202: [112144002012040,102110040210100,100014424203222,100120200402020,111002014122111,112013002310110,110200400010001,110232200421003,102140434004314], + 1422022000120400: [100012320012022,102240221121201,100003021042014], + 101014034044122: [110320202023400,110441234224400,111431110000042,100302141003012,102004441124110,100000301221024,101224322120022,110104422010121,110013122130200,110200010014000], + 101102013010121: [103032221421243,100120004300002,103210030110012,100112224000220,110302010102310], + 241002001412303: [101400331014100,100002011233223], + 111021400102120: [111210000001101,114013400011030,101201104040034,101020111030400,103004104010210,100202200003011,103210210100210,101013101033100,102204204042220,110100301000100], + 140324210404000: [100112021020320,114212104110100,102300124023122,100000104100102,111022134112141,102001040222000,102101004000001,100121214300000,102001201442022,111103214104101], + 243420110001000: [101100010302233,102300341002000,100100201020222,102142210212103,102310201001230,100102111040112,101300004220004,100340121001230,100131401010130,114210012331102], + 123001440030004: [104120011242011,114300000000002,110121100004131,110020002104100,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,114032234033303], + 1121133012002124: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 1000101011412220: [114014112300100,114030034013101,100000044204004,101013004001421,103000014011004,101020224210014,114202244101041,100122310020400,112423102010012,102112022001414], + 1042021430010022: [114002104014300,102000311102212,114032104100141,112301312020123,102000201101332,100111304300020,100040404202000,102104011413013,100012011022000,112100000200003], + 1241021303100120: [101040040300223,114234004000210,100100001040410,103000200112220], + 112300400022304: [103122114004113,110030110122402,114322024034312,110000302123230,101344140314114,100100244231020,102100201400122,102110001141443,100323024010040,100234004033234], + 1001402002030104: [103220120212134,111103314101000,114140104122430,101100010302233,100100201020222,102020201413321,102112100224122,101002020303222,100131401010130,114210012331102], + 1122000010012011: [110030122102303,102300001002440,112402034013000,101011020320030,112202040411432,112130004043234,110013020024300,112101120201010,102010211120200,100400202201400], + 1110333204411202: [114031004022301,103004324010014,100123221201001,114000042300000,102221144011031,102004131102034,102034000222030,103310000112400,114200200004000,101210014042024], + 200412034401342: [114301022320021,103344200113430,114101104102004,102440024022132,112100102012303,303020404011031,110432112113300,100141014232130,110020202100303,100400032200000], + 1403011410021221: [101300124221002,103311100112220,102112002004120,114400004141104,102142234000020,114402044140023,100314420140013,101401204040200,102132004004123,100040021031201], + 122103302004140: [100111334330000,110023240021020,100300433210004,102240100011000,100400213242110,100020201002004,120021202100230,102320120240200,100000012221111,110102301010411], + 1001042021343004: [100012134302230,102012110232021,103300201400340,102002230200001,100020000100311,101444031100130,114404214140114,114400032310444,100120031042012,100000101002424], + 103114102420124: [102300001002440,112130004043234,112101120201010,101000224223002,102101101021304,102012011412102,101040201112304,100024204204210,112422342020141,102202000232032], + 100303300001220: [103212014020132,101022000302211,101232020300432,103011200100000,114020204024101,101031320320042,102122340200200,114000214021240,111111000020023,112012112300040], + 300211040102220: [100030324200410,101000001111200,102300404024300,102113200210140,100040041020102,114200020003431,114420142322140,101002200343110,100212024322044,100140004102001], + 1022114310032034: [100010001043004,100020101230201,111002200021141,100410144320420,111200044424130,102331214112200,102202031302001,103301000140031,111100222112000,112003102000220], + 113010000000223: [100200400430003,114420102323300,110112030401012,110212022133311,110404122110112,110403010000304,114100040214000,101210021021243,101010200320244,102214000210013], + 1010042240201220: [102400100230000,101022121001000,102302020212101,102300104110002,100030004104210,110232110004010,103021201430000,101002320322420,102220021110200,103003004000110], + 222300242010031: [101122414004224,102000201131020,1010120030012200,101024411001024,102123332000002,100000020401203,100202211200032,100020140120213,114020012211102,101221400302004], + 100430420023010: [101221020040220,100103104302044,102020004000014,114242410001010,102000220220104,114202044111100,114212100211223,102102044001132,100020221030411,114443114123130], + 122200101300000: [114030400020232,114010204022042,110101202010123,110000011220401,101240300302320,103001024000200,102421020202030,110011014203122,110001031300042,114100214000010], + 222111040000042: [110000100022040,100302420120212,114004142244000,102140001441301,102002004012310,110000011220204,111200024102040,100302304310204,102103204000000,101330120302103], + 224100000424024: [111000100012002,111102010012102,111300030012334,110012000141104,140300020110000,112000021130124,100020200102220,114300232301422,100002124340103,102412140201410], + 1030010211000220: [100440024301100,102022200220022,100101041040330,112122334022424,103341124011404,114010214101003,100031130410243,112400222021010,100102101041221,102231101122002], + 123110303100011: [100024401024001,101141011141300,103101001213344,112020102004301,110310211331000,111031000041022,101324314210203], + 1001112241101222: [102420424042020,100010001032223,102111024000402,114321002320001,103220011411101,102001011100100,114402104142102,102311120222404,114020404020132,101220111023331], + 1433200344420042: [103134014000340,104103100010141,111101222240010,100040210411102,112014022314210,100000014100024,102010000221204,100110004102034,102040140220220,114010400014304], + 202001012300230: [110102042010220,101020124000413,111210000001101,114013400011030,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 231110034011021: [102114000202302,111042000041011,101030201111010,100023124103021,102120411023000,102000000240101,102201110212212,102020214011010,102201301121001,100000121020141], + 110200143340300: [100302224314022,102202121303004,4000102402020203,212212122411010,403140033110010,1042001130040011,400220020302030,401000212302000,1104240221103101,321220000111343], + 101421210111002: [111000242201231,114030220011120,110020442001124,102040101121143,100010021211303,100002210000020,102100401140202,114100000031040,114311040000110,100000014312111], + 1240010013233101: [100230000102310,100040004210202,102100200202110,100220222000100,110401304243400,101430221010100,102130000201200,103304404012414,120440011014232,122042111030110], + 102020443022000: [110004020020022,103122114004113,110030110122402,114322024034312,100100244231020,102143432000102,102040010200101,102200434012013,112000301122111,114001110033210], + 132242000010121: [102101201403410,114001002200014,112210400412120,114130200001000,114234304112011,110240221202310,103100241442411,114000040022014,102142021343003,102022104010020], + 221021130001210: [132344004001203,114303202300104,100210304340400,112020044000400,111201314412204,102000200204141,102100300233312,103041130110112,110023014202232,102220021304234], + 132244142112342: [103043404000202,102100422004010,100032421040120,102420000202033,101012400343401,100002411021201,102110010210330,100012020410400,102122111402420,100031404302400], + 114222214100402: [103100121423010,110031024200343,100110411011010,114010144020122,102003121410401,100020104104422,114112012310000,114002340024001,102220111122102,102030200223000], + 104002232134021: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,114321002320001,102042000222002], + 120310032110140: [102412004000132,101233341022410,103013314020203,110120211001001,100300400142001,114100210002202,100000120121031,110010102030411,114211324100004,101212311020000], + 100301101400040: [100020121020300,110412121110214,110142300120000,112010220224003,111110010022310,100200001001300,100012104313201,100002201032401,111301332200104,103012011412220], + 1024021010120212: [100000200202012,103220011420242,100031201030331,100141011011032,100010021034000,103132004002020,100000241000002,103201101402422,101040004210301,114400100002010], + 1020000142002200: [100020114101410,112102014020004,102104020200100,112012302000210,401110200120200,100100200104200,110234020001000,100110140003001,102100030200212,141100032211221], + 1000032141200121: [101000024004442,111423000022420,140102120200000,110131001002021,100002100000100,203201100012000,114100102340003,110130030020000], + 100304110420202: [110004110141201,112020022000410,100010004203011,112210210200000,114112022340200,112033012312000,111230202223302,111230010000204,110201002224022,110010012130243], + 114201103003000: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102311120222404,100100000422320,102100012002000], + 1022241430000010: [102310000222133,100112000402300,114104310000002,100101220021240,102220011122100,100001001034141,102040244041000,112013032002214,101404441100012,112123102010143], + 120002012424002: [100012320001320,102000331120104,100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010], + 1020220041032400: [102100004130301,102113020210120,102201101122100,100102114100420,101012310342300,102321320224101,100002404310212,114012212302132,100430324300003,114230222331120], + 1001041220131003: [100102011010403,100220000144000,101044334010021,100041230103400,102343201103202,110114140030310,111210022244041,112001112310011,100014020100410,122102040020030], + 233144340323320: [110130321300301,102311104020002,111020104110202,100311014020202,102240200242002,101000411030013,102110312004000,1003110100202043,103012004020122,100313041004240], + 1004201001302002: [114402020004242,112032012004300,101122414004224,1010120030012200,101024411001024,111102044104010,112220044014012,110002044410023,100010410420002,102120011340102], + 112402320401011: [101400100302311,102141000230040,114013204020122,110030024202101,110100224200101,101122201021010,114000102300220,111011022203010,103021424001214,101230000301220], + 1040411020320000: [100004001021111,101021004214202,100003000104203,102114320203000,101011001103200,114001112300001,101003104212220,102311110240101,114002002300302,100000304301120], + 103001402220032: [112100124023402,102000224000011,101020044011003,103122000211420,100032301041204,100410304320220,100002414210010,100012024200214,102402000204104,102201431120044], + 1412200200200012: [114014112300100,114030034013101,100002100412200,101013004001421,103000014011004,103200000101100,114202244101041,100122310020400,112423102010012,102112022001414], + 1012301002111444: [103340041403223,112002110220340,100000221020014,102003224000022,100010031222001,103001114001210,110043222124300,100100420400004,102023001320134,110004002130020], + 1201144002420322: [101011004212201,110032022002020,103031234000122,100400110020244,101042001021012,101100104002023,103230011412301,100400000010020,100124021201021,100411201002420], + 130240304000021: [100022211042104,102020014002022,100100204230423,100423202201102,103131000120022,110004021102300,100130001021040,103000034040110,103100214000400,114200122301402], + 1024133010302002: [110130302012020,100000211021004,102411134020204,114032200030021,102000000224012,110210120000001,101000120303020,102000001133312,100402000020413,100011044210004], + 1010420010110213: [100402040012140,100404400022030,101001231111022,100404002201203,100402420022012,100021420004400,100030424340022,114140304003102,100110300003140,110012220020220], + 100200210113401: [101214200300004,114330120000222,100200241001404,110001440004103,110010022202202,100003030202011,1000301003020410,1014111023013000,110320044420300,1003300020121100], + 1001400300112324: [102000000210211,111010204401023,103142444002002,101200010300001,102211300204221,112002132303300,114420232314210,100301004321221,101104100331011,100020000410313], + 103033401014214: [110311200403410,110200201311102,110000200420204,102022120211140,100101220411134,110011120132000,100302010140002,101012340321223,101002034212140,103001000113103], + 102400223110011: [101121211101004,101114101012020,101001304001101,103000110142041,102002112041034,102041111020030,110022001201023,100000040001141,103101124003110,112401144042000], + 1433100202213020: [110032022002020,112032040234431,101004310324302,100120040400011,100124021201021,101240404044020,100200111001432,112213021100032,100300141002203,103141100112400], + 1000311110100014: [114040204014042,111230032242001,101221031020331,103230004030322,102102001341000,102300200221021,114024104032203,101220004012040,102112201341440,103012204010041], + 1024432400212222: [112224111100141,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110021340020022,110210020104031,113130020101411], + 141102310010040: [102422114040010,100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,102020004001311,100101101010100,100301020420101], + 1001022400033031: [112004001122300,101301124222004,100124124103003,102130004020041,102002000242023,100000204104002,110200421101001,102120040212043,101101324001310,110011002133011], + 241142020002041: [101020201000000,112404124041101], + 120204001003300: [102343230224321,114201104111034,102310140240012,100014204201000,111130210020000,100311134323020,101232240300002,100141101044100,102132210202100,102132401400002], + 1120030202401014: [112113214020100,103300344012201,100122200012014,100000130013400,100011200201400,100001321032243,100201104224131,100002100204114,102211430202033,101031321022412], + 100202310004010: [100110210024121,100141230401100,112220010202202,100030044340120,101210021011110,100302124213224,100020100200010,100000024100431,100400000033202,102012004000242], + 102312022030011: [110000204210130,100100100422103,110020134410001,100021140000322,110010011212411,100300020142022,102101002004300,102043001021033,103230010114302,101210211022100], + 1111121000043000: [102033021130021,114410012310230,114000332303001,100022224312021,114044240023401,102101122004040,100111100013032,102121204101001,114422104140213,103042031400033], + 110410003240300: [104111021244202,102100001444023,103220301400000,102124231401212,114202024111304,100210000430203,112002200201220,111211240004002,111200232204041,103201211404114], + 100003112002143: [102240120244002,101003204000004,102204424033103,112010412020141,1002001101203410,104223421402434,110020102120001,123300114110104,120410102000030,1111320100340242], + 100010010400100: [111320012221132,102302144110440,100002320411400,100143034304100,114021002331014,100041004200042,100032024202240,102144002001240,102020224000000,101242101020042], + 132300002101003: [100001300102001,100220101204311,112033124022002,103040044010112,101013114001130,110022134210202,110110102042312,110440211340302,100001300000022,101004104010020], + 1102000110131201: [101020000300112,102203344011410,100021324100000,100002020410020,102012220241003,111120214102000,103130020213032,101430211012120,100204021000012,103302140112020], + 102120412004000: [101300340341000,100111341011011,102401001400103,114421030000000,100130200020214,102044001440122,102300021100000,102400304042142,102223314042002,101200040300300], + 100010222022030: [101201111021101,103131044031101,101001401034300,120001020012001,102121042000004,114304304030022,100000220112324,111212420010002,114132020000020,103304000111011], + 132032404422002: [101220040300414,102121211343322,1320004203402400,101003140301001,102410001111322,400020203022020,113210210400400,110102000002203,400100441040022,1302200002412211], + 110000222100430: [114410024110002,111200210001023,114402014112002,102032022000041,100020000120134,110202001212002,102342022000024,114000222330121,101401204042023,100113021020101], + 202010003104131: [103044010120003,100142011022211,101000401032212,103133031440020,100110021040020,102300121000004,114000242303001,102021111411014,103003101400121,114210002324000], + 214023340241121: [101221020040220,100103104302044,102020004000014,100000211023014,100201111002224,114242410001010,102122140202012,114202044111100,102013420220240,114212100211223], + 230021400233213: [111202004134000,111320012222200,102110314002123,100111121000000,111131124100300,102113100203200,101002100324041,102021200243200,101000004040002,120000010010420], + 311002200232224: [114012012330203,102100020211003,100000214102101,102230121123030,103020031420410,103100124003243,102033200222311,102000110224002,100100104102000,111204302220322], + 1010400043111032: [101100004002101,102121130221024,100031404344111,102001210223212,103113014002100,101002210342202,102034001100100,101400004040120,102141004000202,103030034003020], + 1134100000000200: [110041030000202,114412002310123,102000104000041,102100034132002,102101120211200,121000000000100,114021014023400,111200440012012,102101020314221,142220010022203], + 110000042232302: [101423400300400,100003101003001,114301120000030,112004000214201,102221002020200,103113211441220,102300104020420,100010320201332,110004224210020,100340111000001], + 1001001011140010: [102141242001000,100121124234400,113000110124020,100200210002032,102200002021302,104144130014121,101221024231200,110303042210442,110114012012120,114224420001001], + 1413040022003011: [102101324130010,100102004100201,101400300300111,100100204101010,102114020210202,101200200302210,102434211400021,100003000412141,102000032043210,101430001014014], + 1041122000024121: [110023342101220,101001421031220,100021004310222,112220322030220,110313312021120,100220214333200,110330234422000,111000034110311,102200001002100,100014100124121], + 213123410131410: [103024420121003], + 104120201030001: [114300304001000,103204000110000,114203202330210,110214110004122,102300121000111,112021020220112,102000401102000,114212000211101,110021204411214,100024144201210], + 322001302013220: [103030411422014,102412044040011,110021002124000,112200030203124,111200302220111,102004020224404,114201024101004,103243204020001,103412020130043,100400042201003], + 130020004000100: [114000044020204,103044010120003,102320000221020,110142020400012,100142011022211,114230344103210,100030020104423,100102011010000,100000001021041,102000000212122], + 102000032000030: [421010020300101,110020102030110,400220020302030,1320123230012100,421400202010301,141021012220010,401012402004031,1400122214300002,1200002114313302,1002220011001240], + 1100012002230021: [110021220021121,100002120412400,103322424033024,100010130140100,100001214302342,102233204000002,110301020401421,112011011132021,112022004000001,101030240322011], + 1003010200022021: [111223402220443,110430000400002,111121102240240,111320022200100,100300001002041,103032201404142,102203001120342,100100104302010,100201210430001,114022042300011], + 113411421301032: [110040022130003,100030430422242,101120014204000,110014300001402,100100014230110,111002132202012,110201004241002,101000131142230,100104044230000,114022024012213], + 130411041440042: [112224111100141,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110021340020022,101010001000320,110210020104031], + 1042000032143111: [110104112010103,111102004100101,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421,112042110220004,112203221102231], + 1120140104114101: [112144002012040,102110040210100,100014424203222,100120200402020,110232200421003,102140434004314], + 1001200001101011: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1040043023022220: [112042210240113,112003022001322,100402322200000,102211400212122,101420111013041,111001024412012,112020022312414,100114110003220,102203040234024,103100334001032], + 1044040413200020: [100401140034220,102140041342420,101013111000000,102102131340404,103011100120201,102002030240400,101322200340000,101301420312101,102013320200210,102000040221010], + 101242221304324: [102040431121110,101221020040220,114111100021420,102212000200124,100300310140241,100103104302044,101041030320401,102141212000200,102042000222002,101203121020430], + 1001041111000202: [102100001411312,114041010012000,112000132402200,103134244000000,114022210020000,114101022332103,110200014242110,110232044241140,103040124004000,102111340102001], + 1002413022021002: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 1000022210010013: [102101324130010,102140000212141,102424114020143,102023021321020,102114020210202,101200200302210,100001300100302,112220234010010,114011012302220,100043031021303], + 134212201022013: [101302101002110,103221220100201,102102000002043,100244401122022,110323040404100,111110234102140,102330104110020,101012220320104,102041211411101,102110000212004], + 100340100212031: [1020110422203030], + 1023004204100010: [102000214004032,114031004022301,103004324010014,114430000004001,114000042300000,102011004002201,102221144011031,112011120220402,100000104200032,111021200021002], + 100401000101034: [112004202302034,102122214131011,102100104000040,100023031000024,100010044300003,112120224040040,103301410110110,100020004101012,102311011000200,101032001032200], + 1400223342434010: [100032304102001,120300311344011,100013000001010,103441300124002,111233112220033,114201012323230,111100014402104,102100321104001,121000311034110,110303202000004], + 1100101010110200: [101201104041401,101402011014002,114410012310230,101423011010400,102141100210112,100001410002012,102230220200002,114130200001000,100022224312021,101011104014011], + 200002321334242: [114220040000201,111040032200021,103030040121410,110240134211002,110022102131032,102241044033231,110000312201003,110011022130320,103004004001222,103200314020032], + 323310014122421: [102011301443332,101000024000234,112001002031220,101022200322200,100000101020001,110010314200012,110110202002010,100000314240000,110122021340041,102000022043221], + 1013223040413212: [110400022010030,102130411411444,103100214000130,103103204000110,114040410020022,110000400030340,114142102344221,102404004001203,114200100000143,100004120102024], + 1001012402400400: [114000200020423,103133114000010,101002000301002,112000302000004,100024210411201,100021004104234,100122010031003,110040401220110,102120020200301,102121301343040], + 1020203430213120: [100002100124101,112003100241220,102204304000304,114003320044100,103040004011113,103030130100011,101110021040110,101040040300223,101124014000140,102144401410210], + 1000413314131102: [114032234033303,114300124030100,112011204004112,100003000002034,110102022000200,100202031002101,111000004401312,100141401002001,100121114230123,100003120410040], + 244003141120022: [111001440020003,110200020010003,100002214100100,102120104003011,102120402000014,102000200210032,100041000100422,114020002303212,102103132002023,100022200410202], + 1104100004210142: [100100331000022,114222040214020,110200004210000,102032000223300,101000441140230,100142221012003,111300214121201,100100030402001,102202021303043,110132124400400], + 100020010002004: [100022102100243,241221402002000,1030200104020421,1000102021230333,110344021203140,4002244101001011,100022020402123,101212413013223,100004424041022], + 1121121410102101: [102121201340001,102200211120103,110400242110410,111302204123234,114132040223044,100030020423044,103013104002044,114211004004210,100404202200223,100034204310001], + 1032130214302214: [102001444000222,100200004301323,110010030440201,110020004414024,101400134043222,100010400013202,114340312301134,100031220121003,114310242320310,102110021401100], + 1011213412110330: [114011002300120,101221004042212,100303111000101,101410014021040,102011101321222,100010001023120,102002101120132,102242210200010,101100320320310,101000004211110], + 1012000202400223: [102002040220110,102141220210212,111202024134001,100000014100202,101012104001020,103101031440430,111422202210212,110213142242220,114104332310202,101210120302002], + 213023043010001: [114001330013202,111031034114101,103301034021201,114011114102030,103043311403202,100321210142302,100002001032110,101022401140100,100034220000013,100111211020234], + 1044140023201100: [110443000000102,102430100200123,100040214102300,100002214202010,101424010303040,100034400410112,100432301011001,111020012203011,100100111043114,100000044241022], + 1032002101243121: [102140024002342,102312120222342,110002004200112,102020010221120,112012000232203,100000241020200,102143121343400,100220001000401,102101004002030,102303130242002], + 130020031300041: [102310000222133,114111000222110,112034040231012,114104310000002,102120001144202,102130201140012,100010204202202,112422320200210,112100211100021,110040030004102], + 130231001400230: [101221204230013,110402412220402,114111000030014,110340342021001,110124022140001,103221401202301,101200120303240,101000311142402,110001311304140,111230402210020], + 1222201432204100: [104421312102244,114131014101010,102240214041033,103010021422042,101110000010122,102100404000021,110323002022000,104123302100200,100034004212222,100103414300020], + 1040142121420240: [101032111230411,103010110120020,110100032122000,110304002000013], + 101322000230140: [102102430310202,102002301410122,101010000323030,101001414212120,102142020212310,103304004023413,100022201043312,111300032204432,114142200030000,100030001042331], + 100200200031002: [111120014101000], + 1101202141103042: [100000101040120,102323320240010,100122124300402,101022344002202,100031041030040,102112101020021,114322304002230,100010004200110,114313044003041,100030141000000], + 100140444122022: [111200200000232,100101001011114,101430004040203,102210314111120,102220024122101,112022140234004,100143440001301,114102104121201,101121000303320,114110034120012], + 122002420020423: [100002100100320,102043221012112,102024401440202,103200210100110,102440031411200,100023014340130,100113210103120,100041430100100,100432200030121,114121144001400], + 1032041310004020: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 121000000401010: [100440000030040,100023101001004,102101000233302,112130010202041,103210210100210,102012404000211,101043004211000,112340340200112,100001000010010,102141010230441], + 1020402012012134: [100121230031032,112000431120410,100122200012014,103042024040104,102304104110001,100104211044110,114241222321321,114021002302020,102313204114304,100013200100011], + 1004002410242200: [103004204044030,114111042314242,100002210100000,100101001010214,102334004110210,101004004000022,102331410242212,102200301122023,101021111004000,110204042020220], + 130230141020221: [100000400000241,111102214104403,100140024230240,110021340020022,101010001000320,113130020101411,101022021030201,101000031010000,110000400440240,100130334030100], + 1420210410211000: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,112003100241220,102204304000304,100301104104210], + 1430020331140440: [102001200221011,103101024004200,101000004010012,103024000103302,101301014220002,102202004011044,101012044004042,102020304000321,100104000101010,114040100011424], + 143302343223100: [110102042010220,101020124000413,111210000001101,114013400011030,103004104010210,101220024041000,102010300201414,100202200003011,114330432320002,101413004041201], + 101100411240000: [100111014100342,102112300201410,112123142010120,101002321032002,101121100013002,110240202042221,102010101411103,100010400002103,110201004240242,114200002321300], + 114124122231102: [110102401201204,102400100230000,102414034040100,100212030414010,101200020303202,102020041321410,111340300010010,114120420223002,102013224003020,100002210201212], + 1013203121010014: [103200001403001,100003044300001,111110400340141,103200001423140,100033334104402,124302202010112,110002004200210,100011004104011,111112212214110,101003000323004], + 242110000000223: [100020220410142,110000412003001,102011331131302,114000230023300,102021204013000,112042024000020,110022100044100,114400200004310,110003000024101,102400401412102], + 100030110410012: [110140332002220,100431240001030,114020204021302,114002120022004,100011004341114,101230000302010,111002202200024,112241010203003,110300032004002,103000204042111], + 212140002022024: [110403302023130,110001004204310,100010311020030,114001004100003,100020000200000,100141230020203,101031121003021,100200120030203,103111201443022,110101214400030], + 101210300314301: [104101321240004,100020204211040,103440104004241,110213010400012,112313000202012,103010144014002,101112020330001,100012020121041,100402002201240,100000234202000], + 103431420040131: [100000311221002,101120321040104,110002300420010,110021002003020,101002004004012,101024000320213,110210221302403,111202020000412,103103121242024,110202401311401], + 1040210321213131: [110000402130200,110210002110430,103024004010134,110102204202001,100141101040123,110422420030000,110004102001020,110040002032114,100120414100102,102404224041131], + 110204341204200: [114201010001201,100030024300201,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100,110012404201130,102311210240013], + 1134012004302203: [103102101422031,101421100301230,100003414100400,102022020204430,103214021400010,110100022010014,111110420014032,102300131102000,103144220102102,102300010220421], + 1104221204000312: [112042002302024,102230010201400,110100232210231], + 1001010120014112: [111410210001002,101023020301100,110200332041001,114000332302320,102100221341001,100040004304002,100011301000021,100100001040210,102014001441210,100013224103322], + 1121202242010140: [102424204043100,100300211000020,114310200002400,103211220100010,101202201021310,103044004010022,114130020222342,112301032022414,102103100310300,102012014002001], + 212223001031023: [421010020300101,110020102030110,400220020302030,401012402004031,1400122214300002,1200002114313302,1110002442211200], + 1122020000323210: [100303101202010,100201244032040,112012000212410,110022134202000,112000102000300,102000034013010,111002200040000,112010102001040,103012100122324,100022234100402], + 1011311222000000: [100131031020002,102323304112342,114003222201103,110240020100212,100022204300000,112012211120102,100101040400110,110414011212320,101002204001310,102203111103200], + 102000144030020: [100144100410414,102022001101400,110232400010300,100312030012210,101120204202002,101043021124401,100003010000000,100000404100023,110014301320111,112413022010030], + 100002300002001: [100102204300424,102011041100210,101013234000010,102002010224011,100102440024402,111003210004030,100200020320224,114300104034104,102002221442200,102040024010022], + 1141342313200112: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1441002040042221: [122020000401001,103213202221202,1200300001400200,1422242000120411,1310011200200021], + 1002104301212122: [102302024112212,103000020120303,100123000422310,100000040410034,100010030122310,100003314100400,101443104041443,111210102220243,114002410041201,114014212300202], + 1000100240130011: [104404322124241,102032031130301,114030234020304,102200124012000,114002120023020,114421000001111,121400013334402,114413200000230,100103201040210,144000213202010], + 100012240040012: [100222011211021,114034030020130,114031112210241,102120341340120,102422310203100,104134440011201,102311021104000,102104220213400,112021011112000,114224200210241], + 101240000130121: [110000100422111,114010314101200,102341014010003,101000030321400,114132202312102,114322134002204,100002320104400,101013024002120,100021110200330,110322110010000], + 100000000232412: [100023421041402,103101224000011,101010224000130,101144134001102,102200042000104,103002144042123,110012220002021,102304204110040,100210020410010,101000414002041], + 1011140130320011: [100223214121011,112024121130304,110004022000404,103020210101200,110010012102144,100413124100101,111002132202012,112000111120040,100402300022230,111004012200303], + 1040331020100220: [114202002324000,101400344004430,111002032144410,110043440012000,103422400130011,100022101014301,110140422120001,110030101320220], + 110004011011110: [102120101340040,100024114300020,102424311110001,114003234102244,102112434004041,112430202020210,101412044042002,100030101230302], + 1103103010402032: [101003204000004,102204424033103,104223421402434,110020102120001,123300114110104,120410102000030,414300003320310,1300113414104011,1300000000422020,1022122002201141], + 201321003020230: [100030231000344,112311011101001,110100124402042,102120404134413,101100200330040,110040212000010,114102124000200,110211202030440,114440012312003,100000001024104], + 302101132112303: [110202400003213,110001012101334,112020114004303,100001114302424,101222134011002,112113012300242,110343232021004,114131044002441,110040142002100,102202040232030], + 1020301141112011: [114020000030002,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002,114310200002400], + 102114011311020: [100020121020300,103432001210300,112440134041000,100210240013000,110401214242400,101044214042221,100033201031241,110010114210202,102141000313022,112401010202200], + 200421432024201: [102234010200304,100314010143240,100012431020012,103042024012204,112210204003320,102200100204220,111200104100341,101124000303020,114402000000000,102201111111000], + 204022420041320: [112012000220043,102414000203000,111101400022211,100024111043000,103301101400021,111320100000001,111101002213022,101032440340020,112002202000010,100002011021004], + 1100104244331020: [144131233204044,114213002340022,120130001004000,110102030010210,102220211120002,114014010033321,101400104042212,1003022312322100,102001244001224,103441112000230], + 120104110100000: [100410410002011,102101224002210,110311232120010,122203322100011,110330022021224,103021000110211,102201324110204,102102140230141,114024030010010,111300224101004], + 1031414000430410: [110143110121200,102111421401032,120002030230003,102012021101203,102000334000402,101020324214241,103033000141023,111122310010100,100203424332142,114010300012240], + 1000101010404210: [102222111120010,103200224033413,101210001201243,102300440221022,104120201242031,102320110240231,100100101011200,100133001220421,100122204301312,101022220322100], + 140432120102012: [111130104100013,102220014033403,112012224000211,100420301002201,103401300130041,101000204011334,101401001100232,114102214101001,100020021040000,101040121034010], + 100342201002000: [102010114022011,103340041403223,114002200000421,101020321002002,114302210010001,114030004104220,102443211401140,100000221020014,102003224000022,102301041000014], + 110432321140112: [101000411020133,101414020330014,100201231000134,101010024000011,100331424210202,112010102030100,100232101202101,102204420200200,112100321104011,100011024312240], + 1001022420021440: [110220100000102,102100321320100,102102011414242,100041004100221,100000000412112,110000010033022,102330040242220,102310400240000,101201340300430,111320312222220], + 1001030200040412: [102101304002000,101030221000424,112000212303013,110000201302121,100403010031203,101110401101431,112134044004324,112130024001100,110402020104000,102122000310041], + 211211212034020: [103000004002012,100002011042020,100301421002002,100202140000111,103200020111014,100240101000030,101003104212220,102302211002004,114030310012122,100043021042120], + 221032403313010: [103100314001030,114101004121020,100040301042132,114010040023411,102001010222103,101021104212100,102102241341004,100000101030412,103031000121000,102020300220201], + 1420301312012202: [110320202023400,111431110000042,110301030010140,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022], + 1004400413122011: [102100330211131,100100110411000,101022024040420,100102041041010,102042041133200,100004001232022,114134310001022,103043401410010,103401144020023,100103010001340], + 130230100301310: [112000222310334,102010104000124,100004001003032,102102100210000,100211024341103,100100104303313,112000001132100,101024211030001,110400002110220,114013402302413], + 1000200302200200: [100002200101330,100000124302040,114000000014113,101210011042021,101122011100024,100400020020010,112420044040112,100422102201100,110200120003024,100002341030400], + 102010001144040: [114200024110022,103012100110444,103002201240003,100211104104241,100103001220002,101000404012321,102230022023230,100014200003002,110320022024110], + 110200114010040: [111323002200100,100021044202120,100442004304040,103102420121202,102020120201002,110001000034023,111041104111423,102130000233203,100014030122210,110220001312011], + 1020330401141302: [111400124420002,110201400400024,102401000201121,111013232200403,102112220202010,102214104010210,112010120231202,101011101032340,101013411000000,102100001400004], + 210041041102222: [100301031002201,100000224311320,102120121212031,112000400223100,102022031324020,100211111003420,100344041000232,103123314002423,114310332300121,112322031101041], + 1240030220122111: [110222020012300,111012104400010,114244120001041,102120111142201,110010011212411,100300020142022,110102322040111,103230010114302,110010220000210,114010304010030], + 1020021240140000: [111000100012002,110022140120012,111102010012102,110024140142000,100143040411011,110221322123012,110214044210422,112000021130124,114021002302002,102212104013112], + 1102002041342001: [102342014111202,114102020422002,202013001110004,101200020302200,1320010210001300,200002003223300,104211122232004,112303040200001,100224410030410,1101040131142040], + 1001044222104201: [102340221000300,101000130320340,112401314040311,100110020031042,102011004013000,110422102110221,111200122222334,100220124221000,100402002201002,111110004402021], + 1100004201021303: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,102121100232012,114000222213021], + 1402100032022000: [102012220241003,100402120030401,114211202324143,101200314040213,103302140112020,114000012303410,100000004300102,102120401022130,101001020331204,100401414322303], + 122120100003231: [100023031021040,1000200300200300,1000012400200022,1031400000012040,110042001100100,400102021402220], + 1013204030122134: [100122004300410,102000104012232,112400202020003,102000224000011,101212040303123,100021021000101,104240010040022,102030200240232,100011124202310,100030300124130], + 233320004200012: [100024000110221,114130014001202,110010220103020,111004100022110,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000], + 1022233030300201: [102101211411000,114110200212210,100102224033421,100104101200201,102021001411110,110041102012100,114222010213042,100120430411222,110014314410140,100022014302423], + 121020001104001: [111104102242110,100002200410230,100044010200300,100003010413400,103334120114003,114032124013234,110112131124012,100440221001232,102330104110220,100020311020134], + 1110110103400402: [102030000223410,111101312240400,100231124320130,114000010012243,100301314313133,101332011001000,103310401401023,101300130344001,114031020030012,102122024020030], + 101430421314210: [100122200020013,100404404302042,114010010024103,100004004210020,110202220010410,102331104112002,104100010014103,114132002200241,102330144110211,100404000020300], + 1021403341210330: [110401004221204,111112000011222,100322444314002,101003301020022,100102431021300,100001030100030,112012004004000,112044204000441,103141100104002,104110100014103], + 1131222040201202: [110020000440124,101340424220112,100122211044424,103432211210302,100400100022034,112201401104040,100020230104020,114110412311002,113400100100120,100212324104022], + 110004012140200: [102023210204300,100130101023140,100141314304233,110000004422320,100021304210300,100044304100100,101012341111024,103132204000234,100020001044140,102403104002033], + 1010013220020020: [112110020230222,114212004004022,110110001000304,100310110420131,110001200432201,103012010110411,101034110320031,110140024221300,110041312130304,114300012300100], + 111220100302000: [103443024000000,114030204021200,100141321000100,102000104014100,114002040020012,103200130134002,100102104230003,100014110200201,102304111004232,100021220000042], + 1003320021100100: [111040032200021,114123234100223,103030040121410,110240134211002,110104000024100,110022102131032,102241044033231,101003221141020,103112000120002,110000312201003], + 1104000220000012: [110231040000334,101024014004200,110432120402013,110213022123233,101231220303431,100030000004320,102013201103314,100210020430111,100230104321104,100220100434342], + 110414243322032: [102031004002014,103140100210304,100024210103011,100002421031242,100000302211011,101212010301103,103103000121103,110441102112020,102020300201021,103040230104020], + 100024210400401: [110404121141042,110033200101214,100200141000020,110000402121410,110222422114010,114100100000120,100102004033200,110331101334024,100320220424214,112021140222013], + 1112010142121100: [102203104020204,102333001000101,100000131020201,103441224001010,101220434011130,100120201022022,110200400001124,114414012320002,100010000201100,111121024402221], + 1040010033001012: [111102214104403,100132004231230,103043334040203,102120131401230,110200302024000,110021340020022,101010001000320,110210020104031,113130020101411,102041210224224], + 1101002030120130: [110400234221021,102123140310122,114231044000402,101410030330122,111000144410222,100040001022000,110222241300101,101220300304400,103222120100140,112220024014003], + 140014320300410: [101042410301221,114201010001201,102304000210204,100030024300201,100020120101000,112143144020012,102220310200014,103231224012042,100110121040003,100040300102020], + 1221301004341230: [110441234224400,103100014031411,110000300424304,110104422010121,110013122130200,114020204102020,103121221400012,102022400211311,110242100010130,110142432042212], + 1023340021011110: [110411010000101,404130103212403,114124400000022,1104100000042000,1100210001041103,1200020222023401,1310001001103311,110432010304000,102022400114011,1042431100100100], + 1100022224000401: [110001332120300,102101211411000,110003000420200,110004014411012,112000120232022,100002320113100,112240200202201,101420021010003,100400122201222,100222110000310], + 232411410020040: [102002014000220,102203004042010,100020001041410,102410004024030,114402320000202,114014112302234,102141231343401,114112000004001,101004421020002,114003002301122], + 104012130021200: [102123220230210,101110004021320,102201230200104,114123042312203,103012101401220,103001334010240,100214324104012,101333201002122,103200021404423,102003114002001], + 1400001240000311: [111000232113233,100200013102111,100021210100004,103134204000000,100104113102400,100303404100220,102220202001233,100400040010104,113222010104232,111041200040020], + 120231220000024: [102403001342000,100102431021300,110200212041001,100033211230014,100001211040232,100100024234021,112000321112201,104122102100220,112034300240022,102213204040044], + 1010022120300411: [102104410220023,320424300313211,100430200104001,1341420023200031,101040020314000,1101003130212010,103220020131102], + 1020210001322101: [110130314400100,100032431030100,114001030023421,102223300202003,114400202314210,102022004010240,103012000100422,102023211411003,102202031002304,102240231110222], + 111203220301101: [102140020210421,102112401342040,100010031232011,110010002200040,102200024024022,100222101000100,101002111141200,114304104033020,103000001410002,100223401000042], + 100001111030342: [110214024430312,100011014100041,100212341003212,112010220224003,111110010022310,100200001001300,100012104313201,110212310000041,100040424310110,111301332200104], + 300001030003040: [102340221000300,100220124221000,100402002201002,101011014002032,102104101122100,102423114022101,112002010221020,101131201110300,111012030020003,114200404001002], + 1121000002032040: [110111001300044,111000002202324,111211010001300,114030020020301,111014014401303,103210001422303,100100000022131,112042111120340,100101141042243,100101100022012], + 1011120333000132: [110021000410432,100042304102210,103202000110102,102020440220202,101010010320112,100042000000000,112000021122010,100021111043012,102122101023020,110124041140000], + 222422401041002: [100032041021210,110004301222000,111202012222402,102001301120112,102040041320010,103203401400132,103142111441040,110104002010100,114142044120310,110220410000040], + 224230240230401: [102202000201220,102203011120021,114330432320002,101000424210014,102103122004211,103022230124332,110114002014221,102143002000204,114404022311000,102010010221101], + 1414104014031043: [100214230412031,102324101000040,114022024010120,102102300313223,110021100020000,114211032334300,114210204000010,111113312111000,102300104023040,100202400410110], + 213030320002110: [100220040142222,110020120040121,101040000301210,102130034023112,103100001422200,101330120302103,102111301402121,102010310211212,102210104011024,110042012002104], + 1120132400200010: [100000430122100,102000231122032,114020002212200,110131111124000,110120001000140,111402002210300,110001202000001,113004020134131,102304321002120,100101020403013], + 204033200000310: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 1000202020044010: [101042410301221,100102024100020,110040344210011,100003320401100,100020120101000,112143144020012,103231224012042,101000001001104,100030301030114,100110121040003], + 1000100110113302: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,100014204201000,102103321411004,100400001001300,114113000004012,102140114004004], + 104304111001104: [102300401000244,102340140222011,101043004000042,100001404100302,101011241140401,102400131400312,101101014004001,110000022121001,110030111010220,111201002222130], + 1044020201104204: [111030212113431,110001030120020,102001111011201,103222004032000,110044320441241,102233034000002,110410122010102,101122404022022,112130004021000,110311110410340], + 1000402212000012: [114042032210200,114404220000142,101100214003002,102410420230111,100404342201400,114440210000102,100000120412021,100030101041442,102210020200021,102121100212002], + 1021202231111001: [101113140334114,100030310422011,103041020101400,103113224004201,111300402200003,114141024004011,110022341300320,101400002040042,103010101241110,101002101141202], + 1222004024222012: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201], + 100011300010020: [110002412130400,112011010223100,112110001102104,110140304404000,101000011003140,110202022121042,110000121102001,112301031103203,110222431302410], + 1001033001300202: [110001332120300,110003000420200,110243234240200,110004014411012,114110200212210,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 131120124134240: [100024000110221,114130014001202,110010220103020,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000,113030232400401], + 1213101110133100: [100100021040144,114101404004011,100102404100430,114142044000010,103020241402220,100104020022212,102023110212012,103321124024003,100040010010104,114210134114310], + 1443101040023020: [101210010304011,103120400210000,114144004124200,110011424414202,110234012243001,110000214202000,100040011023003,100123031023104,114223212320410,101004020312432], + 130200411001110: [110210221300113,110304014433122,110200004243223,101000204001222,102000010200200,100002330412031,114020042302142,113420011011140,110020122000000,112020402001012], + 1142220430002010: [103300121401234,100122200020013,100400320033201,110011402100202,102331104112002,110121112010004,102020131413423,114132002200241,114013012240011,102330144110211], + 1004100220302101: [102000001132113,103020200141000,100120010421220,100000201041300,101100300302102,114011200003102,101020104000040,102432101112141,114412142320040,102100044000000], + 110210033021221: [110011414240022,102202310203222,100042001020203,111142010020301,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231], + 1000040200134210: [101200101021000,103000024014022,100040404102010,101020404210020,100001001021002,114200104001010,114040414014202,110002110021301,101032010322010,101000100340432], + 101021323404101: [110130314400100,100104010021241,100032431030100,112102024020402,114001030023421,102223300202003,102022004010240,102102010214442,103022110142241,103012000100422], + 1001003100310112: [101221020040220,110120144200000,114022412330004,101200221022044,100103104302044,101041030320401,110241112020204,101203121020430,100002004104004,103130021444021], + 1140002220010104: [102120031140142,101021204010011,100404410022320,103012101410102,102131304003000,102220220201011,100222044100141,101400000300101,102000110222120,102134144003010], + 1403211021421001: [102402124022000,100200200412034,102232024002401,101012114000304,101102120301114,102202141120400,110120224221100,110000041322002,103444024001001,103122404000344], + 100100022210230: [110210400114203,101101300010301,101122200300011,112210201100012,102120200221403,112001122302311,101001211004233,102110314001121,102303011002000,102314100240010], + 1000100201441100: [114101024120020,102004011440212,100000001021013,100011204300012,100101234330123,110024000432310,102012101443110,110032220022103,102102104000102,102302340241312], + 1010012300121104: [100002200100100,102032022000041,100020000120134,110202001212002,114002420040210,102342022000024,114000222330121,100113021020101,100000014312111,102203214040300], + 300300013100340: [100324140141402,110000410001034,103204301402123,110022002120332,111110230014001,100210200034304,110102111204210,100301101000021,102120244004000,110020140044140], + 130000131310000: [111002100000102,114021010040140,114222302321101,110014024202014,110220130100010,100020011030330,102404221402210,110203022032320,101300004233220,110444031144430], + 222100034100230: [110102042010220,101020124000413,111210000001101,114013400011030,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011,114330432320002], + 120300021320132: [100032041021210,110004301222000,102001301120112,103203401400132,103142111441040,114142044120310,110220410000040,101030004010034,102201411100212,103100104000121], + 1031012001013301: [102004204041000,100104341010424,100002320411400,103142210104020,114400240003003,101022001002030,100002104104001,114000212331142,102321014111000,101104040302120], + 1004011201103433: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 1022431140324140: [102133011413110,114022424102243,101223020300040,102034324000220,102022400203211,101230020303000,111340130010314,110200422121211,101214240300041,110214220002020], + 1240111020121000: [110112102211042,110431442110400,114011120021012,100100111041320,101420010300310,110000004210112,102334001004100,104100001240034,111200100000400,111321424123422], + 1001200214012002: [110001202003004,103234101420113,400013004332041,102114101444001,100022121031020,103140024002140,101004224000300,102141010230201,100012324201224,100020210101002], + 232001300103214: [102001404012100,102122214131011,114223204100010,111041202200140,100023031000024,100020004101012,102402000201011,102311011000200,114220000000024,100013040100000], + 1014000403002220: [112200102024122,103000034003300,110302322102041,101003414040023,110202222130000,103122214003002,110012102130001,102010010200000,110200300003210,103110034001104], + 100101301003230: [112000001123004,103400100131022,101004141000312,100030121043301,111034332202000,114300014030310,103304401402003,114142102200122,114010234030120,102110004000012], + 100002000042001: [1300422220310121,120032010212320,1023422111011102,411001103222300,411311131413022,1220101103414143,320440200013001], + 1034342000020200: [110130314400100,100104010021241,112102024020402,114001030023421,102022004010240,102102010214442,103022110142241,101002024000400,102240231110222,114023142202040], + 1123410221410224: [110401140004202,110040002034100,110044020020202,110301311303102,110201434430102,101002020342002,103200001420012,101201021021111,103210000112442,114020132334212], + 341141400041030: [102104004021010,111221000010010,102320001000230,112211222041401,102302021000041,102110111410032,110011021320030,100402214322223,112002101120233,110403412221122], + 1110340032032312: [102001030224000,110224032120040,100240404100140,101201030301210,100340230424131,110001004210440,111002010001321,102042404001104,114020204020041,103213101421223], + 1124000110100304: [114210200002420,111131414401020,100102030422220,102223100204131,114300420001431,114021114021002,110100021200402,100030000413102,102323104112200,114001212300101], + 1031001004021124: [103203201100220,100021224313320,103420134020000,102100344000130,110223200102231,100020000100311,112221010203222,100304311002100,102112201022001,114110000210010], + 101442000044002: [100000024341200,103011004040001,114010000040102,112022230230101,112031002000022,100000300202210,100412000433214,100210124030101,111200210001022,110112130003104], + 1003221221100420: [114011130043110,403102030210220,102122014134004,102122011343402,102040032400410], + 1441220003200110: [104101321240004,100020204211040,103440104004241,100022404242424,112313000202012,103010144014002,101024414220000,101432221011020,100000234202000,100023221020004], + 303001001012002: [100102024100020,100003320401100,103033044023040,101000001001104,102430010202411,102140031410024,100001301020220,100000100010002,102240000204030,101023004000311], + 203000024021000: [112213000200301,100003224334120,110204130004030,110202120003032,100322004314021,100404000020012,102343301100440,102410434000220,110110440020002,101101000330302], + 101000022141301: [103111001422000,111244302220204,101400004022100,101114000332010,112112211102024,114031212300211,102013110201200,102111022001024,103210431422030,101011311030141], + 101220210030110: [112000124022430,100212030412303,102302120210122,100400300013000,111010012201220,101002104002020,100300304101302,102220211302322,111322300013200,102202001300342], + 100134224400001: [101221422120021,100001000002210,100400320033201,100004130002301,102020131413423,102144012001113,114431110001011,114243004003002,104130111240040,102422314024300], + 1030200430101420: [114100300002413,101403204021000,110400012110211,110102141123102,110130001303042,102121000201002,102200201123212,102122320204201], + 1004240010210020: [112210010201431,102102030214401,103100024002220,102021420233130,111130410020021,100044004210004,100320104321221,100003104100240,100112101024230,110010024420000], + 1113023000401222: [110020120040121,110000100022040,114004142244000,102002004012310,102130034023112,100302304310204,101330120302103,102111301402121,102010310211212,102210104011024], + 141120000004300: [102242304042410,102000201131020,1010120030012200,101024411001024,221104221024023,102123332000002,100202211200032,100142410401000,102131120310242,110002304201031], + 1110302441024024: [100114234102203,114023224010002,110020320412002,100300301002020,103040424010400,100010104210010,112203010200014,114400444140020,114203004113000,100000404100021], + 1020020042103010: [100002100100210,102420424042020,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100102020411200,114221030000011], + 1100221400010212: [101400004022112,103002221400000,103110020210000,103001010101001,100022141030334,111020142144200,102100201414400,101313201003110,102303001102431,100141334301022], + 211040010200200: [102424204043100,100113220020101,114031000022030,100300211000020,101410401010030,103240001403000,101202201021310,103044004010022,114130020222342,100042034202031], + 1011201102000201: [101210321020222,100022110021010,100122044230200,103423000242341,103121002402240,120412001020102,101140304001120,130300211110200,100201202200003,100141000110131], + 1140412010102012: [110104112010103,111102004100101,102202414041044,102140014001101,102021100220101,100230120001003,114000040010421,112042110220004,112203221102231,114022400020320], + 1112000010202103: [114020010030200,100004402212111,104000011101040,110214202044002,111111000020303,110020041012320,103123434002000,111000214410000,102122101120300,103210010100241], + 1123111001000240: [102100014132110,110232232034400,100024214100000,101013001000203,100104044100201,100000404301003,102100001400002,103202101404021,101000104000440,102023401100001], + 122244000324122: [103224310130411,112210400414000,100102101220123,100402210013023,112200302030311,100000001210103,100202141010030,100220000432000,100000210112011,102041320202034], + 1020010442013204: [102101004000411,114221312340014,102434121112224,101200210300413,100311204312442,103000020100131,101211204201231,103210021401223,111130412210000,100011300412123], + 221230142003200: [103311011404143,100000014211030,114430104142400,100220121003120,103220114040342,112032000201314,114021034021244,100002000120011,102110101141003,114001114121130], + 322300220440000: [102442211414022,110122001010214,102101204000010,111231012220013,110022300420031,114230230000123,100101220101011,110000141123103,100222024320003,103323001400013], + 100002020002032: [100030100410121], + 102443031042202: [103241104032021,100020114101410,111221222223134,404220140010113,1244000013132404,422002310200202,210111004010010,304130030001002,112102014020004,104112143430303], + 223002221300001: [111304340002030,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,100043024210301,102014001130100,114022100010000,114321004030021], + 102302024000021: [102000001132113,100041000010302,100110004103122,111321314133000,103031300144042,100120010421220,100000201041300,100000111034100,114011200003102,103132114002002], + 224011130402140: [112142301101040,101000130320340,101100000330120,101214440300301,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440], + 1004100002111200: [103122114004113,102242301122200,110030110122402,102143432000102,114001110033210,102013120200110,110120011014412,100011111022300,114032300011302,100234004033234], + 1240310001422000: [110300000402020,102110221412210,103330421400224,102431400204010,102112042004203,114030100040000,100120431012000,112210204002124,101023410321122,101022030320100], + 1010202012241000: [110041030411301,103301210142043,100002024200142,100400014321101,110033041200104,410110432000414,100000011020021,114002102300210,100034000410212,100304011002220], + 1041101330000221: [102000200220320,101322410300004,114101004100000,101010221002100,112020104002142,101303104220020,100021030410001,114210204110100,100024141022000,101000010341231], + 330304014040400: [103212014020132,101021120323020,100102101000203,114111200034310,102001111412134,101032201032000,103230040101112,112212002031124,100101001013000,102110234020204], + 113042113000040: [102001404012100,102302200210010,102340120222440,114223204100010,111041202200140,100023014313010,114021040010311,100020004101012,102402000201011,102311011000200], + 1031010414000000: [110100000124440,114233242330032,102012004002430,102020000204042,100241101003430,101001224000033,100101244232013,103000301221001,111020122111214,101012111021003], + 210001023422422: [100020001041004,202421100022041,102100111403011,1000042010002402,1100001420031333,124000002040110,433020311213122,1321202200220200,130030004001124,100040220123030], + 111030413000240: [114012012330203,102100020211003,100000214102101,103100124003243,102033200222311,100100104102000,111204302220322,111022434120140,103021024022122,101000220311120], + 132000022100131: [102110140224010,100022121031020,100103240011013,100020210101002,100042420003120,101020120322020,100024321020243,110112410431040,100100031002000,103000244010320], + 1002022242030141: [100022004302311,110101001301201,102104104001020,100011314203014,111133104102443,110041121310100,100420230030100,100402000022324,112332210202010,100210211211214], + 100233100400000: [110220301202400,110210024220020,100401424300314,103101001422002,100040120000031,102002104011244,114200142324000,102100041413022,111140122114101,100012000101100], + 1040012322011210: [112004001122300,101301124222004,112204220200011,110013202120001,100230040410200,103210004031201,100030300422112,100033001230040,102002000242023,102200014042201], + 1420000112022344: [111040120022202,102141000230040,101001300340322,110100224200101,101210242120124,110014342002102,102031021440000,103040201222041,103021424001214,102100204000340], + 1003403140221202: [110000212000300,100000010202003,114234324112000,102400001110102,120413040002400,102300234110002,102210014111401,110000401310201,110001004413010,102303104110202], + 1002200202000230: [102012201321104,101002011001110,103012301401041,110043034212101,100022130100210,114442140003011,101001301000011,101200034044124,103042224001110,102110040230322], + 220102002132202: [110342022000001,110100121224222,114403000001001,112311212021024,100030030422421,101120020304200,102020121321033,100000421021000,114132212313220,102020004000400], + 140030100240101: [100420244300112,101012001030010,102230121123103,110202010012201,100221440000230], + 1010240402000022: [100004101032202,112100002011214,114401022311200,114020004020300,110114130114210,100004321021120,100003040102022,102300420220003,101400211012100,110012112003243], + 100030322102010: [100000211023020,101230042120212,110301022104110,110014101200004,102120441440200,102021000220100,112302302021203,102213224000403,100104024300122,110102142040030], + 220112312420330: [112400104042431,110032412204130,121230313021014,111242402020001,101032401114024,110314040011014,101400414021000,114101012201420,104410222102000,102424040202123], + 140333200401210: [101041441032123,112110200433212,103001020100110,100030041220222,100022004203010,101000044012401,103312300141010,102000300220020,104130230010032,101201300300343], + 1000013100021200: [114210200002420,103010000100410,102203240202202,111131414401020,100102030422220,102223100204131,114300420001431,114021114021002,110100021200402,110000022203101], + 130420120232011: [100000004102121,101141104004013,102303000241200,111120032212032,100012014202201,103242024032020,112012000220000,114002100044002,114033012301032,100220020410020], + 112002232431024: [110000212001040,110020000431012,110034411301222,100132044303043,112002220220201,100402020013040,100001140200004,101014121000220,102120231120442,110021221012222], + 210400430020223: [100001230201101,111102012220413,101101131132022,110010102132024,100010100000042,104120211242040,112220104002000,102223004042102,110410312121010,110330130010041], + 1044210401142120: [100200440031411,100112224301402,103310101401010,111200114100011,101322224220202,112003000230001,110002120141023,103021000124113,101212020301403,114340022321132], + 100114240104301: [100232214222204,100040324331403,112104212010101,100001104201201,102300221002020,100002101020010,112010202000202,102033024010010,100004001000211,114230112330402], + 1021000411012432: [102322014113341,101022104001221,100040201012040,110021422000000,101120030330110,112021004003303,110331012224112,114100222310230,101002200301130,100011120000004], + 1001040400024411: [112224111100141,100040134340044,103030411422014,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031,102041210224224], + 111313004403400: [102110111410144,100031010010121,111141012240014,101041104222000,102203044043244,112000202310100,101012031033100,100400030013102,110000122101140,101210000302442], + 100204240122101: [100440444301004,103304014020032,101221121020230,100004110000301,101310004223223,114113004120221,111210402244301,102100011341140,1120022020242320,102320231000001], + 310100212100102: [103000144000400,100110011002040,100140011002400,124001030020034,103214000212400,134312110020403,103130121241210,124002000123111,100041011030000,102010121122221], + 211420010120301: [100002100100210,102420424042020,100010001032223,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000,114221030000011], + 100000010143230: [111231002242010,101010211001011,111220030010210,114042034104243,110123111300000,100004030411141,100412030034000,114000214012010,103232114040140,114010002240111], + 100000240303020: [100020220410142,100222311000201,120202201010210,112042024000020,110022100044100,114400200004310,110003000024101,102020031103041,100003341032400,220202121014102], + 1100302131422112: [100041000411231,102011001320032,102140040210040,114004000040100,102010031444104,103202300102400,114103200002100,102410010201202,102202244040132,100000001021001], + 102122001241041: [110001112031124,102214100240020,111012114400321,102114001122300,102120044000240,112100012011413], + 1100310201402143: [103100030100010,101400004022100,114031212300211,102013110201200,114023010024000,102042321440100,102300121004222,100042000102010,101401101012402,112000230220102], + 1002200241040201: [101041301000320,101210004011003,101230044012202,103242311400421,110000310134014,114000012334010,114302200002200,100200024301301,110010204412200,111202010001410], + 122300110322110: [111121100010021,110310034424102,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241], + 203110340210130: [114011220041204,112022040242001,101043121111400,101100004022130,103123314002423,113004022020033,100100121000430,100421110431421,110030042203103,112020004002100], + 1002000411204201: [114210304111002,102030010222333], + 131001311001222: [100110114231201,114142204001320,101001020310040,112202104011100,101103044000242,111211030000211,103012304042020], + 100232041430001: [100023104312100,114330144030100,110120314220210,103102201422301,111303330011200,102310401104120,101100304000032,110002142002040,112342000202234,112412104042222], + 102043213000102: [101221020040220,114022412330004,100103104302044,102020004000014,100400001001300,114242410001010,102100200210002,102000220220104,102003321120000,114202044111100], + 110440401004130: [102430231400211,102004021102101,112002012030102,114440240003000,112120302010202,100020010000104,102124200204223,102223211121031,110012020042102,110200012121210], + 114312003000104: [114400344144312,112120120200440,112210040204030,112213110411211,101030400314212,100103114003211,111140014100212], + 1000100012202232: [111000022202402,100430211011410,110010340040012,110014032101430,104421312102244,114200322333401,103010021422042,100000001022401,112312330200200,112020004000202], + 114120334414202: [110041030411301,110001041213031,101110044200100,102411000200000,110414300030001,100030020011022,114100122342002,111202012222402,110033041200104,102000221442214], + 240300330410011: [101041010324010,101000004210020,100011230101432,102210314111120,100032300010000,114140404123402,102130031410200,101224111004040,103204231200203,100010300414000], + 143021320031002: [111022412140224,100212034221414,100222100402024,100121301023030,100020224310403,110000130020003,100020424102200,100014000022201,101121401110420,100200001211010], + 102103030240101: [100223214121011,112024121130304,100202221212300,110004022000404,103020210101200,110010012102144,101020200301303,112000111120040,100402300022230,111004012200303], + 231122344112000: [100011314203014,100210211211214,100002134303110,110041214411012,101000101022043,114420240001400,110032124211302,103022004000030,110211122020222,112400122020014], + 1004212204000210: [102021010243000,100022041024214,140021143000030,102000021120110,112300101130013,114420304140020,100102031001102,102200000200400,101002301002124,112011004023221], + 121140124341410: [112113214020100,100000130013400,103224041400220,100001321032243,102104244000010,103113010102100,100110301022230,101122100331113,112002040220020], + 120041121012002: [100413011000000,110001202003004,103234101420113,210330042103020,103202004031314,422202100011300,102114101444001,100022121031020,102021211440022,100024101020044], + 1420410200222041: [102010004001300,111223042243230,112122034041020,100000030022004,101202010310030,103001024020104,113001202210003,112212342010400,111000304441102,111122300030202], + 101441103000032: [102040431121110,101221020040220,114111100021420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,101203121020430,100030010102102], + 1020322230020101: [112113214020100,103300344012201,102010202004402,100000130013400,111130312211003,103224041400220,100001321032243,102104244000010,101001010300404,100201104224131], + 130030010304231: [110011011212100,101134030011000,112000244001222,103220211421421,110430014221230,100044130000101,100102110402220,100021041031203,101140204001010,111300000014233], + 1020013022000001: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 1043332020010012: [110004020020022,100043010120010,100123044300022,114322024034312,102143432000102,102040010200101,102200434012013,112000301122111,100021301302122,114001110033210], + 1044042103201010: [111101122102222,103000114001000,102242024030234,100003344214000,114400300000221,103104024000023,100002104201130,110120204222240,110043014410220,102322420210320], + 101230231324114: [102132400232131,100114234102203,114001232300102,102323324112410,114400112311040,100422140030210,103000041402003,102000141133020,101141111100022,100001021003113], + 1000220030201034: [103010000100410,102203240202202,111131414401020,114231020001120,102223100204131,102340202000001,101201410300004,110000022203101,102323104112200,111222222244101], + 1030401222010020: [103122020213112,100104010021241,114101100211240,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112], + 122220103141240: [101020204214020,100131144232400,101001004220021,110232241101002,102104101340430,114020020001014,102201401001104,101003200300401,114132204142000,100001024314010], + 1001143144011002: [102102241341004,114110242200201,103002020101431,102020431101132,101404104000404,100012104210032,100300021000040,112000300230010,100001024102120,111100022244144], + 1004121201021313: [101221020040220,114022412330004,100103104302044,101041030320401,102141212000200,101203121020430,103130021444021,102100104002224,102020004000014,100000211023014], + 1121000304342022: [101003410300310,102020114003042,100220001203033,100023121020104,100401404302031,102400024020302,111101114100040,102401124020410,324200002000200,112400224011021], + 100031211130430: [111001440020003,102001000212142,110200020010003,114121000002140,100002214100100,102120104003011,110123042010000,102120402000014,102000200210032,100041000100422], + 124020130400020: [112142301101040,101000130320340,101100000330120,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102], + 141210102200030: [102100001001020,100143134233402,120011202033000,100003221233221,110021302100210,100100000004341,112032024022220,112002204021024,130342130221000,110032022014300], + 123012411210140: [112000112000031,102123214020000,102022124012030,100143220410040,114002320022312], + 111043020140033: [100040401020114,114202400210000,100302014210100,102102010214011,100043111020130,103112004004201,100122210402412,100002031210114,110213300002210,102402200200000], + 103320000134013: [102203004042010,114203042330220,100020001041410,114004014011110,102410004024030,102032012000101,102102231400111,114014112302234,101004201001232,100002020101023], + 120000220101210: [103034010121101,102302200210010,114003344011001,100023014313010,100002301021040,101014201030204,102411201112404,102100011320200,101203001010111,101000314000042], + 120131011033211: [103300004021200,102122214131011,100023031000024,103230134011412,100012004101221,100020004101012,102402000201011,102311011000200,102021021101204,100231020102202], + 230000104002204: [110211004240041,100001140200004,101014121000220,114000002300010,100211021201202,110220212104000,102141341340331,114234000000121,100042011022122,100011024104002], + 1112430020203213: [100121214300011,110000002000322,111020330020323,103000224010010,123004131002200,103001014010032,112400142022120,112431022020401,102411024022203,112220402021203], + 102211010302004: [110420301340222,100024000010302,101103031103004], + 112120110300031: [110033200023234,114034120024020,114202042330012,103024110101112,100120244232122,111434000000313,110202000012302,111010012202230,112400100203420,100000004303002], + 1003210001202113: [102142221342202,102420000202033,101012400343401,100020101020404,100002411021201,102110010210330,100012020410400,111111102240001,102122111402420,102001041100103], + 102132043014311: [101042410301221,114201010001201,100030024300201,100020120101000,101041404002420,102220310200014,103231224012042,100040300102020,102400110230001,102101011342100], + 100101221000304: [114021010023030], + 203140024002223: [101020000320011,110400014223001,112040222311040,100100101011200,114214220001140,102204404111433,114040214101433,103144001420031,101022220322100,130040244231421], + 120112101203144: [110201344402000,102323041000400,110020212130021,102103401440120,114300140000220,100124004100122,100002421220110,101120100303302,103000210102212,114001124020022], + 224114322002000: [111020232200302,110130201011011,103120214032200,110001020120322,100100021013214,102312034020114,110431140100000,100214424300324,110014000110222,100110040031200], + 1121024000230231: [101140130013320,103124001420200,100204210031132,100023001042200,103224034003141,114202022320120,110442122023340,110020240400120,101022044001032,103101404000040], + 320003121333121: [102001301120112,103203401400132,103142111441040,110220410000040,101030004010034,100002111020202,102001104001420,102303031001004,100121004300001,100000341201004], + 1010020401211020: [111424104420210,103202421200002,101112140303013,112212200204110,102302230241114,111202202202000,111113200032410], + 1003022113040001: [110210134244100,102121041441000,114102022200000,110233010002020,111203034103022,102101304000012,114020202241323,110004402131000,101240024012131,100020114100404], + 131101000214201: [100004214100234,110402410002000,102001011442200,100324200110130,100342120144000,100100031003220,100200034020100,100000041021200,101200100301000,114402014140102], + 213303013002420: [110020020001220,104120000021110,110102030403010,101040010314220,111211114421220,110000000011102,110400000004402,104101420012000,110132241240004,102010411120012], + 1000032140003300: [102110010210104,100040004340001,100021234303000,110420020103322,103100204000430,100034221043231,101140030330020,110030242131210,100340204211100,110142214201120], + 140001010421240: [100003030003020,110410000104042,100014014203233,111422100034314,100000040413000,100001034310012,102030414003000,121310232003222,110011300143002,100220021000033], + 123220031302140: [100130320031042,103110021442200,102010004040000,112433112020200,100042001020203,112221200410000,112023032000020,102000201101332,100111304300020,114132420004104], + 140002122110020: [100414204320344,114012012300010,102141220210212,111202024134001,101000004003224,111302120011012,100002314210021,103101031440430,114220102332012,100000211030342], + 120220000202013: [112411140200242,111201202221200,101001201000220,111123002210402,100011004203023,103001241432010,102022020220023,100110001000040,101010020304020,100010001043003], + 100111320200130: [102120410202221,102203031112000,111240012241220,103002001420012,102034031324100,103001404013000,102102022002404,102310320222212,102300041004030,102100024000422], + 1022104112013400: [100024234201100,102113300230021,100010044310002,130000420243230,100232104120201,110112204224100,102212234021233,100100341202102], + 1120000410100100: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100], + 130001004011024: [102010124012100,114131102312120,102000111101030,114142022200000,101102204023404,100440100030210,114202110002002,102110004001320,114202322324020,101403100301000], + 1100122212200242: [100310304310342,110140044401202,100010041031020,100042400001023,112402000200101,101010020301243,102030001103000,100040021031201,111010130022401,110224120012221], + 220022341020003: [100310304310342,110140044401202,101300124221002,100002030410210,102231031123103,112402000200101,101043314210310,100314420140013,101401204040200,101010020301243], + 102102100000043: [102300041004010,103000140101310,112400104044001,102310204023400,103111240223100,114401010001000,114001310020023,101113001101020,100021401020000,100203310430032], + 1142324213123030: [100033004310000,100404202200440,100243220432021,110030120020044,101032004211321,110223100002121,114330004034210,100132220400121,110102004200021,103001121222240], + 1012100420144031: [114420112320212,1012100023110102,1020343020202224,101012041142400,130001344030034,411204402322000,403240003100140,140441120210201,203322214210110,320440130020000], + 124120201231200: [100222004320102,100110004103122,103020200141000,102414034040100,100120010421220,100000201041300,100000111034100,114011200003102,103132114002002,100412200002013], + 121130111100011: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 1420230201001033: [114011130043110,403102030210220,102122011343402,102040032400410], + 1000141230400021: [102102241341004,100000041020230,102030011324204,100001024102120,111100022244144,112221201100134,103400304020142,114410012311040,100022030101111,103101000212001], + 1430002230014000: [112303341100100,100004024311221,110300440000022,100110101000111,101220141010040,112033004000010,100113310033004,110401220400210,101222240300200,100124014100400], + 1041230001404343: [112142301101040,101100000330120,101214440300301,101121100332142,102011004013000,111200122222334,102301024113440,100033230420102,111110004402021,100000030000001], + 1100031214442010: [100024000110221,100110020031042,110422102110221,114130014001202,110010220103020,111004100022110,101002201140040,100211000412142,114040210022000,111001344400222], + 1011233114410200: [102010020203010,102033021130021,102001241410312,100000121042240,114444012310100,102330021000131,110400240002411,114432422322332,102000320222120,102210241122001], + 101002100222010: [102300010242203,100020410410021,102400201404120,101410121102004,102402224000010,100001104012111,100011320420210,100302014104012,101110101110020,103010200113110], + 231240214120003: [100430021001320,111410210001002,103214301421201,1000001214032041,101023020301100,114000332302320,102100221341001,100040004304002,100011301000021,100100001040210], + 322244041332122: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,100211000412142], + 1202020010240120: [102142221342202,102001200221011,102420000202033,100020101020404,100002411021201,102021014012210,102110010210330,102244221114031,100012020410400,111111102240001], + 1121040002000003: [111220002220100,101044120322004,110114410003233,112144312011433,101410044021332,114020204101200,100013031024000,102012014002001,112302412022221,100140014100401], + 1100340100010440: [112142301101040,101100000330120,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,100033230420102,111110004402021,112204002031203], + 130031024034001: [102020200223310,101001400301113,100002120200101,102014111102023,102432114041004,102100431342023,101301014220002,101012044004042,112410300200001,100021201020001], + 1134031014303220: [100001141221200,110241101203132,103001001422110,100300200420220,102111320321320,101020431000212,100302120421003,112202304014001,102020341100213,110421120403200], + 1031322432311201: [110000104200413,113141002412032], + 1000000000420104: [103100301242100,100140211000041,100331204212000,102001204011033,110121102212120,114112212343020,103000210111110], + 200412214103301: [110001332120300,102101211411000,110003000420200,110004014411012,112000120232022,100002320113100,112240200202201,101420021010003,100400122201222,100222110000310], + 1010132020020210: [101133001104410,102301001004020,1100000411441420,1002203010011112,402001100011120,100020321030202,402202000003002,1113101130040010,1300120104000102,1324240003020201], + 200441400202301: [110321031234422,110302100111410,100410434302212,102023001440404,101023014004000,100020010101201,110412042010210,110010220121014,102312344020020,110124411120222], + 1010101120402041: [114401200000003,101221000312044,111001314111000,110323142102300,100040120003030,112111004022140,103110214000303,100104001013112,103112204001240,101013410304010], + 1404413003142302: [112020200242131,110240024241203,112432120204400,100021420120102,100104041023201,100022214101010,110001340112402,103040421244210,111111014402340,102301204011320], + 122102003102133: [100014401210011,102323304112140,110021410020203,110411044221200,100003034100001,114200222340000,102000010200014,102110402004000,102423031402210,101000040343001], + 1042123221023212: [102132400232131,114001232300102,102323324112410,114400112311040,100422140030210,103000041402003,102000141133020,114212344000432,100001021003113,100013001040200], + 1430220101402142: [102432004021410], + 1420342121202410: [100004204302330,110000100422111,102341014010003,114132202312102,100004400100414,101013024002120,100041244344014,100021110200330,110322110010000,103302034020140], + 200400224202012: [100133214230003,110240040001040,110100401322012,110302014420400,111401002210202], + 1011101201024400: [101004014003121,111212014101213,100012020022402,102313324114200,112420124010230,111122020033401,110111020032001,103001230104021,110021102010001,111310000001341], + 1121204432034042: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,110030222130000,101022440300020,101402010301000], + 1001000021034041: [102041310200042,110301030010140,104100002101431,110221000111302,101010001002000,111330020002213,102011440201423,114011212320331,100002204310140,110110210011002], + 110023042240131: [102100011410300,114410204142310,102022000213102,100101421010233,114423414113030,111022100022132,120022141000020,100003001040112,103103001422442,102000404001100], + 200022020001311: [100141220000211,110042202002303,100320011001200,110002002200300,110443002010003], + 224401100220202: [103122114004113,102242301122200,110030110122402,100011111022300,114032300011302,102100000313104,100234004033234,101222221020440,100011111021031,102002204003400], + 1410000332231040: [112012012002100,102401024020221,111231012242301,114444004140210,102220210203210,100000120120001,110031214200342,112433204041220,112120304021020,121000442023140], + 1020202200301343: [100033114200011,102201130200131,110100111221242,114020202201002,102100300233312,112002024004122,111021044400403,101231020300003,102203210201342,111201002200020], + 1043210210001214: [102300120220103,101210021011110,100001424100120,100020100200010,101020200320000,100020114202320,100400000033202,101131014023031,112102400204000,110003204210204], + 1102032121202033: [102003224011000,102304420211002,110403042110030,100101400000132,100032424312011,101110301040312,102204010204023,100220000432400,103011024000103,110100104220021], + 220024203101002: [100440000030040,100023101001004,102001014013004,101201104040034,102101000233302,103210210100210,101013101033100,101043004211000,112340340200112,100001000010010], + 124100032040200: [100012120201211,101410044020102,102011014010000,101420031011004,100000014310020,102111001341321,100022204300002,102202122000302,112100222300311,100321100443000], + 140222200013230: [101302134233230,100000130010033,101030404212000,114102224000201,100022021041122,100020001042002,100013011020311,102103331400000,100120041020012,102012204000242], + 111100234220320: [101210320301302,100440024301100,100101041040330,100114104101001,101023221000031,101400014040400,102012034000402,103341124011404,102100122002001,101000011021414], + 1000100300110004: [111101010010203,110011000022102,103021220104200,100004104210221,100021020104220,102202410240103,400014404414011,102120001343001,100112004101222,114202332330220], + 123221213100210: [111124004101012,104102040011120,114103220220104,102120004001310,102430121110340,101021204000200,102020121102120,112141104020201,101200111020111,110001200422320], + 103034201102242: [110040011323003,100001024201214,103041221412320,103433121201311,130014300140410,110113211301114,103000044041243,110123210022200,120000031300010,121012002003322], + 313122200220030: [104103201240410,100011001021002,110000141012003,110112301300000,101040100004242,100300204010001,100011320043322,102204100232030,110110012110224,100003000100210], + 102102110004001: [110330400010040,100101231004020,110010100022010,111000100012002,110022140120012,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 110220242100124: [114000034010043,121021032342113,110220210110004,110221401304401,110420001101321], + 204200114002004: [100002121043000,100133204300040,102001024011010,114021112304224,101302321002232,101010120320311,101201101001302,114030212300112,100020301020200,101000000323000], + 1442041201011210: [100032041021210,110001041213031,102300324010203,110414300030001,102100142002204,100030020011022,102040011121100,111202012222402,111322234130000,102040041320010], + 240011033032001: [102331021100100,103223014033210,110001311210334,100002001211230,220321332020001,114410102321111,114012002212100,101100234021102,114203110001031,114121104101103], + 320202320301230: [103041220111410,101100202130022,102004201032002,114101012343012], + 234000101024042: [101012000300043,110422011240010,100010004101244,110100012142010,102011114001033,110030042003121,102120001340020,111023020021014,101010001002102,100000000100221], + 124100100111212: [110010100442102,114040002330340,102130014134000,100010114102101,100041001020232,100003044241304,103010014020010,100434044100040,100004204211224,102304200241010], + 101111020002300: [102310000222133,114111000222110,112034040231012,114104310000002,100101220021240,102220011122100,100001001034141,112013032002214,101404441100012,112123102010143], + 1021210013303111: [110102401201204,100212030414010,101400004022210,102031021441200,102300031004340,101200020303202,111340300010010,102013224003020,103013020123142,112402000200342], + 110000132011220: [402000401204030,114124020222032,100140201000222,110110000004210,101400010303002,104200202141001,130030220200012,112200110000221,1321002023100013,1103040030102440], + 211100120200012: [102102031320011,102223111000042,100041140201301,102140041342420,101000410321210,102140021410400,101013111000000,103011100120201,100000120202410,102300004110122], + 1442012230111130: [102110300311400,102101200234301,102302241004232,114100222340001,100423004100310,103210001410203,112014002003102,103020341402213,102021100240220,100021404302040], + 1133310214404000: [114040102210432,100031120101224,100034004211240,112040200233002,102113111343110,103234100101221,114002220010031,100010111040104,103103311424020,101030010320024], + 1104210302033040: [110112320021204,100034114100102,110330002104200,114000000030300,114101012201420,102112100210100,110011111104432,102000221034000,102041204000000,103310314020230], + 101000000212120: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,102001011100100,114402104142102], + 240022213020113: [100200101000000,103110431441100,102101324130010,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 110033123001102: [114132202312102,100021110200330,103214104034020,100400000013010,110222201200000,110302400012002,100103004000123,101230234011000,110404010003212,111020014110103], + 1023023400200011: [102013024000211,114021004011100,102140140310001,100402022200102,111010302203001,102110111023103,100102434300310,100413300430300,114100102341011,114024200040223], + 1002001000031010: [111220002220100,100000241020022,101133410300302,132200010004401,100030044202001,110114410003233,140200430112430,112144312011433,110012030002010,110000040024442], + 101004022130342: [112014212301401,112001400220201,102112311101420,111040102231022,102200220232004,102200002000103,111034214120001,110000012201110,111203202222013,103100401240301], + 1001004301240203: [102023000220003,102332320243001,101004204212040,102202014030001,100444021001102,110201400000100,112013400220104,101022424011430,112321041130330,102113100201211], + 1001041022401440: [103140114002241,102000301100100,102024011413201,101300414221100,102331201001140,102101001342004,102200230211200,114001042203020,112220022044223,102104411412302], + 1120034100432201: [100412004102200,100224004100041,112110302300103,101000140200002,102200404003330,103103311210320,112410004041120,110140001201040,103210000131020,100400040022210], + 103224420030002: [101000221034203,102103004021421,114130002312044,114200014001411,110010042001410,100222044342300,400000220124000,421200120000010], + 1130012401013113: [100033114200011,102201130200131,112002024004122,100410040030230,112120110200240,111201002200020,100012020420232,100000101222004,100100011204031,103010021223130], + 130301200121102: [110032022002020,100400110020244,101042001021012,101100104002023,100124021201021,100400000010020,100411201002420,112213021100032,110002004413040,101030404003400], + 1032010030042331: [102012021321102,102141000230042,102402201110020,114044020020230,102000230224024,102321001000211,100010001040020,102103120210312,110200440000121,112400204040200], + 1144220213313100: [101020000300112,100002020410020,101000001111200,111120214102000,102113200210140,103130020213032,100040041020102,102323204113210,102403031110014,114000012303410], + 1434334000034241: [100002004303100,110130010102101,100212034221414,102000041101100,100042004301301,100012021031014,100000201032010,114010204101202,100404000020000,100010210410420], + 122440000320104: [112012012002100,102401024020221,111231012242301,114444004140210,100000120120001,114210224102122,102100112004142,102130004020041,112223242033100,110031214200342], + 1100300320130210: [100110214103200,112020112300102,114010000021104,100103121010020,103202300102400,100000001021001,102202044110341,103322000144000,114030424122003,112013300230202], + 1000000212201230: [111112000011222,102403001342000,101003301020022,100400020033040,100102431021300,110200212041001,112044204000441,111210224410302,104110100014103,112310402020014], + 100000404140203: [100023421041402,101144134001102,103002144042123,110012220002021,102304204110040,100210020410010,101000414002041,114034422302101,110421104242000,110220302043002], + 121212230444021: [102403004042342,111122004101222,114020040013100,114000222213021,100000020401302,111001100020413,111301204111233], + 112200123010400: [112124004022322,111300210014020,102103201320411,100100031043410,101033214211000,114001100024243,111000142201220,110141112044000,100034244303010,102003104000032], + 102001124020313: [110110200001000,100140211000041,102302004110231,102203004032420,102001204011033,101000114000032,110330042104010], + 100021010030303: [111111000014001,100014041042003,101433010300204,102114321401000,103113204001423,100002414201103,102302010212201,100122234300420,100400320013200,102021424001210], + 114042414400102: [100002020100002,102011014001111,102110410200214,103222024031400,100230041210111,200023002000100,103233140101001,102120011022221,102100300201031,112100120200212], + 1202420101404142: [110340014422102,102140004000100,100231004220242,130020100202200,101202010301321,103000000120240,100021210200200,102304024110004,100400102040013,120020430310100], + 1012011001000104: [101011004212201,110032022002020,100214230430124,103031234000122,100400110020244,101042001021012,103230011412301,101100104002023,100400000010020,100124021201021], + 102040001310021: [100032041021210,110001041213031,102300324010203,101110044200100,110414300030001,100030020011022,102040011121100,111202012222402,102000221442214,102040041320010], + 130411200111124: [110400000002213,101101230331040], + 1032100440000312: [102002130222022,114010332302001,102020220201140,110021021120041,110044410433321,112110022014320,114123100221401,100203310014042,112000221110010,101410300301303], + 1111210014110112: [102224101113104,100312331004000,103301244010210,100101031041022,100142431013000,101000031001011,100000240003101,114202144102100,102102401412242,102311110222320], + 130100202002204: [102200211120103,102101204002343,114132040223044,100200411000410,100404202200223,111202000003000,110232400010300,100131201202420,100220111000200,103100110110403], + 1040201443220342: [101220040300414,102121211343322,101003140301001,102410001111322,403111002011011,113210210400400,1140104002020100,110102000002203,110011022100114,1010000000034010], + 1020411101320021: [102102000213403,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,101002424214013,100012101022110,100034110410003,100400222200110], + 1144220000000000: [114132242201400,100033000122213,102140011140002,110110402012311,100041200201020,101422000302424,102204024011121,101101430332010,102401240201330,100300010420000], + 221002000010021: [110301011320314,111004014402201,100132024030302,121310400440314,120100331332002,100001000001210,111002204403002,132303424001013,123320003100311,111002002142200], + 1000310012201211: [101420104040010,101201201022032,111301210041010,114340002303220,100021204100214,103144224004012,111344320041124,101120011040200,110042004410444,102043040200002], + 1030042024010100: [100300110110121,102002322010030,100321101000003,102121041101300], + 112241022420200: [102132400232131,100114234102203,114001232300102,102323324112410,114400112311040,100422140030210,103000041402003,102000141133020,100000104102100,114212344000432], + 100322220141000: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 140000220120124: [100000131032010,102300011004200,101010001030220,102100404023424,100012200101131,110032302102400,100140204233112,101042141032030,112414042011121,111020134112040], + 121200141102401: [112010002002030,100010401234002,100002334202400,100023004304344,102102010214104,100210021003100,101100104022212,102112004000230,112000011110231,101022000320113], + 322000014100120: [100002101021120,102102012003220,114110004121301,100104100422041,100001044241012,102030420223110,112002220220002,100200011000020,103120321442020,101444321101021], + 200230204201114: [103130234002321,103302040111403,100322100143040,102020001440401,100030240102022,102303320221102,102011221440020,102300001001300,103311034030000,100022401001413], + 1210140042010010: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,100132004231230,102011004013000,111200122222334,102301024113440], + 1100130021002201: [122001010302041,102223044011234,1004130302142412,112021122222211,1301222204300302,1300100202010022], + 1021112020424001: [112303341100100,100043020123004,100110001000000,100000011120003,110300440000022,112020001110030,103421114002100,100200200430302,112033004000010,103134410122013], + 102303000232301: [100104302001300,1301223001003430,1302120110232200,100021204230002,1401214001003110,1023121121030343], + 1033201020042121: [101000004210020,102210314111120,100032300010000,114140404123402,102130031410200,100010300414000,114310134003100,114132302200001,114011014014042,100013004300240], + 1120100203000132: [100021000104004,100002200022012,111140204103210,140004010302423,114200320003120,100200113201000,141220400002200,100044231103400,100411033204412,110000001210210], + 133021042110020: [103000004002012,100002011042020,102110030200120,100301421002002,100202140000111,114001032300011,100240101000030,101003104212220,102302211002004,114030310012122], + 1120231232100210: [114030400020232,110000011220401,102112340210300,103001024000200,110001031300042,114100214000010,100000104201200,103000304010211,102110044002000,112104142300201], + 1203000001120304: [100232121210011,112022200234200,110043132100300,102220120203200,100002004201122,110132031134031,1220302241034202,100240200430040,114110342312140,1202111000310100], + 112040400320300: [102120221022200,100032011000241,102311011000014,114000030020101,112044414003133,101010300300110,112031121113040], + 122002002221023: [102300000211330,100340111000000,101211411020304,102314311100010,112432002023000,100122401023041,100200101000101,100400142200202,101311420343002,100201004220340], + 1001020210310120: [100000210100030,112210322040121,100402042200000,110001440041003,101402010301000,100000220111021,101000430320220,100401022201110,101100001110030,102210011101110], + 101021001312213: [102000402041014,102041410242244,102101220214011,100022010411004,114000424102300,102323201000412,102212434110001,114240044000100,102141020210132,112102314020000], + 220000000210202: [100301300121100,110042400130000,100021300101201,104101201240100,110000011012202,101001040302400,101244324043222,112102232300222,102000020241101,112311000204002], + 1000001024120010: [110200002031302,102040021121030,100000204130001,100412441010422,101010200312020,101040204210210,100000201034001,110000324412304,110000201230100,112020024000010], + 1022230100012100: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 130100320202304: [100322014312444,102022024010214,101030004002122,100000424310110,113030342402110,101000331020102,110340342021001,111042010024001,111223010011043,113000200130000], + 102220224200222: [111001440020003,102001000212142,110200020010003,114121000002140,100002214100100,102120104003011,102120402000014,102000200210032,100041000100422,114020002303212], + 101120241111204: [102112200201012,102321104111003,111111004400103,112100022300110,100200410434002,110002022130324,102004221132241,100010000002102,100221124121143,100414300433033], + 1141030001400100: [114410002324204,403111002011011,1140104002020100,104402130010100,103100001242220,404200120320000,101201220402420,1040212001001234,1323104441242212,1001120000022000], + 100200114000013: [111100414100001,101004424001020,100120134234441,200010322231000,100203411001100,112132020203121,100000004211010,100120030402000,112123134024011,101010000313133], + 1011402012100420: [102142221342202,102001200221011,102420000202033,101000004010012,103024000103302,100012020410400,111111102240001,101301014220002,100000421024110,100104000101010], + 1110210222231122: [100200201002303,100043104240004,110422102121011,102042204010212,100023001030202,111000200040314,101014404011012,101014001001410,112000000221100,112030010234104], + 102231442403400: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,101302121004422,100000010011430,100110000000000,100114420000140,102320021100120], + 120102020232100: [100024000110221,114130014001202,110010220103020,111004100022110,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000], + 1004221011034003: [110011111104432,102143421000420,100300000441223,100000001024104,100104041000002,103102000123210,100104421021212,101012011111122,101120011140202,103100114000402], + 124131130120010: [110300120403013,110131002010202,101010010320020,102410124022400,102300424112201,101020004001002,100030031220030,100010100420004,100120300002212,100112211224031], + 1100222000410322: [100440031001120,102020200223310,103220011420242,100031201030331,102032012000101,101001400301113,112102102302000,100002120200101,102112011401424,111242110002213], + 1424112110000203: [110310001202220,102300321004202,103003441432012,101340141003001,101210100300100,101014424010103,102311410222022,100404000033120,112000112001400,100004110012001], + 130013214040300: [110040112132130,102221041100201,100204004121023,110111111010000,100413304100413,112134000201310,101002401110142,112230122030224,100110130000123,100200201213011], + 102123130022002: [101222101202341,110301442021010,100010024302100,100000011020412,112041000220020,102022400210202,102003034011323,111300000001323,110000002001040,110101000121214], + 1022303220040011: [100002100100210,102420424042020,100010001032223,103020031403100,102200401111200,102000430221040,114003104031111,100100000422320,100102020411200,102100012002000], + 1040240023122001: [102400100230000,102114022004023,101022121001000,100213310112333,102302020212101,102300104110002,100104201020032,112402000200342,114303340000001,100030004104210], + 1000000344001020: [103114001441122,100422004320024,114211110023303,111000302230100,102300011002030,100120220000101,103001101422012,4000113102314022,1400100000042343,113234032301042], + 103424220312220: [110112110030020,102331414110004,112000322311331,102003041130020,104100122102020,103001101240031,114211140213100,110201030002222,102212010202013,101102001100033], + 1103010110400302: [114124400000022,1104100000042000,1302001134003203,244000303210100,103100240003304,110000011101202,1310001001103311], + 140404030301404: [110111041011032,110243310101220,102221230200001,114100212200003,100020010022143,100101141010322,102100311400022,114003102303200,100000044310330,1311120031020142], + 121400400000310: [100020300200110,102342110212020,100042000200211,100024024200032,221123404200214,100021024100301,1101210010010223,102042000211301,1300004102024404,100000241033100], + 1142122203300140: [101042410301221,110432300102000,100102024100020,100011004102400,102304000210204,110040344210011,100003320401100,100020120101000,100003200020112,112143144020012], + 1013003111000104: [103300034021000,103311011404143,101011010320431,103041414001042,102441324022342,101041301000020,103220000104122,100220121003120,103220114040342,102040124010141], + 1002031042114021: [101012400304201,100031044300340,103212014020132,102102030214401,102021420233130,103220300101010,100102104301413,111130410020021,101022000302211,101232020300432], + 1043110110000102: [102214011111041,101020341034234,100002401040201,102113101342000,100212304243333,102302424110100,110002010042440,102022401412124,100121210402002,102212004030221], + 1001331032004111: [110001422030011,102144314002302,100220024324023,114200112340002,102343014022001,100211000430431,102142004001013,101213240301002,100140200410200,100020020120200], + 100000402043242: [102211230244321,112121214040022,100010101030000,100004004100120,112002100233204,102200121300400,101030224004130,112400024011003,100000004214021,102012141440022], + 1430140040400140: [111030212113431,102001111011201,110044320441241,102233034000002,110311110410340,112101202012010,102112314002011,110000121222112,103020040104002,102004004000010], + 1101003002401013: [102002120203400,100002020120200,102141004001412,102143000210010,102120221410141,103241001400040,102330124110411,102303342001023,100000024100200,101300124233021], + 1134041311041020: [101010001003010,110203112030000,110010034202123,101001334211011,100100310403103,112200010410210,110442004241010,101400304022340,111230112220110,112130400202001], + 1024004010201221: [112401024044240,102001000200221,100021010004200,103213004042404,114203400000000,102002214003000,100102104300111,112222420202010,114014124030001,101303104233204], + 1010021300000202: [110241024242442,110444010032242,110300112023012,110224200113042,101000020301410,114000102210200,101041001032310,103100100100104,102121414000042,110024030001401], + 1022200021121321: [102113300230021,100010044310002,130000420243230,100232104120201,102212234021233,100100341202102], + 134103120400201: [102302440220001,100104400403240,100020111221020,110010122102321,110002322101200,102220124000003,101020201003002,100230300001042,100311334020020,112400022020023], + 103320410200011: [100011004340114,114300204032002,102101101140040,102000021444112,100003010413400,103334120114003,102102030210111,101201041010123,102140341343300,100130204300200], + 101000000034003: [110130314400100,100032431030100,102022004010240,102023211411003,102340200224222,114002014033200,100004301021110,101010124001000,102111244000012,100400000034231], + 1010041121304231: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,103220011411101,102042000222002,102001011100100], + 211402012042204: [102240120244002,402010003200010,101003204000004,102204424033103,1014410101001020,112010412020141,1002001101203410,110020102120001,402000143220001,1022200220012110], + 1024402042014412: [110441140102024,101004120224442,100413311002132,110210301200101,110400241240242,102210101121104,110023102103200,102400140230123,102112300222001,102000024010002], + 104033122104203: [102001204003131,102101041340032,103010110120332,100012020204300,100001104301010,102320110243020,101002020304011,102432314021013,114001400022003,104010000000320], + 1000000210013001: [101301014221122,114220040000201,102102204022310,111040032200021,103030040121410,114040210022000,100404400013222,112010420241002,112201010203210,100000214310412], + 1422024020131310: [103000140141214,102110000210300,102422021113012,104220041321240,101021321034010,103422421110341,110001120421122,101440000330201,100112044302010,100000114300210], + 200101430023042: [101321001000010,102042031102112,102410111110002,114102302311211,114034400040402,112122334022424,102122000212204,100422021002002,100010100102032,112010344023013], + 121000110044130: [103102010212440,100021120412010,102002344013100,111200302214000], + 301200000024111: [114020000030002,102430401401200,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1002044041220102: [100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,103202014031021,110212424242341,100101014300100], + 120100240203013: [110040022130003,100030430422242,101120014204000,100100014230110,111002132202012,110201004241002,111004012200303,101000131142230,114200010213030,112001204023241], + 1020000000320004: [101032111230411,103010110120020,110100032122000,101020210301131,110304002000013,110200001314040], + 1003212301102334: [100042304102210,112202000411103,103202000110102,100013030100002,102020440220202,100042000000000,102334021001211,112000021122010,100021111043012,114003022300020], + 143014043212013: [100012001023022,101104414002010,102112012004120,111112242211204,110422020000111,100000041201200,102003340204010,110003004420010,100030201031300,114110410231111], + 100014200010414: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,114040210022000], + 104220102141320: [100011231042030,100020034100101,110004424200024,102111144001232,103312300110101,101403004022114,102000441132020,102024044012212,102222244040141,111001012203002], + 202402000201323: [110403244220202,102001210223212,103113014002100,103030034003020,101144010014213,110120400402324,100402340010310,114022234031002,112010440244302,112120424043000], + 1101110101002030: [110301222101110,102230040200031,110122001010214,102023301102400,100030414300112,114043140010022,104120110010402,111010214402000,110303104423010,103140104002400], + 1100110032402300: [100024000110221,101301014221122,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100141021004020], + 1020010000100113: [100122004300410,114443330001442,102000224000011,103001104010010,101212040303123,100111201014214,102024001010002,100021021000101,102030200240232,100011124202310], + 1000100110200003: [110111111010000,114120014004003,110000031031240,100002244111003,110131311200401,110441222110003,110000120020421,112010204002340,100014200402310,114110440000200], + 220034132222212: [102334004110232,110311331003000,101020240300003,112300032000100,112021334001000,101000100322140,100144430411240,111000024401300,114010010002314,102321040213311], + 143132242124002: [103114204002100,114230004110101,102142002000030,114000024101202,100100114302030,100100014302013,102020121130000,111310000002001,101022000322402,100002114104410], + 1100020000202210: [100012330001024,100020134300020,103102000100210,111224340011202,101140004203010,101220004013020,101002004010200,100001020120320,102120011022221,102100300201031], + 1140022243233000: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 1003410102003110: [101141314000221,110033101314000,102203111103200,111000000001211,112304041103131,101041014010212,100400310013004,102220232001303,110020102202100,110301120042202], + 1121012101041301: [100011201020234,101221000302204,101040010311213,114100200002111,101000034210022,101322201001022,112420042020110,102110120210211,101022310300133,102014400223314], + 214201002230210: [101001011114020,100030044100103,102012040223003,100002110014312,114042004100020,110320042021132,110012312014200,103000000110000,112000202301020,100200110002212], + 1030020004011140: [100104010021241,114002014033200,100004301021110,101010124001000,100210224243223,114020214022000,100124011040300,102103020232040,114114414122002,114102102344110], + 1402020020440003: [114010034012014,103200031411100,100010004300024,100000324340102,114443200000122,114000102300102,114444124143021,102101000233100,103030024020041,112100334020030], + 110020003122121: [102101211411000,110032022002020,112032040234431,101004310324302,100102224033421,100120040400011,100400110020244,100124021201021,114011120010030,100200044121414], + 1003312101421000: [110011111104432,101003201002421,102034004000133,100104041000002,100102240002022,102112411140024,102113000210043,101120011140202,100222200010312,102114101120004], + 223242040210040: [111432404442442,114421102322111,110241022112013,102110010230101,102111401120001,102401224021023,111002004401000,100000024102020,110002232202002,103014044010100], + 102000320311023: [110414402020021,102142030224211,102011011131130,101000034000220,114312012300300,112402032010131,114102140221100,103210120100143,102112411342231,101010024213100], + 1144013000030010: [102000020223013,114040102301100,101022020340004,100020241043022,114413232320000,100100001040134,103002034011114,114441124140100,114440200000000,100002004130101], + 220444412203411: [111142010020301,100000144104100,101014014000004,102110021341000,112440220203204,100100104102141,101033141030001,100001144100001,102111210230204,101003400322022], + 100000033110323: [100003011041040,103200141404212,114014010043112,110104140001020,114001112300222,100203141001002,111000312112404,100400020022110,114122440000024,103000020103121], + 1424010020100024: [104130242103012,110100221223104,101022024010004,102000101132400,102412101112121,112023140212112,102404200230330,102110244000130,114000312301300,100102304302000], + 1020221120031000: [110120144200000,114022412330004,101200221022044,101041030320401,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210,102103321411004], + 123314020421000: [104210402020230,102020230211204,110403022010001,102331004110020,112400204040200,111200124130121,102444210232043,100002110402000,112111240220303,110413002221000], + 1101010402212203: [100014100100001,102100004130301,110100001200320,111120004100414,101034024000101,101243024011000,102200230202120,103340410140122,100010021221221,111012202111021], + 1040320000224321: [112314301103022,102000222003200,110112211000311,103100001440000,112010402302400,112040400213330,100100404232002,111000122144002,103010141244132,101032301032001], + 1004102104014200: [102301004110004,110402420402001,110021021210300,110404000000012,102000101120123,110020310022021,110301322104142,100020311220412,101121021020012,101004301001120], + 1402002011201113: [110011411102000,100022001022231,103100201440230,102314032000332,100002001002004,112002100214012,112112424020223,100002134302300,111120000020100,112020020231002], + 102010201033224: [102022004012201,100000024210130,102034221103124,100034024104211,100014030200221,100020134212021,101201004203204,112001120220130,102010101320314,102102230203330], + 114201403032204: [101000004000241,100120000410020,102311000240202], + 132001440041043: [101004120224442,100413311002132,100320421001431,101233021020010,110210301200101,111131102210013,110400241240242,101001024210000,102210101121104,102000324010303], + 1013001222410000: [111214100000104,100430221011100,110422010000200,103112021442033,110044014410012,100112434101120,110030231214100,111121012243322,110100144404220,110004001040434], + 1020121032342040: [101000041031301,111221212223401,103214400131240], + 1112003201020140: [100042301001230,110002240134040,100020200023001,100040014310020,114000014100101,110031324200020,112202304002043,101110310331140,101003311030410,101000201000000], + 1004412014011021: [100004001021111,101021004214202,103022021431010,100003000104203,102101220214011,102114320203000,114001112300001,101003104212220,102120231343021,102311110240101], + 1430110020341110: [100031224102002,103000021431010,100030100104000,114032002301221,103321004033302,111332432200404,110013234211140,102100221341020,114020004100033,102220020200000], + 120032410221422: [102044314000340,100000210100004,132200430040010,122333101001221,131001104024402,103203211411200,101003210300230,103004004012040,110320010100000,110003000143033], + 1002000121311220: [101220300304010,114203412342202,100010031030401,100101001010214,101012014000204,102334004110210,110203100100102,112032400230000,114411100002000,101004004000022], + 1114000414100400: [102142221342202,102001200221011,103043404000202,102420000202033,100020101020404,100002411021201,101000004010012,102110010210330,103024000103302,100012020410400], + 1001130132121100: [101301014221122,114110200212210,114220040000201,102102204022310,114040210022000,100404400013222,110012130410040,100104101200201,111040100020010,112201010203210], + 1410122202341013: [114010200040441,102011001134111,100000344100100,102302011002003,100012441030002,101022114003000,114024210021201,100013001041311,102323014020022,100120001021200], + 1433002000024010: [112411140200242,111201202221200,111123002210402,100011004203023,103001241432010,102022020220023,101010020304020,100010001043003,112142020420000,100140001042400], + 124102122003001: [100002121043000,102200031002000,112201011040200,112040101110000,114143223021220,101102312120003,1203020102314000,101043444211200,101210000300324,1301400104300023], + 110010233130000: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 210302001041220: [100101024303332,100013201020230,112300101101010,114301302323032,114200304000002,1300040101002020,123310121130130,143442111023013,402014100021201,1022003020311200], + 1200300210101130: [112202012024101,114000240030002,114002322300200,100043101221020,103244034020020,100142401000440,110021202200101,102422010203030,102202101300002,103230031200102], + 1100314214013301: [100024000110221,100110020031042,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,100211000412142,114040210022000], + 343202010004200: [103222114034232,103221204032410,100004004102410,111121004103434,102112041020001,102202014042012,100010001032200,100221110101420,102441030231300,103032000144301], + 1002010010013340: [103020031403100,114000044020204,102302331003300,102320000221020,110142020400012,103131420221204,102120141343312,114321114032200,100142011022211,114230344103210], + 100101010121421: [100110020031042,101301014221122,110422102110221,114220040000201,102102204022310,111040032200021,103030040121410,114040210022000,100404400013222,102320234030000], + 211000110104320: [110301222101110,102023301102400,100030414300112,114043140010022,104120110010402,111010214402000,110303104423010,101221420303120,102000324040402,100100401040001], + 120302301110101: [110300120403013,110131002010202,101010010320020,101120101100112,102410124022400,102300424112201,101020004001002,100030031220030,100010100420004,100120300002212], + 201402003042204: [114212012310002,110001420000233,110000230010221,110202110113000,102200301110320,110001040000000,100324114310222,100422020030044,110002242100100,101220100303222], + 230244020001220: [112020042344001,111101122102222,100241000430420,103000114001000,100003344214000,100221201210110,102322420210320,114124040000002,100112001021112,102110104000020], + 1020004121021033: [100430014323000,112100021100243,100020224101220,100212101003134,103030014000020,100020024100324,101230011020020,114010214032000,114111240001012,102012201414304], + 240021120110320: [102020112000020,100002204310230,102430424022023,112110012010100,101040001021020,111010120040120,102030004000432,110021002014130,114010130032101,103031000100122], + 120044210000302: [102101021412120,110024020421011,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012,101010404010000,101000411001330], + 101420000132212: [103034010121101,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311,114140004123122], + 213000021301220: [102011114002011,114101042202201,102144201402040,100014201021012,110000214214420,114021212301131,112010112000311,110030441223002,110440002111230,103002044010020], + 1022001442221000: [114010200011100,102312300220000,101142014202110,102310110213220,100012001042030,102000404000400,100013040404011,102004004004200,101002134011001,100300300421030], + 1132130244110420: [101221121202421,111042022141200,102300220241031,101441101010020,100442220030040,100100241020020,100002004342004,102312200240012,103010330100320,110341420400423], + 1044123221100003: [101004010304203,121200013012000,102122210230200,111001410004002,103110411212041,110023000042010,110244400212004,114410104141020,101002021110410,101010010323022], + 1000222200012004: [100001024201214,103433121201311,130014300140410,103404001214121,110113211301114,103000044041243,102300002103012,103204104020400,103202341200300,111400202101243], + 1020201000000102: [103402021210242,101143011131002,100001441032301], + 1422401100001213: [103300021400021,114212222334101,102303214113000,100101310400220,111223010011043], + 113020033000101: [100110020031042,101301014221122,110422102110221,114220040000201,102102204022310,111004100022110,103030040121410,114040210022000,100404400013222,112010420241002], + 300143320002020: [110013030403023,103010204010010,112003002030002,110401231001202,101031211140304,114230110212040,100111110400003,100000034301140,102111011142022,114132142312022], + 100012211024240: [101023211102101,101012104001020,102022001101234,101210120302002,102000304001202,100010300121000,101233100300011,100001314100400,112101201102130,101004040320002], + 1100331204103000: [114420112320212,1020343020202224,1010122010001200,1303010022004241,101012041142400,130001344030034,400000133010010,203322214210110,403240003100140], + 1002220100012020: [100032041021210,110004301222000,102001301120112,102040041320010,103203401400132,103142111441040,114142044120310,110220410000040,101030004010034,102201411100212], + 1100104411021114: [102202201120000,114301022320021,103030404010000,112100102012303,111302202204022,112003402002003,102012044013241,103234004024024,110012010122100,100101004232101], + 1040012233000202: [110311011200000,102122100201100,100120100400303,110202202032022,101020330314241,110242101314034,100101020400000,113112010233312,112004200210302,100023041230312], + 1020434431040110: [112000130230100,114212002340000,102203204044020,110412004242114,102120012000012,111412104420221,110002220023400,113201230210100,101012134000100,101000304001213], + 1101001244010020: [100041000411231,100013014102414,101004204210100,102011001320032,102140040210040,100034134300203,114202000000000,114312012320120,102010031444104,103313300113232], + 140100120021021: [100040010001010,112003031110244,102014004002102,103102214000020,100000004211200,102022401131220,102301234110020,114011410020033,114312104030000,102332401000010], + 1240012103022112: [110021000410432,101010010320112,112000021122010,100021111043012,110124041140000,103300021402104,100010044101002,100001000100403,102344011000202,100020124100010], + 1400440000000120: [103122020213112,100104010021241,114101100211240,103012011434022,114102102344110,114010002300003,100112110020301,100000004102124,100022301000112,114121030220301], + 1422011000000201: [1034004021300110,102001034010113,1100440001000000,1020401400011242,1042410022214002,114222442341000,1042210303140101,101313330340001,110044101320101,101040201121012], + 1000034310000311: [102141040210012,100002230102232,114110012310040,402023203200200,422202004012314,1004020103113032,111000000001024,110230020421020,400020112402100,101010124002440], + 133143012100100: [114000242200010,102011201412140,114000300014032,100041121022141,103012204000012,102100100220230,110400032220312,102000211410100,103334010111101,102010200223020], + 1142430110043132: [112001232000034,111203102223243,114112434000040,114311400000224,100040101001132,102113232001100,101110044000400,102102021002000,100101021021101,112001010242211], + 1101310100024300: [103021024013303,102001034010113,1300102201211020,1300022002310414,101313330340001,1112301032024000], + 110032413122402: [114001000020102,101020040300010,100213001000212,100002004212420,102121014002022,100141404233000,114131002342130,110002022003101,101020001030204,100403122201202], + 122114020014230: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 122410322020002: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101100104002023,101042001021012,103230011412301,100400000010020], + 200012131210203: [100201104211021,100020104100331,100432034100300,114021140030212,110420241240103,100030200001122,100004341223313,101200101022022,112011011120400,112211200411024], + 130001321113022: [101301014221122,114110200212210,102102204022310,100104101200201,100002204100101,100020300102123,100120430411222,110014314410140,100022014302423,102221101122111], + 1212102022410221: [100111211021233,112001022300000,100203210003004,101214000012021,110003001024303,101000044001103,113411101044400,110110011240242,113020002200000,101104010310340], + 1402400121202023: [114300304001000,110023401320200,102301224110000,110000312001020,102133211401043,102010214000003,100010114200031,103002010100104,100220310430010,102410110232000], + 113121200120004: [101022014222024,100032000101014,103030104000102,111311002224001,100032134101100,114201024112001,112010024023002,100000421024110,102130314134001,102011211102101], + 1401420201003400: [114132202312102,103214104034020,100400000013010,102142020212132,110222201200000,110302400012002,101401140300144,101230234011000,102202000202411,111020014110103], + 1141024241430004: [111301240010310,101300400310002,100000311221002,101120321040104,100303101000021,111001212232021,110002300420010,110021002003020,102202110230404,100240011003010], + 1420012001304124: [114010024033002,121000042140301,1300102201211020,101201001024132], + 1120003422140130: [114002104014300,102000311102212,102010004040000,112433112020200,112301312020123,102000201101332,102231041120104,100111304300020,114132420004104,114100110220013], + 1222140100122003: [111034014401112,111302202200213,100030241043214,101421001021031,101300400313000,101220040310221,102320030240003,202030010203100,111101422241002,114431310000020], + 1430041300203020: [110000411313130,110400000001201,110000010430211,110001212130303,100103301002044,101221311022241,110100231202400,110020102102000,100000201022030,100402021012201], + 110232022201000: [101001040340004,112022334022101,101011324004222,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230,100004221041210,111103212211022], + 1112000320000024: [101032111230411,103010110120020,110100032122000,101020210301131,110304002000013,110200001314040], + 1032100004421232: [102340101000014,111203032220113,102140200212214,112241010203003,103010101412020,114020110001011,101031140301430,100303021003013,101133001110034,114004000021113], + 1004021000312004: [102042310203001,114010022302104,102002401444410,102300200220002,101141430330003,102121211343322,112111002010002,100020314100010,110000000040030,110130144202012], + 1040324200242131: [101032000323012,100002201031130,102003104011100,110444300101200,110011024414011,100011104344414,103300204014142,104133200011000,114203022320321,112234142031230], + 1002101401014100: [100032041021210,110004301222000,110414300030001,100030020011022,102040011121100,114310000001232,111202012222402,111322234130000,102040041320010,103203401400132], + 112013004010200: [100221414100030,101042234210011,100001124311011,110322002100130,110000032003020,110011404202441,100431344122010,114120434002420,101022000302412,111000102202120], + 134312030143303: [112003000224300,102043100242004,100430214302020,102012004014321,112410112024141,114100100000120,100000044230421,112041031110300,114121204120122,101000301142210], + 1400041101200320: [114423100001142,100040214100420,111304104130300,110221030000000,100402210010221,114000200023022,110200420000411,100012101214010,100022300042040,100300421202043], + 1044310140020021: [104100002100221,104310001300102,102000321102310,112000044002102,102134044134410,101202001022000,111300220000230,114110032343001,100110101040020,114012222301110], + 103001000111042: [110430000400002,102124231401212,103032201404142,102243044041110,100100104302010,100201210430001,114022042300011,114113000220431,102101041412000,110022411321002], + 1142200100121230: [102113020210002,102031001441000,102011021440030,102121124130314,112032400230000,114200002320110,100142110410122,111030002200011,100124024031000,110002020024020], + 1002100022012030: [110040022130003,100030430422242,101120014204000,100100014230110,110201004241002,101000131142230,112001204023241,100104044230000,114022024012213], + 200002000024220: [101011004212201,110032022002020,100214230430124,103031234000122,100400110020244,102044021101411,101042001021012,101100104002023,103230011412301,100400000010020], + 100002014220224: [100102000010243,112300042020334,103012200100120,110402000100440,100011110200210,102131020200344,101030414210000,102201004111020,100000211020431,100442024301200], + 134310010102002: [111210044131101,101242421020211,100000001224221,112301111130031,111204200002001,101242000300323,111141010000303,110210031200000,110100112141101,111230044134200], + 1430404024014400: [112000112000031,102022124012030,100143220410040,112024000213011,100103030001121,111000004400110], + 1111030010301130: [103100030100010,101400004022100,101421100301230,100003414100400,102013110201200,102300121004222,114221004002212,112000230220102,112010022302321,102000324011143], + 133220000022012: [101042010300204,100001021231414,111222034100421,102012304011012,103414304004120,103120104002021,112110102310101,102000101102200,101020034211130,111212224410011], + 1040030243120202: [102022200223242,112142000203203,100011210102401,112010102001413,114423224140221,101200004200201,101411400334310,102244110200013,114140014120332,102200111120010], + 131020030000000: [101011411020120,101000010201420,1320010021102402,201200032021040,100040011432042,401000020221031,1440003320032101,100201001100200,110021020011204,1041011113104304], + 1131042034110330: [110211010012201,102014000220330,100010110000100,103122210103032,102310114033120,101032134211200,112113001100100,100030001042002,112024100240013,114204302322004], + 1100031110040021: [100310120141002,100004001021111,103022021431010,100003000104203,102041410242244,102101220214011,114000424102300,102323201000412,102120231343021,102212434110001], + 222004301010330: [100024000110221,114130014001202,110010220103020,111004100022110,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411,102131304003000], + 130202311403002: [114034220041220,102102031403230,100024004210111,102002100222202,103343010113030,114040202214201,103200234030122,101001100320224,102140020210040,114121114121401], + 132140024010423: [100011011020440,101011001103200,101002121000111,114023314013200,102040104000040,114022120040112,100000201024213,114003422304142,101400031014311,102110230200201], + 1004302302144101: [101020024001041,100200201000001,102100000210002,112224232044014,112002100240200,103032004012111,100001404100110,110131022014120,101213110310042,112000002000110], + 1402400004023031: [102202204040010,114200402332011,103333040110114,101022200343023,102000000221222,102011014001111,102101001342004,102103001414002,102022011101012,103002014010030], + 213034032030421: [102020314012030,112014010202200,100000000410010,103201000102140,114220100000331,103231001400100,100101024101100,103012131430321,110414002024222,112321001130024], + 101201440241104: [100024000110221,101000130320340,112401314040311,100110020031042,110422102110221,100220124221000,114130014001202,111004100022110,101002201140040,103030040121410], + 120202142213301: [1122204031101014,1001412211040002,140011220320300,103144011212002,1304032042210300,1100220200041014,124211403120110,214301004122000,1003124230010302,1003033202212100], + 1040020010132001: [114043010040031,100000101232023,100110044032141,100000021030000,110030102131421,101000204001222,100243331003301,100023200423040,103231010103110,100002404204111], + 1022301000020002: [114000024100022,101020030332430,101022004214304,101001231032003,101001020322010,114112244122013,103310220113140,102443421400110,100043041020120,114200202330330], + 200000200130000: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 124300020100404: [1300422220310121,100422321032021,120032010212320,411001103222300,411311131413022,1220101103414143,320440200013001,410000244003240], + 212210122040221: [114021222212030,100020044100000,112440102010141,102024011104230,101003134001003,112000032314010,102131011120000,100220010412420,112012122000100,110000121024413], + 101211020120212: [102111024000402,114321002320001,103220011411101,102001011100100,114402104142102,102311120222404,114020404020132,101220111023331,114220014111304,114400202310013], + 144400423212012: [114231202331202,100003021234044,111102032220111,111300042200340,101010041032322,114020042300022,100021421020002,102400004040100,111120204100203,100122101040022], + 120002310030424: [111042000041011,112040232002301,100023124103021,102120411023000,102000000240101,102020040223423,102201110212212,101111201110101,100031030000000,102020214011010], + 1022001014201412: [101111104002440,112110020420002,1042102110020300,111403000002120,111001212200010,114131000001010,100032321230000,100400020022430,112201200203302,100400032200431], + 130044340234131: [100100300421022,101204121022310,100342220042002,101012121022204,114022002212232,100212220001141,110012102000311,112422000200003,102010004010020,114004104110000], + 102131002430004: [110100012120201,110020204200342,110002022002032,103303031402100,100004214301320,110302004430024,102023301101100,101000340000101,111203002221000,111143344100203], + 1043014200300422: [110000100422111,100021110200330,103302034020140,110201021201020,102100101320344,102331131001113,100021104301202,111121302103104,103314201402401,114221312332014], + 210002001114021: [100030220100110,100002114314022,102000100200100,102020400244030,103112100101020,114402102312001,110001102103432,112033300230131,110102002011031,110032402130011], + 111304114430331: [112142301101040,102340221000300,101000130320340,101121100332142,112401314040311,100110020031042,102011004013000,110422102110221,111200122222334,100220124221000], + 1122024011010110: [102424000230222,102102100210000,100002420121000,102001301320420,110202012033100,100004401020202,102201010202021,101210321000020,102002411102300,102200434122241], + 1402110011421000: [101000141031222,102000421131000,114404020003022,100421242201010,100012424200031,102043120222040,110200200001000,114023024101231,101410114043204,114241202320300], + 211022010223200: [110210114434301,114220024004132,100020100101101,102300310242221,114230012340300,112002030232410,101002214010010,111123224101232,112104020200001,102222001000203], + 1001011142003122: [110212022124220,100003100410042,100222034340301,101440044041401,111210012243010,102130124000000,102010421413322,102114020210302,110240301111040,102113131343200], + 1020403200202212: [100430020001120,103000004010400,100200021001113,100100301000012,111222004100001,102110010202221,100120001010201,103212111402314,101231400300040,100002204100020], + 100020000202203: [103044301431001,102101142002021,102010220220022,103211001412040,101004114210003,100403304320200,102213241100111,110200024432011,212240000101000,100022202042210], + 1100141402200232: [100043014203003,112332000411020,112230024010203,100000004244400,110024001211221,102012201441404,100131014234134,112000120241120,100030224300202,112202140201200], + 110320003031232: [100113220020101,114031000022030,110110200001000,102302004110231,102203004032420,103001000101304,100020110423022,101000114000032,110330042104010], + 221100101043122: [110020000114010,103202100102142,101020014000210,101002330300234,114012200021133,111000402224222,111230202241100,101013024014031,100242021003200,110100222000112], + 1044100431110022: [111122100010330,102302231004020,102110031342012,103001000141212,103211324003020,114014442200003,100103121044231,100101201041310,132012000000230,102320211001220], + 140022330311203: [100301300121100,110042400130000,103020124010320,100021300101201,111200020004203,104101201240100,110000011012202,101001040302400,101244324043222,112102232300222], + 1143120003240000: [114101024120020,102004011440212,103140320213200,100011204300012,100001021221000,114003134011032,100101234330123,110024000432310,102012101443110,102102104000102], + 112030000433004: [110100111221242,132344004001203,114303202300104,102100300233312,111021044400403,101241000303240,111330012201120,111021222200004,101000030312102,111001320002031], + 122300210010412: [100422000031421,110302040102004,101402114042420,102220021120430,111341300012200,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401], + 302201120300411: [114031004020241,102232401114310,110010412000231,110120324200000,110401014240131,102000004002400,103120120120122,103042204000321,100122004233201,112102311102012], + 200110400100000: [104110021244203,100200004301323,110010030440201,110041002130210,110020004414024,102103022002001,102102224000012,110322100104010,102100102001032,100142431013000], + 131002012300012: [114042304100001,101211240301300,101012220324031,110410412110241,114203134112000,102000000221441,101023230330104,100130124030404,103014140101101,111131132101000], + 1040014002021103: [102301211002042,102343402000000,102004044011020,110423400000221,100121221000004,111402144422140,101400011102010,110220001100213,114120200220012,102213224030422], + 1000433000212130: [102040431121110,101221020040220,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102042000222002,100030010102102,103312241402001], + 1124032330300131: [112203011103444,114000322300011,100002314302420,143310043400402,100120014234012,101104300333034,103202434024000,100302034100120,101023124012440,100023020000304], + 1021240141202021: [100043014203003,112230024010203,100000004244400,100131014234134,100030224300202,112202140201200,112001124000003,100204004122414,100003234202001,102311000240102], + 210031201011421: [110202012100020,101031241000010,102303010241010,102120231343224,111342020011220,100314114322101,114404232310120,102230130203001,103100034001310,102021401324232], + 200220002202000: [103200211420103,100202304341102,112203242043001,114110012310420,110104434402221,114323424033100,100030034340432,100402300022020,100004001021001,101020204002120], + 1021100200121000: [102330004110200,100000004134002,111202404440010,110100331001102,101020031001112,112422020201002,100100001202011,114104030222003,102320241000010,114220200211110], + 1100040012111022: [114213134000203,114300020001420,114133230000102,102400100202230,101021120323020,100102101000203,100001021030011,112410220202110,103141210104024,103200110102141], + 1002210140313013: [102020100211004,100300031003200,101023000340120,101020200302021,102021030221122,102241210201000,114040222301101,102140110210424,101201000300222,101002020342202], + 124101000140330: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411], + 1000311010001022: [110241024242442,110444010032242,112220001100200,114014130041210,100001041031013,110224200113042,101000020301410,114000102210200,101041001032310,103103210111220], + 111222444412200: [110300222104222,100002040410130,100440001000012,100403011002204,110202414214022,111002420031340,112432142020024,101103012130233,102320304030000,101112241010002], + 120022401312010: [114040100030400,102301011002321,101012011022300,100401401003240,114100002340040,110003301213002,103412224020402,112033311122000,100210001002210,102110120202141], + 240011012000022: [114400022321400,100011101222101,100030411042022,114304212302401,100000014201221,110200030001040,102312021101141,101010001022001,100020111222204,112022400231120], + 1003443010100003: [100140101044224,101120004023340,101000211032200,111010130002222,110200300000010,101210000300320,102120022000224,101310120314012,103114014004102,111213130001022], + 300030002203003: [114200212322001,100401210020002,110001440041003,100010111022102,100220300410430,101024201114010,102412220200003,110012222000144,100201214123301,114302122323101], + 1000202400203210: [110001332120300,110003000420200,110243234240200,110004014411012,114220040000201,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 110012304000042: [101220040300414,102121211343322,1320004203402400,101003140301001,102410001111322,400020203022020,113210210400400,110102000002203,1302200002412211,400100441040022], + 224200000220000: [103111001422000,101400004022100,100300041001121,101240004011021,101114000332010,112112211102024,114031212300211,102013110201200,102111022001024,103210431422030], + 110013020043243: [100114004100001,114102300004024,112102201102030,103222244003021,102420011111224,100020004300114,100340114211043,100033001220020,110232020002221,114233002340141], + 1412301200202400: [111304340002030,110102000401214,100100111044040,103140014002031,102024102020000,102224241110003,112003020220120,114113014000010,100043024210301,102014001130100], + 112341102400140: [112302112020021,112010032340022,114120304000212,100141410402200,114111202313213,101042041021001,100010031232443,101211414040000,100242024100000,100114020414244], + 100100340021203: [112142301101040,101000130320340,101214440300301,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102], + 1403020230013200: [111240220002100,102010111102410,101000110322242,110100001014311,102404110230202,100010020101222,101222104010140,102120400200312,102001144004041,102304244110431], + 1011101011001300: [100001141221200,101023001024400,112020002311112,112000030210340,102201000203202,102111320321320,100302120421003,111200300010114,102020341100213,102010002000404], + 1001320200302310: [101111140300020,102140200212214,101031140301430,100303021003013,112141320423240,100220014223020,112300140200131,103204200110201,101012134000100,101100034201000], + 130310031021023: [110400112011100,100321004011041,110002342100014,110241024242442,110021312002040,111101042244210,110441010002400,110124002040002,114203104001000,114302200014241], + 120120021320220: [100041000411231,100013014102414,101004204210100,102011001320032,102140040210040,100034134300203,114312012320120,102442424021234,102010031444104,102341021101200], + 1000300034321112: [104100002100221,102000321102310,102134044134410,101202001022000,111300220000230,100133204300040,114110032343001,100110101040020,114012222301110,103120440104110], + 320113202410010: [103000001004002,103012000142231,102344210242220,110102021011203], + 100340003310300: [100301224310100,103002104012101,114021000012031,103220130211414,100012324202240,112101102012030,110003410100312,122000430101030,114000022300301,100311000141022], + 113231120202140: [110012031011302,111200104411001,102121200313040,111011104401124,111201004131300,100300021202320,102224202023120,110334102021144,110304202202001,110421000003000], + 1024222012010320: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 1201111102102101: [100004001021111,101021004214202,100001010014420,100003000104203,102114320203000,101011001103200,114001112300001,102040104000040,102311110240101,114002002300302], + 102104300404420: [110441234224400,110310020040401,110202204430020,110310002221402,110030002130201,110242100010130,102103320232241,100200000000210,110200222111020,110220044210202], + 1141121340202000: [112202000411103,114003344011001,101040100302002,101203001010111,100310034310200,101000314000042,114003022300020,100031201030102,114201104114111,101041001003300], + 1000300210004143: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,102042411104200,102321410240300,100021014100124,100130244302034,100122040012210], + 1001000204022133: [103002001240043,112023420232024,112002002003003,110002120000000,102340001102023,101202101000104,102100034001000,102302121101002,100400230021400,110001200421021], + 1122211200020042: [110414402020021,114020014110120,102142030224211,101000034000220,114312012300300,112402012020000,103322241400404,114102140221100,103210120100143,110000121300012], + 1010020022012232: [111010204402020,112010201112142,100030134100201,112012424004111,112000020240130,111201000003100,112000204000044,101004014210342,103210000102340,132424430000000], + 1102434010413110: [102340221000300,100402002201002,101011014002032,102104101122100,102423114022101,101131201110300,112002010221020,111012030020003,112000011111003,103210230131414], + 120102000220100: [100002100100210,102420424042020,100010001032223,102111024000402,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100102020411200], + 110212320000212: [114402020004242,102242304042410,112032012004300,101001034002001,102000014004040,111020004400234,1010120030012200,101024411001024,1042012320010021,221104221024023], + 1102110000340210: [110230102122422,102300400220221,100013024201330,112120300420042,100100104100320,110404200003201,102101030220010,100020100411301,102001001133110,110102141201112], + 301300000140134: [100002100100210,100010001032223,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111,100102020411200,114200302341234,103002110100200], + 131320010420104: [102101211411000,112032040234431,101020004000000,101004310324302,100102224033421,100120040400011,100214044220201,100400110020244,100124021201021,114011120010030], + 104044310001031: [101444024041143,103020001400040,101023020301100,110200332041001,114004020010203,102100221341001,100011301000021,102014001441210,103204321414213,101004200341000], + 1003001222001421: [102011214000000,110100104403201,102214204040420,103023141400000,101001100300012,100403022201202,110203222040110,101011001031001,111300030040030,100002201032120], + 120000222023001: [112302112020021,112010032340022,100002104302110,110030222130000,101022440300020,110204434434200,102110224000013,110040030001400,114020210031032,100141410402200], + 1010040042020303: [102000220220104,100030004102002,103110114000220,103200021402002,114001200041204,114020114010322,102030401014002,100000020102121,101000201001002,114004220040304], + 1011004302140100: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 130200300211032: [100210014322020,114010224101022,100030131042200,101203004042010,114221000210214,101410044041001,1144030041011004,111104224102244,103400004000422,103130201421040], + 200010033320200: [111200200000232,101200101021000,100101001011114,101430004040203,103122104002013,101020404210020,114200104001010,114040414014202,100000024301031,101032010322010], + 111222320210000: [101301014221122,114220040000201,102102204022310,111040032200021,114040210022000,100404400013222,112010420241002,112201010203210,100000214310412,103042320101230], + 1112023202030221: [114002104014300,102000311102212,100130320031042,102010004040000,112433112020200,100042001020203,112023032000020,102000201101332,100111304300020,114132420004104], + 1012320020133003: [111112002210022,103222004002001,100003421042112,114240004110231,102024021130010,103200224020100,103013024002104,112012010230002], + 1100000042242020: [100010400022200,102420221112201,101224044041002,100010344310042,102103214000210,100402012200112], + 221201000122124: [114002104014300,102000311102212,102010004040000,102230130203001,112433112020200,112301312020123,103313404030100,101400201014000,102000201101332,102231041120104], + 102000221422040: [101011004212201,110032022002020,100214230430124,103031234000122,100400110020244,101042001021012,103230011412301,101100104002023,100400000010020,100124021201021], + 222402023100200: [112204410414103,100014030414202,102012021131340,100210104104000,110020401211010,114201214142110,100403000022030,112000301120301,103101104000000,101214010302044], + 1400100000000411: [100002100100210,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,103020031403100,102200401111200,102311120222404,102000430221040], + 224203010441120: [100202221212300,101001204211221,110004022000404,114240210000130,111240000001101,110010012102144,101020200301303,112000111120040,101120204202002,112030012300122], + 1001000013420411: [110432300102000,100011004102400,110040344210011,100003200020112,101000100340001,101300240310420,102100020214203,103000300124010,100030301030114,114211410004214], + 232110311230110: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,112002104003412,102211210242000], + 1002131400444241: [100002201031130,102003104011100,110011024414011,103300204014142,114203022320321,114201130210110,104103100010141,111101222240010,103110001420420,102000121100012], + 1200010304020112: [103114204002100,114230004110101,102334021001211,100001101033010,100000001024010,101000304000400,100100014302013,101204031024110,102020204010341,111310000002001], + 1003423010013402: [101112141012322,100100000401020,100211104104241,100103001220002,100400102200124,103000211221141,112201001104000], + 122012300113332: [103000000104034,101022121000241,111100004100400,112310032020303,100020014100010,114230304101022,102423124023042,102421000201200,103014121401311,100400002201020], + 203220132340402: [102122401340101,110021020001220,114420102323300,110112030401012,111112204404021,110404122110112,110403010000304,114100040214000,102412044040011,110411004223302], + 102002323000400: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 121131020121131: [100242430032003,101412131010213,102020010200102,100400000020210,102202010204130,100032000002120,100424011014010,100003040422420,110202344240014,111101100020030], + 1032234110020402: [101221121202421,111042022141200,101441101010020,102022031321021,100442220030040,112310010200312,100100241020020,100002004342004,103010330100320,101033300332204], + 1430002030101012: [100310120141002,103214010102022,102324014112020,102404021403141,103022021431010,103200020111014,100010004313001,103104200210410,100002200410030,100121031014040], + 1000010140210402: [100041000010302,112004202302034,114210400000112,111321314133000,101131024020440,102031014002010,101000134220400,114030202300100,102300040210200,101023001021100], + 102211000430322: [102202004042024,110140001010224,100000004300000,110000000130104,110112401320042,110020022003000,101011100331002,112030340234011,100010010204302,100310201003011], + 1121320023011220: [101031241000010,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110011300010031,110002401102404,102300010221010,110221021202011], + 1103013112032040: [102201000240040,101141104002200,103320300114001,100101000010002,110240302100000,100033411000232,103021100002140,111024112200320,113110032411002,111223220012232], + 124143012001001: [110040112132130,102221041100201,100204004121023,100413304100413,112134000201310,101002401110142,100110130000123,100200201213011,102030000221134,102201032021231], + 111012000214304: [110000112003030,111310220042301,112410434041401,110300024422133], + 1001214121413200: [102300120242120,110444010032242,112220001100200,114014130041210,100001041031013,102430001113001,110224200113042,101000020301410,101041001032310,100042424214220], + 102041023034012: [102310031100100,100000214102101,102230121123030,114020402303041,103000000104034,103020031420410,103100124003243,102033200222311,100002021020001,102000110224002], + 101201000224314: [100030231000344,112311011101001,110100124402042,111120402212201,100101021021114,102120404134413,101100200330040,110040212000010,110211202030440,114440012312003], + 1000201103200131: [102023324010020,114000004103003,111131002212014,102110100233222,102120311402124,101042421021120,114013204013220,102000100221400,114241204001213,100044024200432], + 1430200401000200: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 201034010042420: [101321001000010,101010424210144,102203011120021,100401140034220,100130014300042,114034400040402,100010100102032,112010344023013,114002002300222,102102131340404], + 302000002041301: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 1111012022001404: [102101211411000,114110200212210,100102224033421,100104101200201,102021001411110,114222010213042,110041102012100,100120430411222,110014314410140,100022014302423], + 1040133013000211: [102131104023111,102420130230104,103000004010400,100000004310002,101021014224121,100012114210011,111301000000031,111200304131014,103020200123211,100000340120221], + 112203022421400: [114430324140000,103100010212020,110000440420040,100402200033000,100022010100002,100043404304202,100102014301210,101011000302004,100041121022141,114233000212030], + 120001010004103: [100001300102001,112033124022002,101013114001130,110110102042312,101004104010020,102001014003100,114121200231310,100110101010234,100243201003120,110010002004203], + 110000202301012: [114124400000022,1104100000042000,1302001134003203,244000303210100,103100240003304,110000011101202,1310001001103311], + 122203001121112: [102342214020012,100220024324023,100214104301120,104130011240303,103400100131022,114100212210001,114143200211211,102320234112041,110402101344233,101001011001300], + 1040002130100000: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,101022011003022], + 113210420410210: [114400034111031,234010311030401,110002201200100,103120044002023,101121420321412,102210004034010,112423030200001,101010111030103,100430020420000,100422210013104], + 103010201110000: [102001404012100,114201204111222,103300004021200,102122214131011,100023031000024,103230134011412,100012004101221,100020004101012,102402000201011,102311011000200], + 1030120000033000: [100301300121100,110042400130000,103020124010320,100021300101201,104101201240100,110000011012202,101244324043222,112102232300222,102000020241101,112311000204002], + 130010111420131: [114212012310002,102004004002321,111301022200213,114002114102311,110000230010221,110310012024144,112031000230000,100012024301000,112012240221124,110302300040021], + 1002200021233411: [114024002200340,1040124303014404,131403134400030,114211022324201,421004021010044,403114413114010,1300214003010004,400010020041221,1020104432243040,1301111304022013], + 1030123301010410: [102323101101400,220103022224020,101230330042220,1304100402114410,410142111403201,1002022230124020], + 1100342212220312: [102300122004231,102321401000212,102042444010014,102330311004110,114032110040320,114003440040210,114423100000411,110040104210200,102442300230020,103120010100120], + 1010021402000102: [100014100100001,102100004130301,111120004100414,101034024000101,101243024011000,103033011400312,103340410140122,100010021221221,111012202111021,100103144302200], + 1032003300010022: [100140201011204,104010100010424,103010014013304,102103030201001,101203104200224,100010221031023,100140000024021,101223024200014,112240404012020,102000220204011], + 1004030022200104: [114410024110002,111200210001023,101101401020424,100002200100100,102032022000041,100020000120134,112422100200404,110202001212002,102342022000024,114000222330121], + 1002334042024203: [100000041040000,102401141113031,103042420143020,102304314110202,110210400002012,113032012204012,100002134300030,100130414300000,112310002020302,100204311000400], + 141310223100102: [102211220201114,102101004030220,102003001132213,102100204030012,114041040023020], + 1030113101412220: [102043200200021,1020000323020202,102310100201021,110230121300210,103020334003020,103024401243320,101100400321330,123004100001230,102100430314220,100103011004230], + 130012011302123: [101020210300204,112203122042414,103021210110121,100000401020012,110203100002414,114002100002414,100200321001303,101211011023023,102102030200304,103020224040304], + 102040033020001: [102213210210004,101220121101403,112210141104023,234010311030401,100003030202011,110103420020232,100010041001440,112423030200001,102302421103304,103220010130113], + 1040020123000011: [110401004221204,100322444314002,100001030100030,112012004004000,103141100104002,110341300400201,100000104210240,100224010102312,111120032213101,100142201023312], + 311204310140201: [100100121041013,101401211012010,114000010041320,114120204003101,114401322310000,100000000101012,101020230322012,102103120200023,112004302030010,102100001400332], + 1031313301002322: [102133404134022,130000220021033,1040014000334201,100020110003100,131114110030130,1120023242400240,113000343131000,410120000124111,413200300004130,101310000020110], + 1000322112203200: [112004001122300,101301124222004,114010204101202,100041234101100,112204220200011,110013202120001,100230040410200,100211211002001,103210004031201,114142200220014], + 213400103001001: [131402001003121,100440420024144,114420000001024,102030414000201,102402000202120,100304111000014,103300031403210,100022131043110,102010021413001,110010001011032], + 1000002010004002: [110104112010103,111102004100101,100122004300410,102202414041044,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004,112203221102231], + 1440340020021130: [102030004002200,112414102011010,110014012001011,110022410420343,100100410401030,102000040222041,100400430022423,100201314104221,110420200000430,112323332001000], + 1044422001133000: [110401004221204,111112000011222,102403001342000,100322444314002,101003301020022,100400020033040,100102431021300,110200212041001,100001030100030,112012004004000], + 1110113020400001: [112021201120101,101142124022010,114202002320113,101000104002203,102430001401230,102103422004103,100010024202200,100020004212223,112101002304200,102102021143222], + 1130110031113040: [100020120021020,103001101422010,102014400223314,111012340040202,100112304000043,102100411121420,100013014310022,100002210000012,111001400043101,101414220302220], + 1020032401220203: [100023421041402,101010224000130,101144134001102,110012220002021,100210020410010,114034422302101,101000414002041,110421104242000,110220302043002,102322004112023], + 133131004200044: [101022014222024,100032000101014,103030104000102,111311002224001,100032134101100,114201024112001,112010024023002,100000421024110,102130314134001,102011211102101], + 1133110320024010: [114040102210432,100034004211240,102140121410131,112040200233002,102113111343110,103234100101221,114002220010031,103103311424020,100001010412000,114000304104142], + 1040030403040020: [110200004243223,102000010200200,100033400410104,110210001310230,100010144303000,100413300430300,110020122000000,112020402001012,103144401421000,100133404030004], + 103001001101000: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 120402400010003: [110000001324024,101020111001331,101000001111200,114010040023411,102300404024300,102110001342011,102001010222103,100040041020102,100000101030412,114420142322140], + 130200040100400: [110021220021121,103322424033024,200003230020033,100010130140100,114101104124300,110040000440000,110010010431112,102103201412111,101140114004004,110210004212240], + 1100240221002300: [114313304002310,102004110223232,112204010411101,103202404003021,103211010211331], + 1000243221002300: [103202134021411,102321011102100,100330104310102,101101000331232,103120234000102,114011004123232,114402022314101,111110002102202,114001000022103,102012102002404], + 130000120101201: [101212000301013,100000211020034,101000000323000,102024034002302,100200321001013,101000124221041,100022214202002,113000020120100,111202020012102,112031000210110], + 1020310142120200: [102121221343020,101010101022202,112104424022201,100013211002142,1300034431310021,102210104000000,111023100040110,103113224004201,102211204000440,102203211104211], + 1122101022242012: [401142101000022,1342140400001210,1203210010100211,400114001102410,111011220004001,431232000323104,100221110031000], + 103124002412324: [1020102233442023,110001440000224,101404203243201,1132012124324031], + 203214212220130: [100020014300000,111000302200441,1340223401102011,114100200214010], + 130440124000200: [104120011242011,114300000000002,110020002104100,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102,112400034040002,101041100300001], + 1400120100004432: [101440004041120,101031214000041,114112020212203,114302020003041,102110014030002,110201200000101,110110000032030,102001200204101,102033340222200,110042402132412], + 1020013040344222: [112121214040022,102401221402002,102102011342302,102140200224200,101001244010120,101030224004130,100000030120242,102110400210023,100004020411201,110144100400420], + 1000320121000120: [100003011041040,103200141404212,114001112300222,100203141001002,114122440000024,103000020103121,101200024010043,101044211032201,100011111032203,103021440122032], + 1044212030003200: [101001040340004,102424204043100,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140,110020124200230], + 120213310220222: [101020414010211,101120204002140,101142004000232,101020024002022,112002112002220,100012304300004,100400320013200,102041314012004,102010001101101,103001314000242], + 202310110441022: [112142301101040,102340221000300,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,100402002201002,100033230420102,111110004402021], + 120013000200101: [100041204212120,102113110210240,100341130142101,112423424042102,100320431000002,102100300210100,411200101402221,102440100200000,1302011220000002,100401430030420], + 104300002140120: [110012031011302,111200104411001,102121200313040,111011104401124,100300021202320,110334102021144,102224202023120,103410414000011,111212120001103,110201102230003], + 1001221003044032: [100440104303400,102122000214201,102220241100202,102024240221040,110320011200230,100342024100204,101422034042201,100011114300334,102300001002140,110040122000002], + 112014040222200: [100214121000000,100042034200032,102011041100210,114323000000130,101400240300010,102412241111002,100424104302020,101013234000010,102002010224011,103210014003000], + 1000434104411110: [100312331004000,103301244010210,100101031041022,100000240003101,103001220100000,114124420032020,112012012002100,102314001000244,114100000031020,100003124211410], + 121001011123100: [100003030003020,110410000104042,100014014203233,111422100034314,100000040413000,100001034310012,102030414003000,121310232003222,110011300143002,100220021000033], + 1000000302320041: [102112432004423,102402124022000,102032204000102,101001030310014,114222122332021,103004041410020,101004004211001,101002000323021,114000000021014,110200202231210], + 1043002012101012: [110013202003320,101031241000010,102120231343224,110030332100203,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220,100020010200022], + 101021202010042: [114210014110000,112020042344001,111101122102222,110034004420011,103000114001000,100003344214000,111022214113044,102322420210320,114124040000002,100112001021112], + 1000002002141314: [100214230412031,114022024010120,114210204000010,100202400410110,103021004001020,110223300010103,110202024432022,100111141040220,113004400141240,100043004101001], + 120334102130204: [101242011000124,100202340430142,114420242311240,110141001301302,101200200300310,114011402303024,112124000203110,102020004000040,100020030104002,102110201342301], + 112130414022120: [110021100023210,103122000100403,114103412201420,110014300041302,114241000002004,110020310022021,101121021020012,110321001330010,100000300100000,100400214321121], + 211320022102003: [111200200000232,101200101021000,100101001011114,101430004040203,103000024014022,103122104002013,101020404210020,100001001021002,114200104001010,114040414014202], + 112100210130102: [112004012000201,111312014124200,110132211004000,100022000000314,101103044002141,101410410301140,114103234000402,114140020210200,110201002224022,112002101122002], + 1000022024020021: [103122020213112,114101100211240,103012011434022,101032010342004,114102102344110,114010002300003,100112110020301,100000004102124,102000034013222,100022301000112], + 220101402120102: [110102224201130,103301201402204,100021020124002,102104131412412,114020312300021,102400204043012,114010102300010,114042014014024,100000000200102,101011011000320], + 220440442104101: [112142301101040,102340221000300,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,100402002201002,100033230420102,111110004402021], + 1021100114242002: [114032104100141,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,102021241324040,102000111102000,102300441002012], + 1002430021400001: [100022024212302,114104002204400,100040410000030,103203400100320,101211311002032,102201210232332,110202032123200,110231200114010,103210011413012,112411014041022], + 1001204122440221: [141000211410012,110101322000312,100100001004210,111101104101324,110111000003302,111044114411101,100124114331032,114110220020020,101202110301231,110100022230000], + 1021001410103041: [400124411000212,100002010410120,1321022130413330,1302001134003203,420023000041240,104231102420022,244000303210100,110302040021421,1420221102104240,1001443041410021], + 1101000333002042: [111102110012000,111142010020301,100031201030331,100000144104100,101000344010212,101033141030001,100104400021023,102111210230204,101003400322022,102200421003014], + 1111002020002210: [1200300001400200], + 101013202230004: [101202000300323,1202120201221210,110400323041022,1134000004202341,100000144310420,411011320001004,1400102001010010,1002004011000420,110004004413303,114131042311202], + 1020001020041134: [102334004110232,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,101120030010320,114124002341030,110302322102041,110322210100140], + 1140322000311402: [103442110132330,112010420232040,100032114202001,100220410101001,101023024210000,102140322001242,110000442001100,110201401201230,112013124020300,110000020440133], + 102430210141402: [112004000212242,101002030320032,111410302212101,101001021001221], + 1012140012122241: [110220122044010,110042304412204,114020124021122,100002201003312,100110214103200,101030320322101,114140002313010,102230121120000,103300001402013,122242202003000], + 1101403140140000: [100300041001121,101240004011021,100120014100010,102303030241010,102202144110114,101013220320021,103002020142122,114231042331020,114200324004201,102010424000320], + 100100042014203: [100231401213132,114210104113314,114021232300112,103001000120444,101144024000232,101302121004422,100110000000000,100000010011430,100114420000140,102320021100120], + 1243004213402001: [102304030220001,102141124004222,112042422001032,101010001000432,100134101022112,103310200110020,100020031030323,102140041342001,100001001032400,112100022010403], + 1140110020021401: [114020000011320,111020032203301,100031001030010,101000210303342,103433144040432,101440400302320,103000121424330,101204004040140,102111021022024,112010222001103], + 1132400004020033: [102223111000042,102320200221110,101000410321210,101040401032021,114200004110030,111102324104110,100030124212213,114210102320112,102304331000110,101301420312101], + 1022020414111011: [103000210120000,101211031002000,111220000010211,112010122302144,102141002001403,100030101031100,100011244102344,100101020412042,102321034113010,100031300101240], + 102243002344030: [102121201340001,102200211120103,110400242110410,111302204123234,100030020423044,103013104002044,114211004004210,100034204310001,111202000003000,110011340001104], + 1030132020032001: [110004020020022,100043010120010,110030110122402,102143432000102,101031001004201,102040010200101,102200434012013,112000301122111,114001110033210,102013120200110], + 1000404024211431: [101204400304011,100020440122040,100301020420101,102002202000000,102101414130243,100040211031313,103004001400210,111100034100301,111213002240400,103003004044030], + 210133403121024: [103043404000202,101001400301113,103101024004200,102014111102023,101301014220002,101012044004042,112410300200001,102020304000321,100021201020001,100112240020023], + 1043313043423032: [101133001104410,114202424001100,114113004120221,1100000411441420,1002203010011112,101211011012300,100010300121240,1012004033012200,402001100011120,100020321030202], + 200234040022202: [110020100042220,102123000230200,114200302320443,100401111000221,103302010140122,100010001001122,104240202023232,114030204021200,114000022210140,100141321000100], + 1122002320000201: [110102224201130,103301201402204,102401121113302,100021020124002,102104131412412,114020312300021,101320040302031,102400204043012,114010102300010,114042014014024], + 1011100022032120: [102300001002440,112402034013000,101011020320030,112202040411432,110013020024300,112101120201010,114124200000414,102010211120200,100400202201400,100403120013010], + 122100001114100: [102000121122000,110011424414202,100040011023003,114223212320410,100000010411010,110232011000001,100130004033423,102111301413000,101002120323040,111000212203022], + 1040230030404323: [100030324200410,114202244112111,102110202001010,114200020003431,114041002212302,100043200102020,103332044032320,100212024322044,100140004102001,114101024122320], + 1011120021000001: [102342014111202,114040002330341,411010033020221,114102020422002,1224320120024001,200002003223300,100224410030410,1101040131142040,111100001002113,132220124203004], + 214002020133001: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1423020021400000: [102242304042410,112032012004300,101001034002001,102000014004040,1010120030012200,101024411001024,221104221024023,100010410420002,112000034000041,100202211200032], + 210402131102001: [102040431121110,100400002201113,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102111024000402,102042000222002,102001011100100], + 103340001102200: [102120031140142,101010224000130,100404410022320,102220220201011,100222044100141,102134144003010,101004020311013,102210304030340,111302024132000,112134124001023], + 1010123012002033: [103004201421221,1331041104430100,100104114230000,100202004104140,103020441400230,1032220014300112,103222400100400,1002200000203001], + 1002004140011141: [112012111114213,102230004030112,100100221012100,112102000202302,100130401022113,111103304400022,114112402340003,101000431144041,100341101003203,100400230022124], + 204200441000000: [103130424000200,114010204012441,110012031224104,114000240030002,114002322300200,103244034020020,103201034020234,102422010203030,114013402304000,114043342241044], + 102034001104300: [102112121341220,110030004200002,100223211000000,112031110240010,100100414230101,102140011120322,112002220230430,110134022013042,101320231003040,102110011142012], + 131301024120302: [103101224000011,102200042000104,103002000104400,103002144042123,110114021000012,101012000320441,114124414000000,102304204110040,112020004002110,111221440000011], + 110011002000401: [100310120141002,103214010102022,102324014112020,102404021403141,103200020111014,100010004313001,102010200221000,103104200210410,100002200410030,100121031014040], + 111000342102030: [103222004002001,100003421042112,114240004110231,102024021130010,101244001000204,103200224020100,103013024002104,112012010230002], + 101230221310100: [100043014203003,112230024010203,102032114021101,100131014234134,112202140201200,110213000004112,103002011433141,112001124000003,100204004122414,100003234202001], + 110213311302121: [101042410301221,110432300102000,100102024100020,102304000210204,110040344210011,100003320401100,100020120101000,100003200020112,112143144020012,103231224012042], + 102042113001310: [102442411400220,114021100031031,110200131210002,112011210220001,110001001020401,110022000020132,101100014000041,102442340230020,111201002222001,110102000022000], + 131100002301141: [110302302001423,101010101022202,100013211002142,110104000024100,102211204000440,100200001001420,114141024004011,111030424400000,114140044002043,100031101031110], + 112030200001000: [100141220000211,110042202002303,100320011001200,102002344013100,110002002200300,111200302214000,110443002010003], + 104001114001030: [102102241341004,114002034102120,103002020101431,102020431101132,101404104000404,102030011324204,100001024102120,111100022244144,112221201100134,102322014112302], + 1040331033212300: [100000100100200,112041031114021,100140330020001,110400240002411,110030001311103,102232104040041,101002424010442,101220004013020,102302041002022,101400424021221], + 1042421000002340: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,102021241324040], + 1000222014242301: [102431111110001,1003002030122040,1320124301012211,120204110000223,1110002442211200], + 1001002101100000: [1440100023013130,401210002011000,1014200301032410,1103013112041021,1001102321230101,110200024240110,140320413003120,121000110000222,400014401213001,103000001421223], + 1131200314042412: [100400002201113,102420424042020,100100000422320,102100012002000,101320224220103,101302131002410,114140120222220,102233200213120,112020020234202,114031030020422], + 1020401222100301: [111101144102000,102110031342012,103211324003020,101010020320000,102300310242221,102024101321401,100402132200000,114020000020300,103000001401041,100000134100202], + 1000112304314214: [103034010121101,101440004042202,114201000004122,102422411113113,102201024041200,100100204101010,101223301020130,111141312211004,100341044310403,103002010121201], + 1422103031100402: [101001400301113,103101024004200,103024000103302,103300021402104,102014111102023,102102024000001,101301014220002,101012044004042,102020304000321,100021201020001], + 102010401201111: [110132031134031,102300200220002,100020314100010,404002010120214,100100012111201,1001412211040002,112100424020221,102102001341100,1304032042210300,103144011212002], + 120300001000010: [102011201101012,102300304110030,114412000003141,103020041420212,100112011040011,114033300041020,100401024300321,100102030423010,102101004022104,101432240300300], + 101003140222100: [102012300212321,112400202023020,104400100142023,1320024233112412,102230004030112,1002022012411300,214021333002200,1200301010403420,112102000202302,100130401022113], + 100320020020201: [110113314221413,100040134340044,101123031111011,110120424221121,110240411110010,110001000142403,101022011140403,101401211012110,101000011010204,114324022300000], + 100211000031004: [110003032000110,100120014234012,112011002002110,100331204212000,100000211232020], + 1420402000300204: [111102110012000,111142010020301,100000144104100,101000344010212,101033141030001,100104400021023,102111210230204,101003400322022,102432201112110,102200421003014], + 1004021011000000: [100030010011002,101021301022041,114410002324204,1043303323011400,1140104002020100,100402300013130,104402130010100,101201220402420,1001120000022000,400040001020004], + 101203100100022: [1002022200102230,1012221001334200,112023142311002,100000030000011], + 1000223000204220: [101221121202421,111042022141200,102300220241031,101441101010020,100442220030040,100100241020020,100002004342004,102312200240012,102012210213203,103010330100320], + 1021202440220002: [110241024242442,102300120242120,110444010032242,112220001100200,114014130041210,100001041031013,114212102310100,110224200113042,101000020301410,114000102210200], + 1200024201401030: [121000042140301,101404203243201], + 122041022231143: [100111011011011,100030040101021,114310102300021,114014112300100,114030034013101,102400124020001,100102224234101,101013004001421,103000014011004,102010321411140], + 132020211002032: [100220034322312,100203104322011,112002224004011,102110000210014,111101142110100,102000411410342,102310314114031,130200211400203,101302031000033,102020124011141], + 1041031242330420: [111300210014020,100100031043410,114001100024243,111000142201220,112102100423402,110141112044000,100034244303010,100120000410220,114100322342010,102000214002210], + 1002440310320031: [100440024301100,101023221000031,101400014040400,114101000221221,102013000202010,100031130410243,100110204101020,100010000201210,103222221410230,101233100303204], + 100000010004433: [114112124140000,100000021023020,100100220423210,110044220021000,100231020112302,103122411441211,114102004002022,101110204004210,103414020133020,102022121324011], + 100043200100130: [114400022321400,101302340312230,100011101222101,114304212302401,110021324200010,100401200010140,110040142002100,102300001102240,102312021101141,101010001022001], + 123243200040000: [102011011131130,112402032010131,112310431102204,101010024213100,102010001101021,111122004100320,110001122003123,112100204002200,110143012040201,110020002102332], + 200410030402211: [100402400013000,112340002022202,102310044114012,110101004223000,110300400000232,110000002010200,100130014234331,110030224201200,101022441110111,102210000313010], + 1101020022222031: [100100021043102,100010141222300,114302004001202,100100000011011,101240311010402,110020001210223,112131000201420,110230032120002,103010100110112,111014030043044], + 102332002003200: [100023240103222,110021000110000,111111224130002,110212310002021,103010334000010,110131222010140,100010000044200,110202001111010,101202240300202,112112034040112], + 1113102102202000: [103220011411101,114220014111304,101030301000221,102003111413120,100023101043203,114200122340300,114201022330011,114020420030200,114143024003322,114021444010222], + 1121000204302033: [110144240011020,112000244001222,114441114123013,103220211421421,110123230124040,114000012334102,101000014012442,111022210021013,131000001020102,102101214030204], + 201011020101103: [100010400022200,102300001002144,102302444110110,103001000142003,110310004424232,100402012200112], + 1012300422010310: [114300020001420,114133230000102,102234010200304,100001021030011,102200100204220,103200110102141,100021030100001,102203301003030,102334201001100,102010104023003], + 1444002210011001: [110010100442102,100012341220120,102130014134000,114100242200433,100010114102101,100041001020232,110133002013103,100003044241304,100004204211224,100000220410320], + 214012400114202: [112142301101040,101214440300301,101121100332142,111200122222334,102301024113440,100033230420102,111110004402021,100000030000001,112032420240110,101104120334002], + 1102220101212100: [103012034041202,101201111200422,110322311300120,103340404020014,110010204204104,110104101003002,102100040202020,101333011000041,100032131220310,101201101022211], + 1411044011011022: [110140001010224,100441301014410,114001024010010,102101224000013,111212204420203,110020022003000,114230020000033,101012004002440,103110400120002,100310201003011], + 112110003040002: [102440014022301,110302204420101,101000001110403,102000011102224,102111041342000,102303310241230,100221101003420,114241200001240,110010004211300,102110024002001], + 1100032034420030: [114441040001202,114422000000123,100010330010200,110412000000421,110221004213100,101112314020004,101023300320033,103100020121000,102220104012021,100143204020213], + 1001123001021002: [100402430032210,110202222220410,131342330212024,114111040212210,114030120000104,110211000022421,113000022402120,120000211034230,103220001202000,111242022222024], + 1040110010301041: [100011201020234,101221000302204,101040010311213,114100200002111,101000034210022,101322201001022,111212010004002,112420042020110,101022310300133,102110120210211], + 1143121040001241: [100004001021111,101021004214202,100003000104203,102114320203000,114001112300001,101003104212220,102311110240101,114002002300302,100000304301120,114130210000231], + 101002002112013: [102000100202041,101021041001434,111200024131220,111203034440323,100112401020300,110320222000043,114101000210402,100100000400120,112000211131111,110103431221000], + 1013040200112002: [103321411401411,100042010200121,101000010300200,101022220302103,111010200000412,100004300100000,103013241240202,112010000243420,101010001000231,103032214000202], + 1000332100000000: [111000122201420,104134121240044,100011004102400,102100020214203,103000300124010,102302001000120,100004120101032,100002221040242,110210044431141,101112030300043], + 313414212313021: [100412400433000,101120001042201,100003310142001,103014120104032], + 120003100340403: [110022000023010,102410141403032,100003214201113,100013000204021,100100021010323,102001000221040,103032400121000,101004104002142,102221000202231,102101210234111], + 1120041023001012: [114200044114004,102202010204130,100424011014010,100220101204311,100003040422420,102100430233212,101010224210000,103003210141014,110421222011222,100021100002100], + 103013440000011: [101011220324041,101300000310200,114220110001121,100031004311400,110020011223233,110013000002041,102220004001014,102141302001013,100401302200302,114200102320214], + 100000210010211: [101133001104410,114202424001100,114113004120221,1100000411441420,1002203010011112,101211011012300,100010300121240,1012004033012200,402001100011120,100020321030202], + 1100011011112232: [100220100110400,102403004042342,101024001034211,111122004101222,114020040013100,114001012300002,114000222213021,114102330210021,100000020401302,102103214000210], + 203202412301230: [111020030040120,110002000134011,101122040304410,100302121000100,112003402002003,102000104003032,111011402203004,303020404011031,112011114002003,102012044013241], + 1144340003301012: [103211200100400,102112231020231,100022004300020,102030304001101,100020420121003,114201204111002,112010122302144,100000114103021,101310000310240,100120244301401], + 240231221203204: [102001404012100,1010400230221020,102302200210010,102340120222440,114223204100010,111041202200140,111300400002313,111101040014040,100023014313010,114021040010311], + 200220344200022: [114110242200201,103002020101431,101404104000404,103020031420410,102101220231020,112220020204222,102322014112302,102110114020042,101432044040142,101000220311120], + 1101202100011414: [100000100000432,114200104110001,111220100000032,114214040002011,100121324230300,100121111000220,100113434000102,100033320410000,103001424002424,112021410241120], + 1002222010200010: [102420101111121,101222041041012,100032124210042,103222000100010,100100000021020,131213314114102,110020000000320,114010024020443,120011100321000,101210220304010], + 1121140001000134: [102024001120110,110010002034300,102100042002040,110230402031010,111420004443424,101020411114000,111330024132300,102000310203004,111114332100303,111040002143023], + 214000410443000: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,111201100011141], + 110010211021431: [101011000322203,110241022112013,102110010230101,102041004040002,114423004144120,101010024214000,102203000200001,112424024010030,103014044010100,103224004020021], + 1113113011034412: [103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,114201204111002,112120214020030,112010122302144], + 1102211011314121: [112300212023031,114144004124200,102000121122000,110011424414202,110000214202000,100040011023003,100123031023104,114223212320410,100302114311412,103000004044020], + 112220142032321: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421], + 1020011332020310: [101232314010241,100301300121100,103020124010320,100021300101201,110230022122031,101000444214021,112102112301130,100414004300100,112102232300222,102200000201120], + 120200002310401: [102404004041224,102200041120220,103220010101140,101140014001001,114101002200223,1034110304101100,110021041330000,114321140000202,121102001120113,103322000111220], + 110000010320010: [102100304000010,101240100304114,110022114410310,102100110210040,110310124400123,110000040022323,110201400000100,110400204221003,112000000241102,103001001422040], + 1201301200001200: [100000014100202,101012104001020,101210120302002,100140004230101,102000304001202,100010300121000,100001314100400,110100224201000,110140001120211,114010104100013], + 100200402320001: [102221200204022,100004014300341,114100212211004,100104234230043,102101024000110,100401301001200,100110000414024,100011104104000,101234041021200,102411110232201], + 231021100222211: [112102202040000,110100104404110,102110042001043,110200200400310,114100002204212,102003000212104,102000100220240,110013001200012,102030204000041,102110021341014], + 1020023302031401: [110433012110300,110440201342022,112243340202002,101000204003420,110101240024120,110300310011030,100230101001020,101440130332003,100400024302030,103100010100001], + 100244010012300: [112113214020100,102010202004402,111130312211003,103224041400220,101001010300404,103340004020422,102410220200004,103113010102100,101224044041002,102211430202033], + 122201001302000: [100001311221321,111012024112012,112224010200122,100402000022000,110011242202000,102213301104400,113030342402110,113000141022010,101000331020102,110340342021001], + 1112002214041102: [102102000213403,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,102100040220330,101002424214013,100012101022110,100400222200110], + 1400011312102034: [114102300004024,112102201102030,103222244003021,102420011111224,110232020002221,101000140310132,100001311234020,102013102002210], + 124041141201002: [110201320000011,114210000004140,102030004000212,110400121004031,112214002024310,110441014220002,100404322200002,102000331322102,112402122020012,100302024101020], + 1402040010133140: [102004204041000,100104341010424,111020002202333,100002320411400,101000100342143,103142210104020,114400240003003,101022001002030,100002104104001,103302030111430], + 120002440100022: [100000110410000,110211100000033,101200000304000,112014402034232,114222422332100,102000000211031,101400221012300,102110000210220,114333212323001,114102300220012], + 100033320110020: [114020024104430,101343331004220,100140310020221,103110440210000,101204044010203,100123200410410,112023230230101,100403002201210,102101404003204,101020204210110], + 1013300211000002: [101001000322303,103120004002000,100021441032202,100031000422032,102404120202300,100001304100000,103022041401232,100213114342042,100002401030040,100212001002030], + 1042032400230001: [110120144200000,114022412330004,101200221022044,101041030320401,110241112020204,100002004104004,103130021444021,102100104002224,102100224000210,102103321411004], + 100000320411041: [102100200234203,110203204241122,110001214200042,112002242001000,100021111211003,100010210101012,112010204003014,102032220221210,101032240320040,112001302302020], + 1112124202104004: [102003004000040,102011101131021,100021100013401,100204011000000,111010110042210,100114200020220,114401004122120,103123200101000,110023031204100,102431411400001], + 120020322311001: [114000034010043,1040014000334201,110220210110004,110221401304401,102220000230020,100111204004442,100212211003002,110420001101321], + 1023043111021124: [102213210200210,111010014440002,102003001104112,102202121121022,114244024112212,100140110020002,102004110220430,100040211020022,102402220203024,102011330201112], + 222004010332022: [111103240020200,110022201100020,100141214304000,101430001012430,100011204100020,102410220200004,102100211340043,112100311104022,103443104001332,101422214042012], + 1002001131430213: [102041020220100,102023031321010,102220020201230,114010214013020,100112404231200,102303021004001,100003001021410,110220122022202,102001024002421,110201020010102], + 120033442003020: [100122004300410,112100124023402,112400202020003,102000224000011,101212040303123,101020044011003,100030300124130,100001100013110,103122000211420,100032301041204], + 100104130044021: [102041004012012,101420211014000,100344224100402,111000012222023,110401230001013,100230001001032,114212102341020,100023001030203,110031220000101,110402102112223], + 124400422041340: [112002002000410,110111041011032,102221230200001,114100212200003,100020010022143,1341242223200002,103001044021102,100101141010322,100023201000300,100000044310330], + 1121100002001103: [110301222101110,102023301102400,100030414300112,102012204010044,104120110010402,111010214402000,110401440001204,110204310112224,110303104423010,110340022023321], + 102200421040121: [110401004221204,111112000011222,100322444314002,101003301020022,100001030100030,112012004004000,112044204000441,103141100104002,110341300400201,100000104210240], + 120100140312100: [102001001130100,124020002020003,122222120003214,133332002141010,144000013213001,124010030100142,111032444402403,110103201001321,102011420200123,102311430211100], + 301000320101102: [100010134300002,110232320002010,101000001031130,101202444044002,111310200002200,100121044230302,114014410023000,1021042101032324,102201301123243,103000200101010], + 242402320041410: [100000044204004,101020224210014,114202244101041,112423102010012,102112022001414,101212214011134,100001121023210,100012101020002,114204120000200,101424010301210], + 140220021012400: [101030014001004,110144102001321,100020304102100,100013010004000,112020022000410,111232100010040,100010004203011,110001420003002,114000202301203,101202200300020], + 1042310240200011: [103212424020104,112010140202000,102001020220240,110344041332022,111310002200011,110020200120001,100211244340000,101020414001030,100102001021001,103402204002011], + 122210200410001: [102424204043100,100113220020101,100300211000020,114310200002400,103211220100010,101202201021310,103044004010022,114130020222342,112301032022414,102103100310300], + 230000101110231: [110100201000100,100001024102310,111111024404430,114200020210110,112211402032230,101140301101104,100441431010310,103313134024222,102202404040003,110031330430031], + 103203000123410: [1411024442020100,1002230121400101,1004130302142412,100100001004101,1301222204300302,1300100202010022], + 310100000202000: [104100012102004,110021232000021,100401241014100,110301322104142,100001140000010,102003000212200,102420020204200,102000200222121,110033002000020,110343014421300], + 100240322411304: [102210100313100,100004420014012,102240210240022,101040401032021,114200004110030,102024124011010,102000324013042,100030124212213,114210102320112,114234004112000], + 1001440003002000: [102200130202201,102414034040100,100212030414010,100412200002013,102133001404002,102020041321410,102300020220011,102301324112020,111340300010010,102400101111034], + 1102104011120220: [100030324200410,114202244112111,102110202001010,114011404103142,114200020003431,114041002212302,100043200102020,103332044032320,100202121000302,100212024322044], + 104044020014020: [102000402041014,100142010410011,102041410242244,102101220214011,100022010411004,102323201000412,102212434110001,114240044000100,112102314020000,114010002304030], + 1020431032314000: [100102224234002,140102120200000,110400444243022,110131001002021,203201100012000,122001000320022,121104330112000], + 1202430010012000: [100120204003012,1100440001000000,110202102121400,101000040300001,200304020022101,103400200120410,102022034012314,101443040303302,233002100331010,102432330000101], + 121004320240100: [100021014100124,102012200200030,100131024303001,102203314011321,102231114040010,102314022000031,114023034100101,102000214011041,102103120200023,103010300100303], + 122002442000024: [102030004002200,100040014210402,112414102011010,110014012001011,100402040012140,100100410401030,102000040222041,100400430022423,100201314104221,112323230202030], + 1000120010042423: [101020411140204,114203410002220,110312201002000,112000014000010,102201321104400,100131000010024,102101421120103,102223100230002,100140104103041,112103232310200], + 130201214001032: [112020000230440,110041014413112,110004002133140,100040031020241,101100104000222,100411400030100,100002000102100,114340102322021,102120221120200,102100211143330], + 243420000000000: [110102042010220,101020124000413,111210000001101,114013400011030,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 103232013004010: [114042304100001,102210224012020,114313302321311,102212300202110,102210304013310,112101020200032,112002002030004,101220000302410,100024414212001,100004210412101], + 240224001042004: [111104102242110,102210011101414,100002200410230,100044010200300,102102011401410,114032124013234,102143020230411,100102014301210,102043024010103,111133102212220], + 1000142401001012: [111201032220400,100200004301323,110041002130210,114203000004300,112401024044240,100022120412132,100000321031423,100031220121003,110322100104010,114302102300200], + 102001002413010: [104120011242011,114300000000002,110121100004131,110020002104100,110210014220001,102111400202120,102000301101102,111400214442024,114100124002210,111122200021102], + 104204240243134: [110320442100100,103022421400100,100030000104003,114020012204013,101020224003300,114422000000001,100411410002011,101200220300302,111201310013231,102100101320311], + 1022020201123203: [110213120001100,102040044001211,100220301003101,102214011111010,101003041141301,101120100320100,110310130114040,114140014100000,103211001202110,103121311240102], + 1001110041211001: [102102000213403,102334000243030,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,102100040220330,103040001430220,101002424214013], + 1012201010101030: [110103341120422,112122024023021,101000021020100,110042022001000,110104112012000,112001204001021,111220102222123,111101220010010,111020004404000], + 130110401024000: [100010201030300,112420104040020,100233014224240,100403430013124,102030001131120,102221414000020,110110200001000,110004210004223,102302004110231,114224210210310], + 1001120112130233: [110320202023400,101000304014100,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,101123232010002,114421242204443,100000301221024], + 221010001010100: [100032041021210,102300324010203,102040011121100,114310000001232,111322234130000,102040041320010,110104002010100,100030024303023,102042204000300,100001134100120], + 1021222040101042: [110120144200000,114022412330004,102343230224321,101200221022044,110241112020204,100002004104004,102310140240012,100014204201000,102103321411004,100400001001300], + 1003021311121402: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 102003241000110: [110401410402040,110023214202401,110232202123140,110022040430124,101442404020304,100214401001202,110011000042000,103300201404300,100222100432020,101423434023101], + 1020034311314120: [100024000110221,101000130320340,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040], + 103013110312104: [110200002031302,102002020243020,114002002300201,101403220331230,102040021121030,100311314310000,100000204130001,102041130200101,100412441010422,102130224131022], + 114100120300110: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 120340020411044: [114410024110002,111200210001023,101101401020424,100002200100100,102032022000041,100020000120134,112422100200404,110202001212002,110001014204010,102342022000024], + 1144121210002211: [100000410103200,100001240410410,101042201000011,102030001412241,101001204010220,100004301023143,114223200221140,101012400304201,100031044300340,103212014020132], + 1000101410001201: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 1031321230013320: [1104100000042000,244000303210100,1342101023000230,110000011101202,1310001001103311,100114020214211], + 1402000220232130: [100001124102222,102242220202120,102122101340003,110420000002231,111324314134002,100400100022003,101300200311010,114420002322000,102321021000002,100020310010001], + 1042042022102221: [100021300101110,110201031111320,103312300110101,101403004022114,102000441132020,102024044012212,100000021030412,111001012203002,101012144004034,100141401042400], + 212022040144100: [101000021010022,100022310120003,112004031122404,114341322301120,100040234212230,102210214110002,100020204103212,100000100104142,100200024301424,100101344302232], + 200021001010022: [112324002020202,100120221021011,111242212222022,102022411100012,101401140300101,100030124210101,103220200100320,101030004004303,114000020034200,100121211012110], + 1014110004023200: [112402022014222,100220114100003,112022102003100,114202124003110,100202024031022,111200002212011,102211000230103,101101000320100,101000030304240,102242321302022], + 100012121120100: [104100012102004,110000010120043,102102011413000,100402431012022,102403404004110,102031024013013,110044020020202,102122410220401,110301311303102,110021232000021], + 100200020013000: [112012111114213,102230004030112,100100221012100,214021333002200,112102000202302,100130401022113,112001421111242,114112402340003,100341101003203,101023240314000], + 1110400243001133: [102030301440420,102120002000022,114020002300011,110201420003020,101032104004010,100011304210101,112200011102100,102001010221021,114040004102100,101000011003023], + 1023000221020120: [114102344121242,103232014032341,111432404442442,101022000320120,111140130020034,100410200433120,102302121000021,100100104032130,100032014300110,111300224132411], + 1020003132132122: [102231102020200,102120201140110,100331200141014,110112204224100,100200011002042,100113004000041,110224102230230,100120411200320,112401344040043], + 1102221301211233: [102020004022320,103220000212021,101004100323331,112212004041042,112100310203000,110212400010120,112002032340202,110140011300001,100004200020200,110003004202020], + 211104312410011: [102302214110044,103041014030230,110113122120330,102310101100011,110030010432322,110041202203140,100021404300231,101100020320003,110332242220220,101042134001001], + 1040243110000420: [112004202302034,100042001020203,102002320220202,100010044300003,111321314133000,100004410120102,101131024020440,102432101112141,102100044000000,101011211003002], + 100321110122133: [112002002000410,114100212200003,1341242223200002,103001044021102,100101141010322,100011200101123,410010230000210,1303200314211000,1000413100310100,420024220002001], + 1120020200002201: [124010311303140,111001202231001,120300040232022,132000401201221,122012440110401,202220202402001], + 120004010200102: [100102004100201,102101101140040,101012320320322,103100214001400,111230032242001,102121001343030,102324031000000,102040001130013,102102001341000,110012004422032], + 210000003211411: [101200014013241,111110202213102,114421224140413,103320400110021,102041000220322,101033244000403,100400104302144,102114001341002,112121004020022,111002024400320], + 201020442221200: [101010111002141,100120400410010,102402204020020,102132424020001,114031240044000,100022200100110,114341400001011,103003044004000,101102020333110,101041221030000], + 1020404220023402: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 101000010240102: [114221312340014,100311204312442,100001024100241,103000020100131,101211204201231,101123001100112,111000200012220,100000110100200,100012000022100,100020034200301], + 240230023041130: [101200101021000,101430004040203,103000024014022,103122104002013,100040404102010,101020404210020,100001001021002,114200104001010,114040414014202,100000024301031], + 1040431223011021: [101202000300323,1202120201221210,110400323041022,244410001402030,100000144310420,411011320001004,144200003100020,1400102001010010,110004004413303,114131042311202], + 110021203300311: [101001040340004,101013004002011,101300011002044,112022334022101,101011324004222,103210241422022,114411312312124,103240001403000,102202204040220,102121010212140], + 1000112411110201: [102102101412200,103003000142012,1002201014202430,100112430012432,103330400114023,102403004020222,100002301031043,100040321042021,100302224314022,1211200224022400], + 122010130420230: [114040002210432,100010040122204,103314044033003,102001420220112,101422214042012], + 104303002211012: [114020200020222,100012001023042,110213022100021,114424424144210,102204321003224,111222002224302,114100104030132,100010320000004,111002024110031,110201304431033], + 130004204220341: [103001111221030,102301112004021,110000011012202,100201230412211,111010002110212,111121022221002,102000020241101,111112124402010,112312041101012,110012212130021], + 101000020023321: [102011201101012,102300304110030,114412000003141,114120430002002,103020041420212,100112011040011,114033300041020,101201220300012,100401024300321,100102030423010], + 100002340242412: [110020100042220,103443024000000,104240202023232,114030204021200,100141321000100,110022222000011,112410004012302,110202410003202,102000104014100,103000101432004], + 1022220200001400: [114210120210212], + 1042112003433210: [111304340002030,103140014002031,102224241110003,114113014000010,100043024210301,102014001130100,114321004030021,101200210302201,102422131400024,103210304000030], + 1402320014010440: [110020001310000,110214024430312,100011014100041,100310201003000,110412121110214,100212341003212,110142300120000,112013212032000,112010220224003,112001040231401], + 321001401100112: [101100230013304,102330420243012,114011024102042,114402212310021,114230200210013,101030320340141,100300004314400,110020312200022,111302222202200,101021140300031], + 1000230212300000: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,100132004231230,111200122222334,102301024113440,100033230420102], + 310004202222302: [102110010210104,100040004340001,100021234303000,110420020103322,103243100130140,100030101232000,100034221043231,101140030330020,110030242131210,110142214201120], + 102141311122102: [111040120022202,102141000230040,102002400430000,101001300340322,114020204021302,101210242120124,110014342002102,102031021440000,111011022203010,100001000100020], + 103134110020202: [102114020210202,114040204014042,100001300100302,101221031020331,114301120000200,103230004030322,102102001341000,102440000200011,102100020210004,101220004012040], + 100010120022100: [100124124103003,100100221002000,102140200230020,100201220431101,110011002133011,112200402020210,101000000310110,112001000223004,112014020212002,101112041141231], + 1142222400204000: [102012001130022,110003024202043,114102222344020,101021410302022,110042104411102,103200211200414,101220120300000,101103204001012,102002000211420,110040042123002], + 101001124031043: [110304421230212,103024210102000,101322020313110,100132121023143,103022011112124,104001013140002,1001200132020010,122310321010040,110001340020010,100120110401000], + 1032131124400003: [100033000423140,110000102001204], + 1101404241110112: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 1100024033201201: [102131104023111,100414204320344,114012012300010,100302000140001,101000004003224,100012114210011,100002314210021,114133104120204,102001340200322,102021014004211], + 120122000000000: [100304201000221,100112021020320,114212104110100,103010001422020,102300124023122,114221004100020,100002100124101,102304100210334,100403210010142,112003100241220], + 1100122114104021: [103130311444100,114102134122020,101040004010012,112214410201300,111343012200000,102201430201310,114113100210210,110413402111101,102422000200303,100000120412410], + 1100202002243010: [100021214313034,102121111023020,110000212134440,103010020012322,1341322100304120,103002020124010,1011000000040202,1300040400201021,102120010221204,102100111403011], + 121301012034141: [111001440020003,110200020010003,114121000002140,100002214100100,102120104003011,102120402000014,102000200210032,100041000100422,114020002303212,102223231121242], + 1023210031000001: [100440444301004,103304014020032,101221121020230,100232121210011,100004110000301,101310004223223,114113004120221,111210402244301,112022200234200,102100011341140], + 312014222022200: [100000020004101,110130014400011,100220040142222,110232002101410,110200021210212,110131021240303,103100101442233,100000031220100,111010000021300,114200444140203], + 1113201200402000: [110020010134221,100004020411020,100300321000010,100000421021322,112331012023100,100021010100320,101001030303000,110031210000110,100431024301030,101222321204303], + 1100202001103010: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,102020111100200,102042411104200,102321410240300,100021014100124,100130244302034], + 122002220020300: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,101002201140040,100211000412142], + 1010240142022340: [102020044000030,111202320012012,114221210003003,100003001020010,112101422301001,110040014213300,100320421002220,100120320410204,100200144320012,100021404340024], + 1120303401230212: [102403100202003,102302011000002,100140004230101,112142210422404,134402020100402,100140001004340,102140012001300,112042012001000,112040004003000,110002202000200], + 121130302020200: [100001024100241,101123001100112,111000200012220,100111124101112,100020034200301,101424011010011,100003044302003,110430034224001,101010200310212,114141212344400], + 1101010012402142: [100010400022200,102302444110110,102420221112201,101224044041002,110310004424232,100010344310042,102103214000210,100402012200112], + 1000232020203121: [101403021010233,100000011024010,110002210102120,102300431002131,110001211310124,110002204210114,114304444003432,114301002301103,111040300024441,111100220030000], + 100313042020042: [100023101042010,102112310210202,114221224002403,100013310123100,103202014031021,100101014300100,100012021032040,100400242201410,110300121301133,110420032110400], + 1410001201240030: [114220040000201,111040032200021,100404400013222,110000312201003,103042320101230,103004004001222,100311000422101,110020204421032,101402031011101,114130004101132], + 1440013030000111: [111220204101421,110042120021013,112200420200200,101001010300011,114012020044224,102122401340101,110021020001220,112001024000200,110112030401012,112020012002031], + 100301010204032: [102143124001400,100020440122040,102002034010400,102020030220401,101002121000111,112404002023002,100033134104200,114003422304142,101432024040221,111001404112102], + 124402010411222: [100034304101213,114002014100310,103044010120003,100020020121132,103311100112220,103133031440020,100110021040020,114000242303001,114020402331130,114402044140023], + 1020200330004141: [114313304002310,102004110223232,112204010411101,103202404003021,103211010211331], + 110300002203010: [110012000141104,140300020110000,100003301030120,100101004230030,103044004034040,102412140201410,114034000012210,100341231000131,102200414042021,102021112004011], + 100321002002300: [100002100100210,100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,103020031403100,102200401111200,102000430221040,114003104031111], + 100310010321124: [103114001444241,102140001343104,101000004010022,102223000204140,111324002200000,101301031000000,103122340101040,102012114000000,100001214214401,101001004003040], + 110032110212121: [110444010032242,100001041031013,110300112023012,110224200113042,101000020301410,114000102210200,101041001032310,103103210111220,103100100100104,102121414000042], + 1100024401100200: [112014002002044,100421200012012,101441201011100,100032321230000,102320000212000,110122240004011,114001204104041,101240020300231,101000200312024,100001221232120], + 102002211230222: [101020204002030,114023010024000,114000204101231,100000400412200,111100232241200,100001020121021,102111024004010,103343010113030,114040202214201,100200001210240], + 121142410401003: [114220040000201,111040032200021,102241044033231,110000312201003,103004004001222,101402031011101,100311000422101,114130004101132,110123121301400,111342000010313], + 1001240402033020: [102102000213403,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,102100040220330,101002424214013,100012101022110,100400222200110], + 1101410003400203: [102334004110232,103013000104404,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041,111300202200414], + 1004202203130302: [112001222000410,101044334210011,102100141123000,100222104100230,100230201002203,101200410300011,101001040320001,101441244021202,110442111340444,112001240220022], + 1121000234302040: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101100104002023,101042001021012,103230011412301,100400000010020], + 112011210121320: [102110231441040,100113214302002,102412004000132,110000002133140,101233341022410,100100124100031,114120224120140,120240000020201,102203104001001,114210134003124], + 141201003021321: [100113220020101,114031000022030,102014002000401,103103241421322,100300211000020,102104304023201,100002224244002,114310200002400,103211220100010,101202201021310], + 200241001410222: [100122420031012,102202401114113,101021001031113,100100124234311,100022004310010,100320140043202,102403320201130,100123341012403,112413022010001,100000021034001], + 1000420403122001: [102021024000010,102300010242330,102000401120420,114042014014024,100000000200102,114011102210402,102100200233123,101012421000011,114300100000041,102222014011300], + 1401140104022240: [102010202004402,111130312211003,103224041400220,101001010300404,103340004020422,102410220200004,103113010102100,101224044041002,100040400401001,100320114314042], + 1420030130044012: [100032041021210,110004301222000,102001301120112,103203401400132,103142111441040,110220410000040,101030004010034,103100104000121,100321001001010,100002111020202], + 1002201204043011: [103130000213404,100400200034310,100043001221100,100221201212000,110133421001002,114212102341020,111022112202211,114130002310330,111221402210202,100422122201040], + 1020120231221102: [101301014221122,114110200212210,102102204022310,110012130410040,100104101200201,112201010203210,102021001411110,103042320101230,110041102012100,114222010213042], + 100001001121021: [110400112011100,100321004011041,110002342100014,110241024242442,110021312002040,111101042244210,110441010002400,112220001100200,114203104001000,114302200014241], + 1030043000324201: [102303010241010,102230130203001,100001221021031,103313404030100,101400201014000,102231041120104,114031010040010,100010101020404,100011000410110,101300144220010], + 121014121114103: [100030100410121], + 104021142114400: [101221422120021,103001024002110,100001000002210,101210300302302,110100012120201,110020204200342,100000220011133,100010104312120,102144012001113,110422030400241], + 103000020420000: [102033021130021,114000332303001,111224340011202,101220004013020,102121204101001,114422104140213,114032100011421,103030140101012,114210032320241,103130001442000], + 1100000312010000: [1100440001000000,100200100321211,1042210303140101,114222442341000,120011302331200,1302421010300120,110044101320101,102432330000101,1010213000040012,1320030222200024], + 1010022000402020: [1024002314000141,1010432014422122,1000020210001012,110321200010003,1341420023200031,1341200201004020], + 1404324332034203: [103202004001120,103021024013303,1300022002310414,1112301032024000], + 102002233023024: [101112104200011,103032221421243,100120004300002,110302010102310], + 202014031200020: [100124024230030,112402334040422,110000012010111,111411200002012,113400201011402,110242004420320,110110000031430,110432042223202,114100112344003,113012100143132], + 1120010022011300: [101200011020000,100031224102002,102001024011010,103042141420430,103000021431010,114023024022000,114223224111120,114022234100400,104100100402032,114130120222102], + 203020041020004: [103030411422014,103043334040203,110403010000304,102120131401230,100140024230240,101010200320244,113130020101411,102041210224224,112200030203124,103202120102101], + 141041400002401: [110240001202102,103200004030010,101002100340212,114200012321223,112000030210340,102100020214203,102201000203202,102302001000120,102111320321320,102010002000404], + 122040010020010: [100121230031032,112000431120410,103042024040104,102304104110001,101342300314204,100013200100011,114104200220022,100021221021201,110001244204302,112130011100011], + 1040330331243020: [130000220021033,114000034010043,1040014000334201,100020110003100,101310000020110,102220000230020,410010200103023,1001024230020021,100212211003002,110420001101321], + 1143003210031304: [100100221012100,100130401022113,114112402340003,100341101003203,112420100201102,101023240314000,100100230402040,100400230022124,100243040432000], + 102200013013120: [100202440410010,4000344002004121,200001320002101,1031104420000230,1040100003200241], + 134300001000004: [100003021033300,100142010410011,102110020202330,100001010014420,102041410242244,102101220214011,114001214100103,101200004040021,102323201000412,112102314020000], + 1201110240321000: [100022102100243,241221402002000,1030200104020421,1000102021230333,110344021203140,4002244101001011,100022020402123,101212413013223,1042431100100100,100004424041022], + 1000400010410124: [102121221343020,101010101022202,112104424022201,100013211002142,102211204000440,100200001001420,114141024004011,114140044002043,111030424400000,110202221212123], + 100320212010400: [102004110223232,103202404003021,114010044120122], + 132213021001034: [112124004022322,111300210014020,100000100100200,103042141430211,114403210004014,101033214211000,114001100024243,112102100423402,110141112044000,100034244303010], + 1012103030140022: [114033120034402,100023221022210,100040221211010,102104010311220,102230022023230,101122001110433,100014200003002,110320022024110], + 142100002130210: [102340101000014,111203032220113,102140200212214,112241010203003,103010101412020,101031140301430,114400204144102,100303021003013,100220014223020,112300140200131], + 1000331102020020: [100200101000000,103110431441100,102101324130010,100011200121231,111201102224324,100102004100201,114040020021023,111230114102201,114201102342110,101400300300111], + 1012110430210413: [110010130000004,100000331040124,103022421400100,102122022000230,101011200324311,112030040242300,112400002021310,102301210243201,102100001414121,100010001022400], + 1004014110012432: [114210014110000,114312012300300,103322241400404,111101122102222,100040000123130,111101110031210,111022214113044,102304041004110,102110021120200,100003340000220], + 212220200420012: [101001040340004,101013004002011,112022334022101,101011324004222,101410401010030,103210241422022,103240001403000,102121010212140,110020124200230,100022014100321], + 1040200020402000: [114030110041300,102300001002144,102302444110110,103001000142003,110310004424232,103132424000410,112013102004422,100400220013232,110010002000100], + 122331100310204: [101013444003040,102412004000132,101420421140013,101233341022410,103013314020203,100102401010230,101030021031101,100122124100132,102400200202000,100100124100031], + 120011302134000: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,102044021101411,101100104002023,103230011412301,101042001021012,100400000010020], + 101031003431110: [102102430310202,101020030332430,102002301410122,101010000323030,101001414212120,114200202330330,103304004023413,100022201043312,111300032204432,100000101031020], + 212101112441040: [100004221034100,100100411041000,112104034022022,100021221030421,101012114000304,102232024002401,101102120301114,101010021033011,103400014000012,101211000301100], + 120220402340022: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,102304100210334,100403210010142,112003100241220,102204304000304,100301104104210], + 240202000220001: [101221121202421,100001020012120,100033004303220,111042022141200,112310010200312,102010101412200,101033300332204,100101004300001,110002120412130,103220221400022], + 1110232201142000: [110412001240302,100130200020214,102044001440122,102400304042142,102223314042002,410303420011020,101004204000013,102023120204401,111324104130320,111120032214004], + 130104000332042: [100111011011011,114014112300100,114030034013101,100000044204004,100002100412200,101013004001421,103000014011004,101020224210014,103200000101100,114202244101041], + 300003100022030: [142442243204131,120032010212320,1023422111011102,411001103222300,1022200104230030], + 102222013002040: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 220102001014113: [101223024040101,102100111143220,102110021342011,103100011423301,103200014030310,110011301033002,110302232221014,101010304011100,114304312321320], + 1021220222000021: [1010130003011221,1002022200102230,1012221001334200,101010221030010,102201414042030,100000030000011], + 1031310034203010: [110033000022043,110100200030100,100000411231000,100023001222000,103140021211010,100020140121034,102340211000200,102300231000210,114000200010000,100012024210202], + 1440432020101222: [111101010010203,110110212010011,103120101441202,110011000022102,100004104210221,102202410240103,400014404414011,100000010101402,102010414013103,101201021022111], + 243412143003000: [100000111021003,102323101101400,101230330042220,1304100402114410,411242003002123,410142111403201], + 1030043000201201: [102202014030042,100000100000104,101410204001212,103102124002001,101002224003212,112033024000234,100412100430011,102210210200002,102203101300422,102021120240030], + 1101340441001211: [103141411420221,122102400312000,110002100110002,1340024302404122,113110330121030,410020013004430,1002300040412102,123211320000102,4000344002004121,1300202030404201], + 320420211024020: [110001332120300,102101211411000,110004014411012,101420021010003,100400122201222,100222110000310,100402210013013,112032040234431,110010232004000,100102210414110], + 1142002320040000: [101301014221122,114110200212210,102102204022310,114040210022000,110012130410040,100104101200201,112201010203210,103042320101230,100020300102123,100120430411222], + 134302040100010: [102121221343020,112104424022201,1302314034023041,1300034431310021,1001010233020100,112012200120020,102210104000000,111023100040110,111041134000211,102203211104211], + 211344000044232: [114202400210000,100302014210100,100043111020130,103112004004201,100122210402412,101020124210122,102002021121202,112040030223200,101011001114014,102204004030201], + 1101000101020220: [102400031401212,114013342210210,112430012022003,110141012040443,102200001300021,101000044002001,100000131232000,110200222120200,101010101140420,110203321302023], + 124200002000111: [110011000020032,111000044400210,110004204210030,102222021012222,100033304311024,112231212040100,101230004013020,101411204021211,110304122100132,101420040334122], + 1000021144320022: [114042304100001,102210224012020,114313302321311,102212300202110,100012120201211,102210304013310,112101020200032,101220000302410,100024414212001,100000220100210], + 100213121033040: [100011000202214,103040020122332,100000024100000,102200130202201,100010040001210,114302404002020,102001121132032,100001300012442,100011114300032,100022304302043], + 134020400412303: [110000412003001,102011331131302,100423201003400,114000230023300,102021204013000,112042024000020,110022100044100,114400200004310,110003000024101,102400401412102], + 1011210200303001: [112102002010103,102121111120001,110112130003104,111100002112001,100100101200012,111000044123400,110102012010400,111101104421320,101003040303000,100003000423104], + 1114140000000410: [100030401020131,100020344302010,100002100000100,114100102340003,100100414230101,110130030020000,111214004444320,114024200040021,110112001300220,111024132204021], + 4004040041142200: [110420140032102,100110014103210,102013130223020,104100302102030,110002002002112,110202120004000,100041204331000,114012032240012,110000242104040,114000444100400], + 104431031024202: [102224101113104,114202144102100,103000214012040,112012012002100,102314001000244,100034140011211,114100000031020,103242004031022,100003124211410,102333204110024], + 1430013111032021: [110001022000001,110023342101220,101001421031220,100021004310222,100001000100000,112220322030220,110202222043022,110313312021120,100220214333200,110330234422000], + 1111020410302022: [100020004313034,101400120320033,110430030000041,102020004000301,114114204001401,101042214000121,102000121102220,100014300000200,100210130430132,101031101024100], + 120202032400401: [114000044020204,103044010120003,110142020400012,100142011022211,114230344103210,100030020104423,100000001021041,101000401032212,100004104241121,101303414220001], + 114443440200440: [110010220040411,100010021002314,100022441042300,103100111424040,103020040142112,103210001410031,102304000242033,103002221400000,100010020101220,101400200303132], + 1100403120001102: [122422422004001,214021333002200], + 140110000402210: [100000400000241,111102214104403,100132004231230,102120131401230,112402002010000,110021340020022,101010001000320,101022021030201,111001014111122,101003204000300], + 112000203233200: [114222004004201,101140334001111,1012321211130014,411242003002123,103224040221400], + 103213013001022: [114004004100210,100002100124101,102204304000304,114003320044100,103040004011113,103030130100011,114034224033402,101040040300223,101124014000140,102144401410210], + 200211414412141: [114222004004201,110400323041022,101140334001111,1012321211130014,103224040221400], + 201243240130300: [120200102001400,402101003201022,1300102201211020,101313330340001], + 121010412002101: [110111111010000,112134000201310,112230122030224,114120014004003,100110130000123,100200201213011,102030000221134,100010020003310,101042204010110,100022024300010], + 1024030321304320: [114030110041300,102300001002144,103132424000410,112013102004422,100400220013232,110010002000100], + 1002414214030021: [103101200221334,114021000012310,110041001300210,100400414300130,100400231000200,110332030011233,114000210010231,101000100340001,101300240310420,101000344223010], + 230410311401320: [100020004313034,101400120320033,110430030000041,102140411342420,102020004000301,114114204001401,101042214000121,102000121102220,100014300000200,100210130430132], + 200002004323001: [102402024000034,103012024004312,102214020242110,114102224104002,101140320330114,114422404110312,102403144000120,112120020230024,103221021412001,101010010300020], + 1204300000300222: [110240001202102,101023001024400,112020002311112,101002100340212,114200012321223,112000030210340,102201000203202,102111320321320,102010002000404,100024220122100], + 1031232004022201: [110311331003000,101020240300003,112300032000100,112021334001000,100144430411240,111000024401300,102321040213311,111210442211022,101120030010320,114124002341030], + 1122133010410100: [101033011001100,114314300012000,101011010320431,100100004230402,102321401104012,103041414001042,114200022300033,100000200100141,100002004344013,103220000104122], + 201402200001143: [110213012044343,102232401114310,100320224314301,101400004022212,101020111032030,103411220132012,102020001101232,101423120303010,111102130021203,101410021010400], + 1001002024000000: [103301244010210,100101031041022,100000240003101,100041234101100,103001220100000,114124420032020,114100000031020,102401024020221,111231012242301,103240404032240], + 1000301100131100: [114330014002002,102141124004222,102430201110000,114020024104430,102010210200102,102124002000102,112002040214231,112042422001032,102100222002040,100011004312001], + 1000000201241220: [110022004410312,102000401442010,102000014004040,111020004400234,321114010100340,100121041041101,102322101000200,101020041000102,1042012320010021,110413131000201], + 1240213020110002: [101141314000221,103041000000104,110033101314000,110223034240100,101041014010212,102220232001303,110020102202100,110301120042202,101002211000243,114313010000002], + 243004100003202: [100023421041402,102120031140142,101010224000130,101144134001102,110012220002021,100210020410010,114034422302101,101000414002041,110220302043002,102322004112023], + 1202200330200101: [114011220041204,100301031002201,100000224311320,102120121212031,112022040242001,112000400223100,100211111003420,101100004022130,103123314002423,114310332300121], + 131040411001201: [102101211411000,100102224033421,100120040400011,100400110020244,102021001411110,110041102012100,114222010213042,114011120010030,102310100243242,100200044121414], + 221211100144431: [101001040340004,102424204043100,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102202204040220,102121010212140], + 224102100212001: [100012134302230,102102240210112,102012110232021,103300201400340,102002230200001,102404341113402,100020000100311,101444031100130,114404214140114,102033442000014], + 1000120202102321: [111201032220400,114203000004300,100022120412132,100000321031423,110322100104010,100031314241140,114043002302200,101222121020001,102120230230000,100032021041010], + 121312320102000: [114300240002100,111010142110323,101011100301224,100400000020101,100020240000242,100002404312012,101100020320000,110034104202330,101000011030000,112122002010012], + 243102213000012: [102021401410001,114210410000401,102002410222340,103210214003143,100110000020111,114401000004202,100024104100032,102100014132110,100021304103002,101120024021024], + 103022210000212: [100310120141002,103000004002012,100002011042020,100301421002002,103022021431010,103200020111014,100010004313001,102010200221000,101041201002422,103104200210410], + 1023022214100312: [114410024110002,111200210001023,101101401020424,114030220011120,100002200100100,112002110240403,100002210000020,112410110201010,100020000120134,112422100200404], + 132202034111210: [110012031011302,111200104411001,102121200313040,111011104401124,100300021202320,111201004131300,111311434120141,110334102021144,111421020001110,111212120001103], + 1140033110031000: [102000321102310,102400234020130,102134044134410,101202001022000,111300220000230,100133204300040,114110032343001,100110101040020,114012222301110,102001024011010], + 1020023122320003: [112224111100141,101221414041100,101021244012200,100210301002021,103040000000212,103000001410123,101300004211000,111240300002140,100100040402102,103213114041040], + 200230211401001: [1010020012204013], + 210030132003021: [100442004304040,102020120201002,110001000034023,111041104111423,102130000233203,112422422020403,100014030122210,112242100412003,110220001312011,102042011413203], + 1130301021110112: [114222004004201,244410001402030,101140334001111,1043011000420133,110004004413303,103224040221400], + 1140200203022032: [100233014224240,110110200001000,102221414000020,110004210004223,102302004110231,102203004032420,110000034212000,103110400120220,110203021004214,103101100123012], + 1124003000100220: [100440031001120,114203042330220,100020001041410,102032012000101,102102231400111,114014112302234,101004201001232,112102102302000,102141231343401,100002020101023], + 1013221012420000: [102142221342202,101012400343401,100020101020404,100002411021201,101000410321210,111111102240001,102001041100103,100141431011400,100030324102411,114021004100002], + 1421100100403020: [102430201110000,102124002000102,101343331004220,100140310020221,100002131020410,114044414023030,114244014002020,114420102322024,114010120020000,112210314012010], + 102410302400213: [100024000110221,100110020031042,101301014221122,110422102110221,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222], + 121300003210140: [1020102021344321,100104302001300,320424300313211,1001102321230101,1002001200441033,101040020314000,1101003130212010], + 100002030010010: [100000111021003,103012000142231,103000001004002,102344210242220,411242003002123], + 1014201304131122: [110431442110400,114011120021012,100100111041320,102334001004100,114110002202241,100001140411014,100002000000003,101312014234200,114000012210041,100000024214212], + 111332213032111: [114203104112214,112221002043330,103214200103130,101011024213031,112222042030004,102230200204114,114241010002120,100040001221420,110102110120200,101210021000110], + 1120222022100010: [114343002322014,100022314100104,102130314131401,114100022342130,114300010002100,100013024312024,102002020243020,114002002300201,111012002200101,102040021121030], + 1111012321012031: [102033021130021,100000121042240,114000332303001,102141100210112,114130200001000,100022224312021,114044240023401,110240221202310,102022104010020,102101122004040], + 1004401211002003: [102312440201042,101301211001210,102200000200400,110000001102024,112011004023221,112020111124021,104130442103002,100110304032200,114121304000010,102200004040001], + 1400110010240302: [102424204043100,100300211000020,103211220100010,101202201021310,103044004010022,114130020222342,112301032022414,102103100310300,102012014002001,101010231002004], + 1010043221034024: [100022314100104,102130314131401,110200002031302,102002020243020,114002002300201,102040021121030,100311314310000,100000204130001,102041130200101,102104001320022], + 220000241210412: [111010204402020,112010201112142,100101141010322,114003102303200,100000044310330,100030134100201,112000020240130,112400232022200,100103020400014,102100430314220], + 122040221404000: [103030411422014,103043334040203,110422201312402,102120131401230,110200302024000,113130020101411,102041210224224,112200030203124,102004020224404,114201024101004], + 100203010304010: [101001201110100,112010420232040,100032114202001,100001324201100,101440004041103,100220410101001,112200202021003,100004104214300,101023024210000,110000442001100], + 212222204100141: [100200400430003,114420102323300,110404122110112,110403010000304,114100040214000,101210021021243,102412044040011,100140024230240,101010200320244,102214000210013], + 1400223320112100: [100000044301222,111012034402110,114221004034110,101223041020020,100011230120014,101104024002242,110133120011001,100400010013033,110100000031102,100100001043001], + 221031204224014: [110000022003412,102401200232302,102230221100001,100112224301402,100011100102010,100022404210000,101322224220202,100003100011100,112003000230001,110002120141023], + 121003401231030: [102431111110001,102013421100201,1003002030122040,202003402402323,120204110000223,100400002201002,1110002442211200], + 1101033011410301: [114011120021012,100100111041320,102334001004100,114110002202241,100001140411014,100002000000003,101312014234200,114000012210041,112003034003102,100301020420101], + 100241101234331: [102110000210300,102422021113012,104220041321240,101021321034010,103422421110341,110001120421122,100112044302010,100300030421240,102022300202200,102010424011101], + 1102201014122203: [100040004210202,110301000400042,100220222000100,101430221010100,102130000201200,120440011014232,114230232331111,111220002220203,122330120132002,100030044101131], + 1110221100012414: [100300041001121,101240004011021,101011001103200,102022020204430,101002244012322,102302210210322,100012401020212,102000324011143,100003131040012,103004044010300], + 1000001104420100: [110130010102101,111022412140224,100212034221414,112004001122300,100222100402024,101301124222004,100121301023030,100014000022201,112204220200011,101121401110420], + 1000311211400300: [100021314202402,103142211442311,100111011040002,100041221020214,100040341021101,111123212212000,100014001030021,100230221002200,112003020230203,114224012340002], + 1100002000111104: [1043303323011400,1140104002020100,140011220320300,400040001020004,1001120000022000,101201220402420,114200022340011], + 1101221303412122: [101011004212201,110032022002020,100214230430124,103031234000122,100400110020244,101042001021012,103230011412301,101100104002023,100400000010020,100124021201021], + 1020240011302114: [100004204302330,114202144102100,103000214012040,112404120200000,114102004142411,100004400100414,100034140011211,100041244344014,100230211002042,103020221401210], + 130004024000101: [102020410220200,100013014101040,100402010420301,1130420100342202,420001430323202,111403040111110,200323000114220,140020100011012,202041211000230,210040011012132], + 1121232003300200: [101204400304011,100020440122040,112404002023002,103003004044030,114030300020401,103101030211200,102042231130200,114440020003320,103310420142020,102342301104201], + 100004200423100: [101342300314204,114013124030022,114104200220022,100021221021201,110001244204302,102010244010000,103003204011330,114430412322343,114200034110031,100000430014301], + 1104030001004442: [114300240002100,101420000304222,111010142110323,100003100201031,101011100301224,100122100000002,101213424040301,100400000020101,100020240000242,100002404312012], + 101210141320242: [100011004340114,102101101140040,102000021444112,103100214001400,100003010413400,102121001343030,102102030210111,101201041010123,112410212020002,102132210233141], + 1010331011142020: [110310304430141,110301120404342,102113304130002,102000131131100,103124420221210,100011034302423,114032024012040,114200144110020,102142002000002,102021011132142], + 1000002200023000: [110033000022043,101230004040022,101021020324310,103140021211010,100020140121034,102340211000200,114021000044211,114000200010000,101312014223102,100012024210202], + 120310000220004: [103221204032410,100004004102410,111121004103434,102112041020001,102202014042012,100221110101420,102441030231300,103032000144301,100003220100000,100131100021014], + 1140010101240441: [100023421041402,101144134001102,103002144042123,110012220002021,102304204110040,100210020410010,114034422302101,101000414002041,110421104242000,110220302043002], + 1000440004202002: [110221212111000,100102404302220,102120141142220,130024021000014,110040030000044,102144030230210,112430102422123,110001004411040,102311204033230,111000012114440], + 1024020120210001: [100023421041402,101010224000130,101144134001102,103002144042123,110012220002021,100210020410010,114034422302101,101000414002041,110421104242000,110220302043002], + 1244233110000000: [101010401111401,103000030113423,113100011041100,114121022343214,110000140110211,110200102222003,110022314201040,101443100300002,110030214201200,103012001410013], + 1100001101413002: [110221002120123,100130020020131,110012214201121,102001430222111,110220242120021,100300021003040,111422222100131,101010101122101,100001044313211,101122304002402], + 221141213310101: [110130321300301,111020104110202,102240200242002,101000411030013,114300200000110,1003110100202043,100313041004240,101322310313010,100000000410101,114403020000214], + 1411030102004202: [101042410301221,110432300102000,100011004102400,102304000210204,110040344210011,100020120101000,100003200020112,100400231000200,101000100340001,101300240310420], + 1102024004211201: [102121201340001,102200211120103,110400242110410,111302204123234,114132040223044,100030020423044,103013104002044,114211004004210,100034204310001,111202000003000], + 240121030400140: [102402124022000,100200200412034,101012114000304,102202141120400,103004041410020,110120224221100,103444024001001,101004004211001,101002000323021,103122404000344], + 1010033111224110: [100000111000003,112400104044001,114423002313230,103201021402002,101010401021030,100304101200101,114001310020023,100201130410420,112010214003000,100404220013411], + 1402042022111000: [110043132100300,110132031134031,103002124003020,114020024120310,121021032342113,433402331200202,102222034401200,110030221221100,1001412211040002,1122204031101014], + 1121000002002224: [110041240000013,110131122012210,100012044101230,111021212200430,100021214210112,112010034020230,103021004011210,103120204002200,102404121400201,101020204003012], + 1043411013220000: [103301244010210,103001220100000,112012012002100,114100000031020,100003124211410,102401024020221,111231012242301,114444004140210,114114100214000,102220210203210], + 1000212010040112: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,110110200001000,114121012340044,102000400240203,102104304023201,103310300140324], + 110323231000020: [102300200220002,404002010120214,1001412211040002,112100424020221,103144011212002,1304032042210300,1310241403200440,1010300130110420,214301004122000,1310330201104132], + 200134144110100: [110102042010220,101020124000413,111210000001101,114013400011030,103004104010210,101220024041000,102010300201414,114330432320002,101413004041201,112224012020000], + 1132204021210003: [114104204002313,114300000002130,102122210230200,110421410100301,111020020020030,111040102231022,130102301112413,111040000020020,100101114030101,120202202001010], + 103002301000110: [114220040000201,111040032200021,100404400013222,102241044033231,112201010203210,100000214310412,110000312201003,103042320101230,103004004001222,100311000422101], + 101200200101100: [114020202300410,110430341310122,102140201343122,100400100020024,101102241114000,241220023100031,110014142204101,102001104014024,123010242104441,100203321004410], + 122122021020122: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 112220120041433: [103000104004220,100100201043023,110243010010124,101211010300011,101100424003101,100201401010000,100241131003241,102231211302002,102124001120110,110400231311120], + 1032121014401010: [1010432014422122,110321200010003,1300102203020001,1341200201004020], + 1403002142400002: [100341101003203,100100230402040], + 1002013403010200: [102131104023111,102420130230104,103000004010400,100000004310002,101021014224121,100012114210011,111301000000031,111200304131014,103020200123211,100000340120221], + 100003241210204: [101133001104410,103304014020032,114202424001100,114113004120221,1100000411441420,101122031100000,1002203010011112,101211011012300,100010300121240,1012004033012200], + 123130103211001: [100040014331413,100213020430224,110130104401101,102040044001211,101001004001001,100220301003101,110004402010202,102130204000301,102200210202001,112402204042100], + 1142301140221020: [100131024303001,102231114040010,102100001400002,102000214011041,100010004210310,101120211100120,102200004044212,100004000413200,101210004011002,100001100421120], + 112200123000404: [101242421020211,110100112141101,111230044134200,111200020004203,114100004120120,102011311103423,100430404302321,114211022324230,102301112004021,102402204023220], + 1024102402011042: [101021120323020,100102101000203,114111200034310,100001021030011,103230040101112,100010041032043,102110234020204,102441311400421,114020214033220,112030004021010], + 124402312010110: [112040232002301,100000041041202,114230000000202,122202200013331,110100321201200,101000200310011,114012322301013,114200000001030,110004424412010,102301004110302], + 1104322200003122: [102000020223013,114040102301100,112121032014014,102310111001210,100020241043022,102100121341102,100301024310020,100130010101430,103112000210401,102113121401222], + 1024420002011313: [100000111021003,102323101101400,202003402402323,101230330042220,1304100402114410,411242003002123,410142111403201], + 330001201311020: [114033120034402,100012204340000,100040221211010,102104010311220,101000404012321,102230022023230,101122001110433,100014200003002,110320022024110,112041000221020], + 144333223223000: [114402414111240,100012134302230,102012110232021,103300201400340,102002230200001,102404341113402,100020000100311,102400204024124,101444031100130,103241134020044], + 1040010022042224: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 130200110130012: [100231001004000,103004100100121,102234100203413,103204021411022,111023102140240,103213100102030,114013010021004,101020024001432,100012004110041,103020201412331], + 200310030002324: [114042304100001,101211240301300,102212300202110,114203134112000,102000000221441,101023230330104,103014140101101,100130124030404,101401321012030,101021121112112], + 100331023200222: [110304044431200,112122104040040,102103131122203,112120012011020,112221114014010,102132014020002,111100422210104,110134000003002,111121302103104,103314201402401], + 320001302344420: [100240324101101,114203400000000,110131214220303,110021401213103,114000010042420,100400332201021,100042021022002,101004001110002,100100004300002,102020104000240], + 1100421420010241: [110000001324024,103100314001030,101020111001331,100040301042132,101000001111200,114010040023411,102110001342011,100402120030401,102001010222103,103300024014002], + 221200014212444: [110113314221413,112004310224204,102304420211002,110403042110030,110120424221121,114112132313033,100220000432400,110001000142403,100403412200201,110110000003024], + 101003110200310: [110202000000310,110000010120043,102102011413000,102403404004110,102141410230020,110020001224021,110103111120042,114420000001301,101012410301010,112100000200031], + 1011010203002001: [120200102001400,1034004021300110,1022113221121000,102001034010113,101313330340001], + 1101111001102233: [100101011010340,111111000014001,114024312202242,100020001011422,101023321000020,114033400011210,102010221132220,103100204000400,100110411200024,114020000022214], + 1441020031401101: [100101011010340,100422040021304,111111000014001,100021320123031,100014041042003,114033400011210,100002010413410,102010221132220,103100204000400,101433010300204], + 133312222130010: [112142301101040,101100000330120,101214440300301,101121100332142,100000400000241,111102214104403,100033230420102,101412001100222,101041210311410,112402002010000], + 302211121123042: [101000130320340,112401314040311,100110020031042,110422102110221,100220124221000,111004100022110,101002201140040,103030040121410,110023202100200,100211000412142], + 1040322003203120: [114444244144110,114201004110120,114033234032101,100412114304000,103001020120202,101000410321210,101000020302400,102021014012210,112400000200011,111101400011011], + 1042012232222220: [102000402041014,102041410242244,100022010411004,114000424102300,103112011421222,102323201000412,102212434110001,114240044000100,103140031420300,112102314020000], + 122101142204240: [103004031243101,100310430440011,100404230012110,113100000101010,100010200002010,110240104402203,101142234000141,110102030000113,100102411000141,114330000010023], + 1011343021000200: [112124004022322,101201220300012,102103201320411,100100031043410,114001100024243,112020100202034,110141112044000,100034244303010,101214240300211,100120000410220], + 120023031020212: [110441234224400,114021412213020,102130020200000,103100014031411,110000300424304,100032121024110,110013122130200,111403100030130,114020204102020,103121221400012], + 1040241000130200: [100411410430220,101410011012112,110131310000224,100011030400203,112104124022321,110100022012033,100103044230022,103222330131101,111001124404020,101200100300100], + 100430412000104: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,102440100200000,103204200103440,100210004104001], + 121211000420140: [103210140100004,100020000410221,100203001002230,102031431103242,102031100211002,102300004022200,102210004041222,101032230342010,103100400212241,101202021021011], + 1000203000040112: [110302302001423,101010101022202,110240134211002,100013211002142,110104000024100,102211204000440,100200001001420,103200314020032,111030424400000,114140044002043], + 1400001001021402: [114000024100022,101001231032003,102304200241002,100043420411130,114112244122013,112144232304210,100043041020120,102022130224432,100002334201103,100022204204040], + 102404300403301: [102401121113302,100021020124002,101320040302031,114010102300010,102000014002000,101034014011332,101203011023020,100042020102003,101010034002013,101312204221040], + 1042104130021022: [101423400300400,103140114002241,101300414221100,100024011031110,102200230211200,102142221401140,112220022044223,103113211441220,102104411412302,110222042031222], + 131231010410220: [100001000011003,100220404320423], + 220001000032124: [100020001041004,202421100022041,102100111403011,1000042010002402,1100001420031333,124000002040110,433020311213122,1321202200220200,130030004001124,100040220123030], + 203000000202310: [102121240200000,101212040303123,114024142200303,100011221032200,112401042010001,102031021133300,101130314020142,100000040101003,101422210301101,102321001000013], + 1000234010211100: [100011010414200,102002121101110,112014201121001,110000100041101,100400000010033,112334320201110,103224101400400,102000002043020,110212000003404,102130101121401], + 220024101313212: [102424204043100,112022334022101,101011324004222,101410401010030,103240001403000,102202204040220,102121010212140,100004221041210,111103212211022,112002014000112], + 1020412302200343: [100341320422234,110110132041402,100004411232040,103140240112020,112034310220200,113200210100211], + 110020200112202: [110140102142200,114341024032221,102004000201030,112020401130100,103122301212000,101000141004421,112140234024202,100140314102014,100000400412331,101014200304201], + 100212003203020: [100102244330400,110012022031041,110131020012303,110313010000002,101141010323021,111003102200031,103004304040120,110321221330204,102210004032202,101023141140010], + 200200330011102: [103321411401411,100042010200121,101000010300200,110004442003322,110400141001003,100004300100000,100400110022101,103013001223110,102002010220000,101003311141110], + 1003304300123100: [100020031000013,100024004310330,111100012111200,110410324244300,110020111210101,101001001000302,111034020021310,100110040411303,102101030311301,114121012211212], + 1000130340100220: [110113022011200,114010024033002,114334222300122,114140002204140,1111310321012011,1042411340004022], + 1003321024022130: [100240324101101,114203400000000,110131214220303,114014124030001,110021401213103,114000010042420,100400332201021,100042021022002,100100004300002,102220100211221], + 1000004122122100: [102334004110232,110002002000100,103013000104404,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041], + 1011000124422204: [110200002031302,102002020243020,114002002300201,102040021121030,100311314310000,102041130200101,102130224131022,100220031001210,101010200312020,101040204210210], + 1010004110010222: [102020041440000,100231001004000,100004004231003,100200024121000,103204021411022,111023102140240,100211011001040,103030020100023,100204001000003,100020040401004], + 1411101200012311: [112142301101040,101000130320340,101100000330120,101121100332142,112401314040311,102011004013000,111200122222334,100220124221000,102301024113440,100033230420102], + 240143010100122: [114222004004201,110400323041022,1134000004202341,100000144310420,411011320001004,101140334001111,1012321211130014], + 102324020101333: [100010001043004,101033044211203,103102234003012,111200044424130,112100330410121,102000111100221,112003102000220,103102424001204,110032301041321,112113222010004], + 210002002100012: [111102104100334,114202100000010,101041424000304,111440000000202,100100304303003,100001401034130,101220200304110,110403102222001,102222334041224,110121110020020], + 210422122024211: [112241020202432,103341411403412,114100130002210,100100001013001,112401002022010,103000214012340,100004204101200,102400134001010,102001004014032,101321040311120], + 1030000221023012: [100041000411231,100010101030000,100004004100120,114204120210000,114110030002020,112002100233204,102410010201202,103303001400240,102442004024220,102032440200402], + 141210203140303: [100031220004000], + 1100243232201102: [100120221021011,111242212222022,102022411100012,100020100100300,100001210102104,101401140300101,103220200100320,101030004004303,114102404120000,114000020034200], + 104022002120022: [102040431121110,101221020040220,102212000200124,100300310140241,100103104302044,101041030320401,102141212000200,102042000222002,101203121020430,100030010102102], + 220033134011013: [110402100100230,112303010200000,110120220131103,110414322014044,114200204000020,102020014000230,102113320210012,100004204130014,101011040310000,111311022200000], + 220221300012012: [140203123020300,114010230023434,144203403221310,141000201412111,110004030120020,100332121000004,102301014204000,112040314000200,114210414000324,103122201420410], + 1030003041434000: [413240313440033,1020020141223341,1040200130322041,1030422101440422,1202120201221210,1002004000020441,104140041004101,142110112121222,120023100030211,411011042301123], + 102013000012024: [104130301242304,101001114012114,114222042332003,114020210010230,100101121010100,112304211102104,100024234202001,102022024000010,112012002000200,102102001342202], + 1041320001413040: [103102010212440,100021120412010,102002344013100,110002002200300,111200302214000], + 1040022242040202: [101240110302200,111243002222100,102022011130012,101004424213001,102011444002012,100101204303002,111242212222022,102022411100012,100020100100300,100001210102104], + 1104401142320040: [102211230244321,112121214040022,100041014210020,102401221402002,102102011342302,102140200224200,101001244010120,102200121300400,101030224004130,100004314302313], + 1020200321032102: [1043303323011400,140011220320300,114200022340011,400040001020004,214301004122000,1003033202212100,1140332400310103], + 1400233004340320: [102031001411010,101400004022210,102031021441200,102300031004340,100213310112333,101200020303202,100000411002023,102303200241200,102013224003020,103013020123142], + 1000231124314300: [110043132100300,100002004201122,110132031134031,1320303202002000,1321200010022312,110130330012140,114102134002330,140403400240000,103002124003020,100003230110201], + 110021030232201: [112000112000031,100142104100403,102123214020000,114202204113222,102022124012030,100143220410040,112024000213011,114002320022312,111000004400110], + 1012341103200122: [101011004212201,101010304000003,100214230430124,103031234000122,102044021101411,101100104002023,101042001021012,103230011412301,100102001000000,103400104003420], + 100001102201100: [100002004303100,110130010102101,111000122201420,104134121240044,100212034221414,100042004301301,100012021031014,100000201032010,100404000020000,100010210410420], + 110410101201021: [102011121131022,111320010000021,100010214101101,102010202002040,102131300232014,110231202044211,103022001220121,110013122103220,112214100423320,100000320004100], + 1244120440030013: [104130242103012,100034304101213,114002014100310,102000101132400,112023140212112,102101031412121,100020020121132,103311100112220,102102010220401,100021120201020], + 114321004123230: [100020211001002,112012000223204,100000121220100,110011222202100,100201424220320,100010024302421,101022400302010,102020110221414,110000140111000,111012000002211], + 1201000040032120: [110400124241011,112104034022022,114233300214304,111020204112021,112010012000201,103022444011022,102101101021304,110210000000040,100031324100010,100024204204210], + 1100001200400334: [110040112132130,102221041100201,100204004121023,110111111010000,100413304100413,112134000201310,101002401110142,100110130000123,100200201213011,102030000221134], + 101220431440310: [103114204002100,114230004110101,100001101033010,102142002000030,100000201022420,114000024101202,100100014302013,101204031024110,112020021120403,102020204010341], + 1020032020112404: [1014410101001020,1002001101203410,102403114020212,1302014202432324,124112001101111,123140301003111], + 112230132330411: [100000004102121,101141104004013,102303000241200,111120032212032,100002210100000,103242024032020,112012000220000,102331410242212,100220020410020,103200134030201], + 121212010030101: [102100420231433,103114001444241,100020214240402,111324002200000,100030211020221,102013110232000,110014032200004,103122340101040,100001214214401,112140422012414], + 1032022200020121: [103244320114100,100032011000241,102311011000014,101010300300110,112031121113040], + 1041203000040200: [114422004110130,102012030213014,102003320200411,102002024000132,114021114023402,100401001011010,100210004343102,110100331003020,102021221120401,114242312322020], + 1002002020230401: [100200101000000,103110431441100,102100441341013,100011200121231,111201102224324,114040020021023,111230114102201,114201102342110,101400300300111,114430204112100], + 101202101400102: [100023101042010,102112310210202,114221224002403,100013310123100,100101014300100,100400242201410,110300121301133,110420032110400,102001130224032,110000220431010], + 314012200200400: [101213114040141,102210101002412,111140100011101,103220120212134,111103314101000,100012011022000,114140104122430,101100010302233,102021241324040,102100402004002], + 1002200221040000: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 124040340101403: [102104201320013,114220104000102,114310214033042,102014001441210,111010144124143,110401200100202,102141012001120,112014014000132,103011414001001,1140000003002130], + 103140000422000: [100222004320102,100110004103122,103020200141000,102414034040100,100022304302043,103031300144042,100000111034100,103132114002002,100412200002013,114312004002020], + 110200002133204: [102310324112030,100410130030232,103220101421001,121110020100002,100002104204000,140004230143221,144200400000000,103321202010002,101124344200400,102021220202100], + 1003000020114431: [100400002201113,112024212301420,102420424042020,100240134323001,102111024000402,114321002320001,102001011100100,114402104142102,103312241402001,102122412001012], + 121210210121243: [110001332120300,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011,102130000312121], + 1140302320420033: [101400101012223,110022010021111,102034021103200,101413304040000,100124421200122,110004301312421,110113212042223,103423040130000,100201331000141,103400004001122], + 1121402101112210: [101214200300004,114330120000222,100200241001404,110001440004103,110010022202202,100011210411120,1000301003020410,110400302222204,1014111023013000,110320044420300], + 130200211100201: [101002240304011,100201134100140,110034100040021,110213002132000,103010000110210,100311221002322,102022201020004,112102204024002,100100424030003,101000131030120], + 1122000101112244: [110400022010030,100214121000000,100042034200032,102011041100210,114323000000130,101400240300010,110202204213200,110002131200133,102412241111002,100424104302020], + 1124121012000023: [1020110422203030,112002010100420], + 1011001242142102: [110042220002210,110410200100200,102113340210000,110011401011100,102221200204022,103021030102410,101010200321421,114100212211004,112001402002232,102241021112220], + 1100011330444010: [102412004000132,101233341022410,103013314020203,110120211001001,100300400142001,100000120121031,114211324100004,101212311020000,102002000222021,110201030143012], + 134212304203011: [102220300000443,110210103122411,1300102203020001,1200020030443142], + 111100420422001: [102311024114010,100000324202120,101010404221002,103300141402002,100020400123300,103202421400110,100010431020224,114102224122040,100100401004110,100322234212034], + 1001211101340210: [114313304002310,114000302331201,112204010411101], + 1020022441200000: [100223214121011,100202221212300,110004022000404,103020210101200,110010012102144,101020200301303,112000111120040,100402300022230,112030012300122,112203414012111], + 110242040002402: [110311200403410,110200201311102,110000200420204,110332000400401,100101220411134,110011120132000,101012340321223,101002034212140,103242010130000,100020011230014], + 230444140123021: [110001332120300,102101211411000,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011], + 1002001320444001: [112314301103022,102000222003200,110112211000311,103100001440000,112010402302400,112040400213330,100100404232002,111000122144002,103010141244132,101032301032001], + 213204132001020: [101022011003022,100003101003001,100020244100302,103140114002241,100102000423142,102000301100100,101300414221100,114020210020424,102200230211200,114001042203020], + 1400202202100022: [100321004011041,110002342100014,110021312002040,111101042244210,110441010002400,110124002040002,110023410122402,114203104001000,114302200014241,104132420010010], + 1002021222000041: [101022004224424,100201200000444,102000124012341,102020044001200,103000101431000,102011412002000,101030424210000,101200120302104,100041020121003,101002210300210], + 131110011002040: [101010001003010,110203112030000,100013020003100,110010034202123,101001334211011,100100310403103,112200010410210,110442004241010,111230112220110,100101101200411], + 1000021001013202: [102100044001000,100002134303110,110041214411012,101000300301420,101000101022043,114420240001400,110032124211302,112400122020014,110211122020222,100222000000120], + 1011200220330001: [111330120000213,101021014224121,100200021001113,111222004100001,102110010202221,103144001420031,103101130124033,102001010211020,100220114121101,114301014001424], + 231201004140100: [100040031020241,100411400030100,102120221120200,114002010040032,100400012201120,110311011330111,102020022000021,102310001100113,102000114010020,102102000312101], + 133114020011120: [110400112011100,102300120242120,110444010032242,112220001100200,114014130041210,100001041031013,114000004102022,102430001113001,114212102310100,110224200113042], + 1122410030000111: [101010001003010,110203112030000,100013020003100,100121001204222,112200010410210,111230112220110,112130400202001,102200000232102,103420021202012,103000034040212], + 332230002120240: [102123220230210,101110004021320,102201230200104,103012101401220,103001334010240,100214324104012,101333201002122,103200021404423,102013010220212,114041022210220], + 131140414102102: [112012002303014,100004340004131,100200411000410,102003101130231,102240200214023,111021220021002,101023011142204,102221014033000,110210320002400,100131104033004], + 200000022111034: [110012031011302,111011104401124,102224202023120,103000001410302,110421000003000,114200412322323,103410414000011,103440004000101,100432001014222,100212321001100], + 1144002103200220: [101020024212042,100041204212120,102113110210240,112423424042102,100320431000002,411200101402221,100120214230002,103204200103440,100210004104001,101410201111300], + 1000121202010020: [102323304112342,110240020100212,114221002340120,110021002130201,102201104020200,112202020413011,100120231204012,102324004112400,103002011422011,102201411002430], + 1020210002123402: [110100111221242,132344004001203,114303202300104,114020202201002,102100300233312,111021044400403,101231020300003,102203210201342,111001320002031,102201100232200], + 124041330110002: [104134121240044,100011004102400,100003200020112,101000100340001,101300240310420,102100020214203,103000300124010,102302001000120,114211410004214,100004120101032], + 142101043120024: [110102042010220,101020124000413,111210000001101,114013400011030,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011,114330432320002], + 113034430121112: [110001332120300,110003000420200,110243234240200,110004014411012,112000120232022,102041220200010,100002320113100,112240200202201,110020321120011,102130000312121], + 100010333333320: [103101224000011,102200042000104,103002000104400,110114021000012,103002144042123,102304204110040,112020004002110,114242210004001,110031404200110,114033020020202], + 1114020200022003: [100023101042010,102112310210202,102330010243440,114042044100403,114221224002403,100013310123100,100022410101442,100024101022010,110212424242341,100101014300100], + 1100000100440321: [103324024030212,112004001122300,100222100402024,101301124222004,100014000022201,110013202120001,100124124103003,100100221002000,100230040410200,103140221211001], + 1044204133200103: [101024001034211,111122004101222,114000222213021,114102330210021,102103214000210,111001100020413,112203101100310,111301204111233], + 1120444010220201: [101010001003010,102000000200302,110010034202123,101001334211011,100100310403103,112200010410210,110442004241010,101400304022340,101232140302001,110020302131112], + 130033021300300: [110414402020021,101000034000220,114312012300300,101012104210042,101430001010032,112402012020000,103322241400404,103210120100143,101010024213100,100040000123130], + 1244110301001002: [101220224012410,103200041200112,112012111114213,100111420112041,110332221302120,114102222310100,100400230022124], + 120012002101010: [110043132100300,1321200010022312,140403400240000,103002124003020,114020024120310,121021032342113,433402331200202,102222034401200,110030221221100,1330044041003024], + 1104140214212433: [100324140141402,103204301402123,110022002120332,111110230014001,110102111204210,100301101000021,110020140044140,102131421000411,101412030302001,100000401041022], + 313032213002001: [101410411010012,100203011000010,102221104042021,100140001011002,1340010113012333,101201200300020,100000024103201,114201003002000,100100221223042,101000401120424], + 224200210414020: [114114414001404,101110144024221,100400042200210,101201404044022], + 100013001000123: [103202004001120,103021024013303,1300022002310414,1112301032024000], + 132400000020000: [102140014002141,104231322021221,101104301103200,114222404114003,100004004101010,102002204000124,114332040002242,110031000022012,103333030110111,101041330302002], + 1010224142000101: [110203131211112,110021100023210,103122000100403,102023120241131,114103412201420,110014300041302,110020041310021,114241000002004,110020310022021,110321001330010], + 212030100102001: [114200212322001,100401210020002,112210322040121,100402042200000,100010111022102,102000224000000,100002104302110,110030222130000,101022440300020,101402010301000], + 132344204303200: [100010001022313,101110014000021,111201144424102,100201040431010,101000121142221,114002232304142,110020220014012,110430031313103,110241211110014,114341104031330], + 1131320100222041: [110004020020022,100043010120010,100123044300022,102143432000102,101031001004201,102040010200101,102200434012013,112000301122111,100021301302122,114001110033210], + 134200121020120: [120004030002401,114303212321010,102104240200102,100013200001300,111241012204330,113030302200300,114210010004204], + 1040042003002100: [102100420231433,103114001444241,101000004010022,100020214240402,111324002200000,100030211020221,102013110232000,110014032200004,103122340101040,102012114000000], + 102000142013023: [100041000411231,100013014102414,101004204210100,102011001320032,111221224100202,102140040210040,100034134300203,114202000000000,114312012320120,102402220201304], + 310002023102023: [100030010011002,101021301022041,1043303323011400,100402300013130,1001120000022000,400040001020004,114200022340011,101201220402420], + 1123000000012023: [114002002300004,110100201140241,102020111324200,100042204102400,101044400300030,101024024002120,111304442220340,110203002102023,103442121212103,110032001122110], + 111012000410000: [112100124023402,101020044011003,100002414210010,100021014100124,100122040012210,101020104000001,103013200120113,101040000300110,110042141214302,100142221042020], + 1120110140012111: [102341411000203,103010210100220,101121000330012,102412000200222,110200402121400,100024001220012,101400010300020,101121101104211,102400000230200,101200011022022], + 1001000102000000: [102020410220200,140240400200310,100402010420301,102022110202024,102010140220011,1002102003210222,1130420100342202,102120000210110,111403040111110,412011223000140], + 100130014420214: [103130424000200,114010204012441,114000240030002,103244034020020,103201034020234,114013402304000,114043342241044,102240101123140,112002122000310,111020200020110], + 1020111110200021: [104110021244203,102224101113104,102103022002001,100142431013000,101000031001011,101010130321200,114202144102100,102102401412242,103000214012040,100040310123023], + 200021003221032: [102011114002011,111100132241003,114101042202201,102144201402040,100100011041201,110000214214420,114021212301131,110222410000021,114404014142133,112010112000311], + 1011300024420011: [101222101202341,110301442021010,100010024302100,100000011020412,112041000220020,102022400210202,102003034011323,111304202202230,111300000001323,110000002001040], + 202201121032030: [114011114123044,114040204014042,111230032242001,101221031020331,102101404000000,103230004030322,102300200221021,101021014000200,114100012204104,102440000200011], + 1000001010000030: [103142211442311,100111011040002,100302000140222,100041221020214,101311111000100,100040341021101,111123212212000,102400220203010,101200221011402,100014001030021], + 1010203100304300: [114201204111222,102004204041000,100104341010424,100012004101221,100004004102410,102301101004100,110432112111103,101104001101000,101000100342143,101012111001103], + 1431001312300230: [111121004103434,111121024400002,112202020200200,101304004232410,101330104221320,110143012013241,102343044111203,101220141202202,110040022120224,1000240001120303], + 120020330030101: [103020001400040,114004020010203,102014001441210,100203030110000,102141012001120,100043004200100,114001020040104,100003000100104,102120211022402,102002421413441], + 1021130040003240: [114033120034402,100023221022210,100012204340000,100040221211010,102104010311220,102230022023230,101122001110433,100014200003002,110320022024110], + 1141000301432241: [103130021444021,102100104002224,102100224000210,102031001411010,101400004022210,102031021441200,102300031004340,100213310112333,100000111022002,101200020303202], + 1110200132213102: [101240220300022,100022000410041,103020000102011,103001031420203,102301324112020,114021004100210,101040421033204,103130011441212,102100001400000,101221101000010], + 101020000040100: [101222101202341,100020220410142,120202201010210,100010024302100,100000011020412,102022400210202,102003034011323,100003341032400,103211031422023,220202121014102], + 110213020022101: [100020000410221,102031431103242,102120411343120,102300004022200,102210004041222,103210104021310,103001040142100,103022140121213,100022324200100,110311332020021], + 110022231202142: [114101404004011,100004414100021,100102404100430,103020241402220,102023110212012,114140004123401,100004340100020,100002141021000,103000421420202,102201010200001], + 1123201240400233: [102133404134022,130000220021033,1120023242400240,131114110030130,113000343131000,410120000124111,431000021231320,413200300004130,100103222310200,1322000200210101], + 1143000002101030: [110000121222112,103102124000402,102221044031031,112410112010214,102201011123104,114022004100430,102300000242022,112204022021221,102000010202034,101030311000240], + 1102200234121403: [102420101111121,102101244022242,101041020321002,114101042313041,122112024242100,121211001014412,111012222200402,103300221402010,114021004010042,102112210200401], + 1000000112003432: [111223402220443,102002040220110,110430000400002,111121102240240,111320022200100,100300001002041,102232004040004,103000200122014,102203001120342,103133004002010], + 1103213302420010: [110202012100020,102303010241010,102120231343224,111342020011220,100314114322101,102230130203001,103100034001310,102021401324232,111222102243400,101004410311232], + 101001020021044: [111323002200100,100021044202120,100442004304040,103102420121202,102020120201002,110001000034023,111041104111423,102130000233203,100014030122210,110220001312011], + 1022103011020341: [101210010304011,103120400210000,114144004124200,110011424414202,110234012243001,110000214202000,100040011023003,100123031023104,114223212320410,101004020312432], + 244120003220123: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 220100001004033: [100000200202012,111102110012000,111142010020301,100031201030331,112114324040000,100141011011032,100010021034000,103132004002020,101000344010212,102001204001021], + 1220401442000121: [111120230020122,114301000000002,112124310203104,100113324103000,102001000221124,102023021321020,114040204014042,100040401020413,112414334044310,114001010044120], + 200311104203320: [100223214121011,112024121130304,100202221212300,110004022000404,103020210101200,110010012102144,100413124100101,101020200301303,112000111120040,100402300022230], + 1021042002000303: [102040431121110,114111100021420,112024212301420,102212000200124,100300310140241,100240134323001,102141212000200,102042000222002,102001011100100,114402104142102], + 202304322304203: [101020204002030,114031212300211,102013110201200,103102211440104,102111022001024,103210431422030,111101100021200,114023010024000,102042321440100,114000204101231], + 1022102003220420: [102014000220330,101111120013000,111000042230334,112000041121113,100100014032320,111240114103014,101002011030014,114400234121111,100222000000141,101020314000000], + 100230030301010: [103000001432331,110131110401120,103000004011102,100120041014034,112111110422120,102130300200301,100121100002240,100001004340202,101104220322100,100001001201301], + 110100301222421: [110330400010040,100101231004020,111000100012002,111102010012102,111300030012334,100143040411011,102404404004104,114002202302000,100034000000002,100400100031022], + 1034240421010020: [100001044201401,103022120100401,112411042012210,100110444302011,102142140210001,102000202041211,100211004220330,100000304104221,101002104004003,114124004001310], + 1120032002001300: [101120204002140,100000020421013,101020024002022,110120011002420,100100224230014,112002112002220,110012404411012,100012304300004,102340411101202,101011421140423], + 123000001311020: [114021132202032,112012004004324,103001314001021,114122220031004,103040024041111,101004004213014,111124002211203,114022214031210,114013000041000,100010111040104], + 113310300003030: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 222002101012111: [102121240200000,101212040303123,100001100013110,114024142200303,101204444040122,100011221032200,112401042010001,103223200110112,102031021133300,100011301043341], + 1021243020111223: [103400100131022,101004141000312,100010014313003,114100212210001,100022230100202,110100020004310,114143200211211,112120404000342,110112022120231,110402101344233], + 1022323012220104: [103302111402002,114304104031224,114223100000020,103143000120100,114100212201200,103001010120120,103024011421302,101022240322210,102111001142102,114042000022020], + 220404000010010: [102010200221000,101041201002422,112000002000420,114201224110141,112431004013030,114144100031004,114420022314022,102322001000202,101040010321004,112133112013220], + 130424021410431: [100002014200331,102012004000003,100411000030110,102041201121230,103011014042120,101012204221200,100300114310112,110002222134011,103031301400034,112400322020220], + 1110222031312002: [102131104023111,103000004010400,100302000140001,100000004310002,101000004003224,100012114210011,100000340120221,114133104120204,102001340200322,102021014004211], + 314040100230022: [110220100000102,114042102330002,102102011414242,100041004100221,100014001041000,102310030240210,110000010033022,102210000201040,110110122210000,102200400234000], + 140320003000212: [100141220000211,110042202002303,103102010212440,100021120412010,110002002200300,102002344013100,111200302214000,110443002010003], + 102102130320411: [110043132100300,110132031134031,1321200010022312,114102134002330,140403400240000,100003230110201,103002124003020,114020024120310,424022002302000,433402331200202], + 221000031130012: [111021400042001,110421420000201,110310000104014,111042430000132,103204301200000,103010311410024,101100311144441,114041022300110,102230002023220,120120411222000], + 1002201042000122: [100111211021233,114002002300004,110100201140241,100203210003004,102020111324200,100042204102400,101044400300030,112120124020214,111304442220340,110203002102023], + 1422314320100012: [100222004320102,100110004103122,102200130202201,103020200141000,102414034040100,100000111034100,103132114002002,100412200002013,103320311401000,102133001404002], + 100222000400201: [100422321032021,1320124301012211,1004001130000222,411311131413022,1110002442211200], + 111132320230042: [110202012100020,110013202003320,101031241000010,102120231343224,111342020011220,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331], + 1040204040144003: [103242420100012,110002320424340,103130311444100,101040004010012,100100210000011,102200000200201,110020402004210,102120124004021,114004030023211,111343012200000], + 1134113000102000: [112030022000210,114002102301240,114002000021020,110200440403400,110000000040230,102334004031222,114010214011010,101102104021011,110000011300101,101433111100002], + 203002210300011: [114002200000421,111210044101201,101020321002002,111123014100000,110011020002013,100104004301000,112031121123424,112010000240000,100010001232233,100021024100103], + 1100002021041012: [114101024120020,102004011440212,103140320213200,100000001021013,100011204300012,114003134011032,100101234330123,110024000432310,102012101443110,110032220022103], + 1044311200002340: [101011411020120,101000010201420,1320010021102402,201200032021040,100040011432042,401000020221031,100201001100200,1440003320032101,102104410220023,1440100023013130], + 1100100330040101: [101233330041031,100013104102120,100002300012411,110412221244140,112220020202300,111200012201041,101102041114021,1022201020410210,112003414002222,110200241201421], + 100000002020020: [102101000233100,112100420203042,100311021003200,100004011233001,112001002002210,103024004040130,101412320300200,100121210401010,101104200334011,110004302201340], + 1122001010110201: [100100001041204,100002001024002,114002100040223,102430001400101,114032300044004,103210140100004,114021404100022,111030004402002,103012044010020,424403102314310], + 122230122010403: [102312441104020,100013411224200,110012442200211,103101201241421,110003302000022,100210101003122,102231011100310,111121314402323,100030024302210,101012220320240], + 1011002004440020: [102102000213403,102334000243030,100140000410014,101041344000400,100020420123031,102412020234414,102202424111200,102100040220330,101002424214013,114102002201042], + 203403011233203: [101203102121344,114001024011334,102142002031221,102312144114200,101420211014000,100001214100201,120012102310332,101022220320012,103023404040213,101302224231010], + 102121312430220: [122422422004001,214021333002200], + 1000243001203320: [112121212300101,101401300300011,100032001041230,100141120014242,102204044042410,113000201000000,100142114304120,103031014003010,101001021032110,114400404121002], + 102130000101141: [101230111024130,1112100200412130,1320100232411004,100121120102303,114100222340120,132011000122003,120100010104132,110230010002303,103002020001300,423203002400042], + 1030104001111122: [100301224310100,103002104012101,103220130211414,100012324202240,110003410100312,114000022300301,114000000021100,142100040004101,122040240311100,114302030001000], + 130002130204300: [111102214104403,103043334040203,102120131401230,110200302024000,110021340020022,101010001000320,110210020104031,113130020101411,102041210224224,100130334030100], + 213430212300013: [102104410220023,1024002314000141,1010432014422122,110321200010003,1341420023200031,103220020131102], + 213010300002202: [103111001422000,111244302220204,100042100102211,100300041001121,102110030200120,101114000332010,112112211102024,114001032300011,100142044103021,101100010012423], + 1443140010001120: [101001040340004,112022334022101,101011324004222,100300211000020,101410401010030,103210241422022,103240001403000,102121010212140,110020124200230,100042034202031], + 243044013003000: [103211311412021,102122410310113], + 100002120040020: [100030131042200,101203004042010,114221000210214,101410044041001,111104224102244,102422214021111,103400004000422,110020104210120,103130201421040,110040302100103], + 102313021200401: [101301014221122,114220040000201,102102204022310,114040210022000,100404400013222,112201010203210,100000214310412,103042320101230,100131204234041,100020300102123], + 1002022312000340: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100141021004020,103012101410102,111000000000411], + 1400040021022004: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,112042110220004], + 240020422030110: [102010244010000,114430412322343,100000430014301,114010134021022,100040240003341,114102224104002,114422404110312,112140134003231,110102211300112,102403144000120], + 101010010004203: [110111032140220,100023101042010,102112310210202,102330010243440,111011002200232,114042044100403,114221224002403,100013310123100,100022410101442,100024101022010], + 1202304214213304: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,101042001021012,103230011412301,101100104002023,100400000010020,100124021201021], + 1041001103144004: [103000001004002,103012000142231,102344210242220,110102021011203], + 1000222201130231: [1020102021344321,101030301001232,100104302001300,1001102321230101,1002001200441033,101040020314000,121000110000222,400014401213001,111200102220400,110030012002400], + 1031000201002311: [100023341032000,110121001321020,101000214010022,104230032202131,111112402101001,131120400002024,101001024040001,100220210000034,111203444130002,101202110304201], + 1133310232111130: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,100002100124101,102304100210334,100403210010142,112003100241220,102204304000304], + 1012103333240314: [100011224100020,101124000303020,114042014104222,114444024140421,100043030100020,103010011434004,100122000100030,111112014100400,114020214033220,101201210301002], + 1001241000100430: [102242201000222,103000004011102,101410044020102,101000011032120,114004202210130,100004210412101,102102042002001,102110444130000,101420031011004,102111001341321], + 122200302004111: [112142301101040,101000130320340,101121100332142,112401314040311,100110020031042,102011004013000,111200122222334,100220124221000,102301024113440,111110004402021], + 113042102002001: [110004020020022,100043010120010,100123044300022,102143432000102,102040010200101,102200434012013,112000301122111,100021301302122,114001110033210,102013120200110], + 333000120320001: [101220112203201,100223421002014,100121004100012,112104024020004,134113234320032,102000024012122,114020420021403,101013000301230,111014034121410,102213244002203], + 1434001044302210: [100000200202012,111102110012000,111142010020301,100031201030331,100141011011032,100010021034000,103132004002020,101000344010212,102001204001021,102100431342023], + 1110244302111422: [102334004110232,110002002000100,103013000104404,112200102024122,103000034003300,112300032000100,101000100322140,114010010002314,114124002341030,110302322102041], + 1004421022143112: [103114001441122,114211110023303,111000302230100,103001101422012,100022204104123,1400100000042343,1002411322210040,110000302200313,1242324243022012,102133001120002], + 120002011243400: [100020201020032,103001010101001,111020142144200,102020001021010,111300022201241,110020001210102,110000020043321,101420200304000,100221111000020,114024102212214], + 1021014304221201: [100400002201113,102420424042020,100010001032223,102111024000402,114321002320001,102001011100100,114402104142102,102122412001012,102311120222404,114020404020132], + 104011033121030: [101041210311410,102104101122100,102423114022101,112002010221020,100034141030202,112000011111003,100100011223002,100110440112020,114002002244000,103004044040214], + 132203230000022: [112100124023402,101020044011003,100002414210010,100130244302034,100122040012210,102003100222211,103013200120113,101040000300110,110042141214302,103220041400020], + 322102004233340: [114021000012310,110432300102000,100011004102400,110040344210011,103200004030010,100003200020112,100400414300130,100400231000200,110332030011233,114000210010231], + 1000300404124000: [101012104001020,101210120302002,100140004230101,102000304001202,100010300121000,101233100300011,100001314100400,112101201102130,112342222022401,100140001004340], + 1102410232021002: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 1102432013042000: [102101324130010,100102004100201,101400300300111,102114020210202,101200200302210,102434211400021,100001104214100,100003000412141,102000032043210,102101030214402], + 1022400332232003: [103000104004220,101002244004011,101442024042013,111020114400020,101010340331320,103031100142002,102231211302002,110000040420100,100241131003241,100201401010000], + 1003031422420202: [101012131000024,102110141410402,101044001032114,114221104114000,100001111032112,100400212200322,101140320330114,112400004020421,103221021412001], + 1002012002120220: [110010030440201,100004204302330,110020004414024,101400134043222,114340312301134,114310242320310,101100001102230,102110021401100,103102044031002,112404120200000], + 210000000011000: [100021324100000,102012220241003,101430211012120,100204021000012,103302140112020,100111044300101,114100220002002,102120401022130,101001020331204,112040200240030], + 132110000003001: [110034012104202,103042420143020,102300444113103,102304314110202,110210400002012,113032012204012,100204311000400,102011001002000,102012000241430,112002111121013], + 102000032403004: [112201102030120,114000010040241,100013104203010,103002014001010,100120434100042,114110104000022,100200404221142,102002304011000,103341121403022,100221000410001], + 100200001021000: [300302423311042,103213202221202,1021020004300440,1200300001400200], + 214001034124033: [114040102210432,100031120101224,114122220031004,112040200233002,102113111343110,103234100101221,100010111040104,103103311424020,1132202011200221,101030010320024], + 1100220411003121: [100113220020101,114031000022030,102014002000401,103103241421322,100300211000020,102104304023201,103310300140324,100002224244002,114310200002400,103211220100010], + 101410100240021: [101110014000021,114122202343044,100201040431010,100131144000002,100000100421200,103021000000411,112413000204310,100010131211222,114002232304142,110430031313103], + 1001020002040433: [102002014000220,102410004024030,114402320000202,112000002000420,102012401001012,112431004013030,114112000004001,114003002301122,100110210033043,100100000022002], + 1413030220103414: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,103022110142241,103012000100422,102023211411003], + 1122202000100101: [103100024002220,103303000112122,114003100020203,100112101024230,102231301122300,100032021000400,102010124001401,103301124014001,102001004000100,103030111240321], + 1041002302320124: [110320202023400,111431110000042,100302141003012,102004441124110,103303201400021,114101420030202,114421242204443,100000301221024,101224322120022,110104422010121], + 1141231120010103: [111314044130000,100410100030211,102000001410411,102320241001011,114102210002021,102013300200042,101001030303020,102004030201320,100020310101012,102113301342231], + 120220034001020: [1334101401030120,300302423311042,102102001411020,1021020004300440,410430103222334], + 1000002032002021: [100004221034100,100200200412034,101012114000304,102232024002401,101102120301114,102202141120400,103400014000012,101000004001310,110120224221100,110000041322002], + 1030240011000003: [100310120141002,102000402041014,103022021431010,100010004313001,102041410242244,102101220214011,100121031014040,100022010411004,114000424102300,103112011421222], + 122122000040340: [103020041420212,110100120400020,114030000030012,103000011403101,100000010202201,100111404302321,103243014020301,100012024210210,102001312042230,112020021120403], + 103202103012211: [100024000110221,101301014221122,114110200212210,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,100404400013222,111001344400222], + 1100110000012030: [102001444000222,110020004414024,101400134043222,100010400013202,114340312301134,100031220121003,114310242320310,102110021401100,100113201011032,102230000204000], + 1400404312200102: [101100000330120,101214440300301,100000400000241,111102214104403,100132004231230,100033230420102,100000030000001,100222024100230,101412001100222,112000042000001], + 103000100000433: [110102042010220,101020124000413,111210000001101,114013400011030,102202000201220,101020111030400,103004104010210,101220024041000,102010300201414,100202200003011], + 122231000001230: [112124004022322,111300210014020,114011114123044,102103201320411,100100031043410,103042141430211,114403210004014,101033214211000,114001100024243,102101404000000], + 101100101300100: [100024000110221,101301014221122,114220040000201,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,100404400013222,111001344400222], + 1140110100121400: [114001232300102,100004004100100,102440020200100,100020211044012,102300411004200,101042044001021,100002001022030,100120101042203,101004201003132,114422204140040], + 220000401000020: [101301014221122,114220040000201,102102204022310,111040032200021,114040210022000,100404400013222,112201010203210,100000214310412,100131204234041,103042320101230], + 1004400003101421: [102340221000300,101000130320340,112401314040311,100110020031042,102011004013000,110422102110221,100220124221000,100402002201002,111110004402021,101011014002032], + 131301044100100: [102000324040000,110222200103041,112411400202001,110000110022002,140143400110002,102042211100202,102010000200240,114000002302204,112431244044400,100400312201022], + 200101204130021: [101020204002030,103100030100010,114034220041220,114000204101231,100042000102010,102013000202010,114040202214201,100200001210240,103200234030122,101040224003400], + 302002040322130: [102230121123030,103000000104034,100122204301140,102033200222311,111100004100400,102014000220344,112310032020303,100020014100010,102021224002101,114230304101022], + 122411122042220: [100024000110221,101301014221122,114110200212210,102102204022310,110010220103020,114040210022000,100404400013222,111001344400222,110012130410040,100104101200201], + 1040321410140101: [101100000330120,100000400000241,100200400430003,110212022133311,101412001100222,101041210311410,110022004211030,101210021021243,100140024230240,112230240412241], + 1020240111102100: [101021134011012,104120130021200,112421004012141,102011104010201,111100220022101,100021104201130,110030410040101,101300401002320,112001321113132,101110434020010], + 301012002042004: [112002002003003,100012110101000,101202101000104,102311330240430,101023101000220,100002104103221,102231104040121,111331324131300,102303101002031,100010024302421], + 1031130111011101: [111120230020122,103100221440010,100021101000000,114301000000002,112124310203104,100113324103000,102001000221124,114123420002142,102023021321020,100040401020413], + 121111101011211: [102011214000000,102110111410144,101001100300012,101041104222000,103002201220000,112000202310100,110001102102020,101102101100112,101012031033100,112023100230412], + 220120010003121: [101003201002421,102034004000133,114440012312003,100102240002022,102112411140024,102113000210043,102114101120004,100421111011000,101010011034220,111232024102030], + 1200010024231441: [102000000200302,110001222134013,102021120200111,100303404100220,110101431000132,114310032322001,103240101202023,101004044212020,112000020222043,100400200010131], + 1040331000001422: [100141220000211,110042202002303,103102010212440,100021120412010,102002344013100,110002002200300,111200302214000], + 204002420040131: [103102300102243,102113020210120,102020000204032,101012310342300,111202004100121,102012014000404,114020404101101,102321320224101,114031000012100,100020004310022], + 104332041102000: [102120221022200,100003121032014,114000030020101,100030024102010,112044414003133,100120120112100], + 1000212001043011: [101011004212201,101010304000003,110032022002020,100214230430124,103031234000122,100400110020244,102044021101411,103230011412301,101100104002023,101042001021012], + 1400303014041020: [100231004220242,100021210200200,100400102040013,120020430310100,143112400002321,112301043200001,103040110122010,112202300110022,100002040002401], + 1140100000020024: [110040031224032,100024321230000,300401400322212,101200000042003,114122324002022,110000202000001,110244412120001,111300322200143,100110000002002,102202321104040], + 102100111103220: [110300202021130,101300231002120,103400104001022,100240020430431,114440420003022,110021010021210,100000024302220,100222021003140,100102404232033,100000000402000], + 1020212222412302: [101001040340004,101013004002011,101300011002044,112022334022101,101011324004222,101410401010030,103210241422022,114411312312124,103240001403000,102202204040220], + 1114042022220003: [102112320210140,101300300230001,112401120200210,102410220203104,112032242002404,101000001002320,100023404104311,102004410222200,101310201000040,140020203000100], + 1000203010041232: [131402001003121,100440420024144,114420000001024,102030414000201,100304111000014,103300031403210,100022131043110,102301201200000,102010021413001,102040300202332], + 1101401000001241: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 222103120002310: [100020121020300,103432001210300,112440134041000,100210240013000,110401214242400,101044214042221,100033201031241,110010114210202,102141000313022,110110114221031], + 202222041031201: [110400110003110,112314041101220,110233241214121,103221320102204,110123041320021,102103124031442,111001320042332,100101204231000,112111004021041,103212201410133], + 103210001132431: [112020042344001,111101122102222,100241000430420,103000114001000,102242024030234,100003344214000,114400300000221,103104024000023,100002104201130,102322420210320], + 204300312102103: [102101210213220,100030100410121,1001013211040100,102220300000443,110210103122411,1300102203020001,1132012124324031], + 100121100124302: [111333104124202,101000304014100,100040011023101,101123232010002,114421242204443,110100222001100,101004120224442,103102000121300,110010331230210,102030020224102], + 1104301232010301: [100000204102030,110210131301120,114102042311423,114100004002011,110423200004021,111200102222210,111140002113000,110201221301200,112001202341100,102240230230013], + 1143212012100021: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,102321410240300,100021014100124,100130244302034,100122040012210,100014010104404], + 1100100144014024: [101301014221122,110422102110221,114220040000201,102102204022310,111040032200021,103030040121410,114040210022000,100404400013222,112010420241002,102241044033231], + 1200011200020320: [114020000030002,100113220020101,114031000022030,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 224111422001240: [103110210340021,1130420021212000,100000011034320], + 100142000000212: [103004201421221,1331041104430100,100104114230000,110102220031010,100202004104140,103020441400230,110141440120212,102030300140002,1032220014300112,103014011241012], + 1223023124102230: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100404410022320,103012101410102,111000000000411], + 1140214200020222: [110400112011100,103210220100310,110441010002400,102441030200210,103110314000100,100032134341034,114203104001000,100441001010204,101202240300141,114421000000000], + 321020201110003: [103332104032020], + 110031222100203: [100221004324212,110410331241133,103144224004012,101120011040200,103012400100023,100241044122010,101312004220321,100121014030221,100002011024214,114102034002301], + 241120202010001: [114210014110000,111101122102222,110034004420011,103000114001000,100003344214000,111022214113044,110043014410220,102322420210320,114124040000002,100112001021112], + 1441114102010010: [110441234224400,110030002000422,103100014031411,110000300424304,100032121024110,110013122130200,114020204102020,102402330230011,103121221400012,102022400211311], + 1101220210010332: [110202012100020,102303010241010,102120231343224,111342020011220,100314114322101,102230130203001,103100034001310,102021401324232,111222102243400,101004410311232], + 204031102120433: [100012110101000,102311330240430,101023101000220,100002104103221,102231104040121,100010024302421,100200204102022,101022400302010,100021210420202,112021004000202], + 1032002011243122: [111240220002100,110030344201413,101001014001021,110100001014311,102304244110431,100103224301304,114000100020200,102100322001021,102102100231000,102122000221020], + 140401111001310: [100021400101221,102241341113010,102300020241001,114100124100413,104130301242304,101001114012114,101141400302200,100002044101122,103342424024214,100100021040420], + 120002022131020: [103111001422000,101400004022100,100300041001121,101240004011021,101114000332010,112112211102024,114031212300211,102013110201200,102111022001024,103210431422030], + 201202212144011: [100012330001024,100140330020001,100020134300020,103102000100210,111224340011202,101140004203010,101220004013020,101400424021221,100101030022000,100001020120320], + 1412342302123042: [100002001013012,100000331201012,111210214440200,114120220214130], + 1421442321000022: [114400322311044,100101220101011,110000141123103,111121000014100,102420430204010,114204102320001,100102204302134,110012042101020,100021004103201,110200210404004], + 1040030400102003: [114201204111222,102004204041000,100104341010424,100004004102410,102301101004100,110432112111103,101104001101000,101000100342143,101012111001103,102411021400120], + 1122020030100101: [110110212010011,100000010101402,111144004103013,102412104022200,101441104023001,102123324004420,112202022022311,103020031400120,102000114010112,100110024300032], + 1100001224020200: [102040431121110,100400002201113,114111100021420,112024212301420,100300310140241,100240134323001,102111024000402,114321002320001,102042000222002,102001011100100], + 100124320044242: [114012304010103,101232404040100,100131204300010,103320304021024,102102020203131,102230214040023,114402004140023,100000301041003,100043204100144,101000304012013], + 101122031200001: [102300100220200,100002031032111,101012034000001,110003214210201,111222110012011,101000040310042,100000101020412,101204001012001,100111240012114,100410021011321], + 121240341110032: [112310431102204,112004300243012,100000320002140,110102301121440,110003402102211,102200121101000,102103010200134,110012210443400,112002212312240,100300004320113], + 110342020102200: [103134014000340,104103100010141,111101222240010,100040210411102,112014022314210,100000014100024,102010000221204,100110004102034,102040140220220,114010400014304], + 1001000133401201: [100012340410210,103420430121200,114020104101011,100002121032011,114210124000000,102144022000341,110102322010003,100022334312010,100401020020010,111002040001042], + 1030021130300002: [114430202311020,100020101024200,110431341000014,100342121000040,101003104003010,100011041020300,102140004000231,114003114122103,100400200020134,110303202102200], + 104022200021222: [114220040000201,100404400013222,110012130410040,100104101200201,111040100020010,112201010203210,103042320101230,100120430411222,110014314410140,103004004001222], + 1000204133231010: [114002044012422,100231201410110,112213013124000,1121420100113022,1001421031214242,100113202240102], + 1011101201001331: [110130314400100,100032431030100,112102024020402,114001030023421,102223300202003,114400202314210,102022004010240,102102010214442,103022110142241,103012000100422], + 1403120020132131: [100024000110221,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,100141021004020,103012101410102,111000000000411], + 1411000130310001: [102102031320011,102102031403230,100024004210111,100041140201301,102002100222202,102140021410400,102001041100103,100000120202410,102300004110122,102202334040220], + 122010104120003: [111102110012000,100000144104100,101000344010212,101033141030001,100104400021023,102111210230204,114003104032034,102200421003014,103214430100103,100131400100220], + 213211002241321: [101400001013200,110010104412000,102204424030220,112401002021204,100400300012210,101020304004102,100402032201300,100200201001120,100114004032011,102204004011102], + 1243021300001101: [100012400101400,111242212222022,101401140300101,101242000300000,100121211012110,102221220204211,100140304103400,100020210021010,100100120020120,100040004102010], + 104201402121120: [114003010024040,123102202010320,101020211140102,102104120200134,100120230012241,104210140212241,121133013031103,101112240323103,110043200023212,103441014002310], + 1100020000200200: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1000003000131100: [112410104010101], + 122200401300301: [102320204112110,102200311300000,114402200140311,111003002230111,114103020000000,111202220001030,120120044004103,110010201320402,103040221410110,111011020042020], + 1022204110102000: [100202440410010,102002041421011,200001320002101,120200122422404,102143140212042,100000021202031,320440130020000,140441120210201], + 222000030422000: [114102300004024,112102201102030,103222244003021,114021114023402,100340114211043,100210004343102,100033001220020,114233002340141,100001311234020,101114000330410], + 201001011100313: [101000224223002,112010012000201,112240000413000,101040201112304,100100301021212,111011024411424,102130000312131,100000101223200,101000231002312,102202210200000], + 1000101030142100: [110201021201020,110134000003002,111121302103104,101111120330403,102003030241110,100101321220213,100103024030023,100120034230102,222400011010100,100111201222040], + 1210430301324011: [102203004042010,114203042330220,100020001041410,114004014011110,102410004024030,103102211440104,111101100021200,100002020101023,111230040010002,114112000004001], + 202110204211313: [112020000230440,110002222201000,100112000402300,110041014413112,110004002133140,110122000020202,110421000100303,102040244041000,102100211143330,110421002110030], + 1100042002230001: [110111111010000,112230122030224,114120014004003,100010020003310,101042204010110,100002244111003,110131311200401,110441222110003,112000021112000,100103124033001], + 1141100033210301: [112224111100141,100040134340044,112004310224204,103043334040203,110422201312402,102120131401230,110302011332024,110200302024000,110210020104031,102041210224224], + 1111002300321004: [102231130213210,100043324210140,114113104123200,100023024211011,100003201021001,100122020011232,110002021121023,111102042213043,102300040221403,102201100200430], + 1003001021102020: [100000100100200,102010020203010,102200010200000,102001241410312,100000121042240,114444012310100,102330021000131,112041031114021,110400240002411,114432422322332], + 101001011200021: [100422000031421,102220021120430,100102000010243,112410034040040,111302304130401,100024334203210,103031410122401,100040021031201,103000300120001,110100000100314], + 1042100322112000: [101402011014002,100002200412020,100102000423142,114410012310230,114000332303001,100022224312021,102122421340210,114044240023401,102010100203212,103113030213000], + 1403323211112341: [110023401320200,102301224110000,110000312001020,102133211401043,102010214000003,114032204104044,103002010100104,102124011340031,102410110232000,100302000441000], + 1041313023011010: [103222114034232,103221204032410,100004004102410,101104001101000,103210120100203,101124011100242,103142210104020,114400240003003,102324221001114,112203001103411], + 1010021040010013: [112413224040101,100220100110400,101200031020230,102403004042342,101024001034211,111122004101222,114001012300002,102121100232012,114000222213021,114102330210021], + 132222044422000: [111121210031101,100013100100014,100000001020000,102000404002002,100120234300003,102100014000422,114010422330121,100001031220012,110020402100200,103044001403210], + 101210040201230: [112212320200423,100044011022224,102022031321021,102301011004011,102200111110200,102130001400000,102012100200021,112224304041202,102034010220333,111103044400100], + 140000140230042: [110040022130003,100030430422242,101120014204000,100100014230110,111002132202012,110201004241002,101000131142230,112001204023241,100104044230000,114022024012213], + 1010100002003421: [114101004121020,100013014102414,100034134300203,114202000000000,102323404112032,114312012320120,100000041020230,102041021121210,100031000101440,102010031444104], + 1000001204221103: [110204400000120,102001101130120,1000310103100002,103122114004113,102242301122200,101240010310200,110040230120420,100200020431202,101344140314114,114001002300400], + 1000030000400222: [111101144102000,101010020320000,102300310242221,102024101321401,100402132200000,114020000020300,111100300024000,103000001401041,100000134100202,100000321040000], + 132314401200020: [102101021412120,110024020421011,100042014310200,100003014314102,100040224102124,102100011000033,100011214102010,102112241342203,100002004200212,110010332201012], + 120102030344140: [114402404141241,100200400430003,114420102323300,110212022133311,101041210311410,110022004211030,110403010000304,101210021021243,100140024230240,112230240412241], + 110203113111041: [111144042240304,110301011234204,114211102321011,101001004012413,102000200201422,1001103242021023,102412004022002,103220124034124,111123114101021,100032204200023], + 1021000013324142: [110121100004131,102320000221020,110142020400012,114230344103210,103114211441300,103123200222442,101303414220001,100131000400012,103020200122310,100040004202103], + 120040000222023: [100210001210000,110202011000012,100011000420320,103102124000402,114232114004301,101140341100310,101010404221002,102221044031031,110010104201130,112422000202033], + 1001310121010311: [100200400430003,114420102323300,110112030401012,111112204404021,110404122110112,110403010000304,114100040214000,101210021021243,102412044040011,101010200320244], + 304124203440023: [100024000110221,102102204022310,114130014001202,110010220103020,111004100022110,114040210022000,111001344400222,101021204010011,103012101410102,111000000000411], + 100200232002010: [100034304101213,114002014100310,112313301100030,102101031412121,100020020121132,102102010220401,100001020100030,100021120201020,111000024404021,101202014010400], + }, +) diff --git a/.vim/bundle/black/profiling/mix_small.py b/.vim/bundle/black/profiling/mix_small.py new file mode 100644 index 0000000..6937df5 --- /dev/null +++ b/.vim/bundle/black/profiling/mix_small.py @@ -0,0 +1,102 @@ +config = some.Structure( + globalMap = { + 103310322020340: [100000031211103,101042000320420,100100001202021,112320301100420,110101024402203,112001202000203,112101112010031,102130400200010,100401014300441,103000401422033], + 110040120003212: [114413100031332,102101001412002,100210000032130,214000110100040,103031420121210,112114222301010,110133330100020,100001001203011,102210220202130,102200120234012], + 244402003102200: [110212012114431,100001140020000,100012101223021,110031301200114,114002020044120,100021004302202,102202200240222,114102010220042,102021301441201,104103102103201], + 122013242003223: [100014100100001,102100004130301,111120004100414,101034024000101,100021424301033,102003004003400,103340410140122,100102114100420,111012202111021,100103144302200], + 1120010021223330: [110332202020000,104120130021200,112421004012141,111100220022101,100021104201130,102224410201003,110030021010001,101300401002320,112001321113132,101110434020010], + 214100003030021: [102122000214201,100242141004122,102024240221040,110320011200230,100011114300334,102303004110022,100110201042101,110134201140010,112101044000202,100040024340013], + 1000220132200020: [102231130213210,103214010102022,102000402041014,100043324210140,100023024211011,102404021403141,100010004313001,100003201021001,100122020011232,100121031014040], + 1200041022422001: [100021300101110,103010301402112,100011401031000,100020034100101,100122214300222,103134021420204,102042210220100,100103200021130,103204214043011,103020320102002], + 1000232101122040: [110011414240022,102202310203222,100042001020203,102002320220202,100010044300003,114130210231020,103301410110110,112114324040000,102124031023100,100204104320231], + 110002000000001: [110010000111020,102011041320000,114240012324120,100022010022031,102014140200013,101240110302200,100031204311023,101232001021020,100012121040101,111243002222100], + 200211022142211: [102231130213210,103214010102022,100043324210140,102324014112020,102022004012201,100023024211011,111130210020000,102404021403141,100003201021001,100122020011232], + 114121130201204: [100040031020241,101100104000222,102324141000002,101010234004042,102041224010012,100411400030100,100002000102100,114340102322021,112033124022002,102120221120200], + 104101002123040: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,103022000123142], + 241101103112120: [110333404433042,112240002043300,110021100132240,103104221443021,101100304000101,100202210410011,114402212310021,102411011111011,103020141414101,100113001040420], + 1004020030320422: [100022214203010,110310011234031,110123111300000,100020031041304,102120004000101,102020002000420,110100302010110,100422020030044,101220100303222,100002220411002], + 1041010100001110: [111124004101012,114103220220104,102120004001310,102430121110340,101021204000200,112141104020201,101200111020111,110001200422320,103210114021430,114223242332100], + 121103011132000: [110021104200001,110441140102024,111140124100100,110310020040401,100002024303323,110030002130201,102103320232241,110302000400221,110111001302000,110210304220000], + 1042022101004111: [110021104200001,111140124100100,110031301200114,102103320232241,110302000400221,110111001302000,110210304220000,102033124000111,111000212204213,110010324410130], + 102220010222003: [114003212210013,110302012103114,103023101400002,110010120440200,110024140022040,100002100100320,110100034200300,100401201010220,103200024021204,102100204000234], + 1442130103121040: [114413100031332,112121020204344,102211030203010,100210000032130,214000110100040,103031420121210,112114222301010,100001001203011,114214404142034,102210220202130], + 110204013021024: [110301402000211,103030201402004,110420104221220,103200004030020,100320014310021,102000110221110,110240214432004,102122141142000,103041204010000,114432234113040], + 100001440133234: [102111040210242,114110000002430,102010011412143,100424220032043,114013422300032,102021004001004,100131414303044,100201010110320,100000221030033,110101101120302], + 114002033000020: [100001121002141,102000040201003,101132131221321,100004440004031,102002011033030,110310300003402,110220022132003,101001000302103,110044112100220,100010120031210], + 112123022000131: [100304201000221,100112021020320,103010001422020,102300124023122,114221004100020,100002100124101,102304100210334,100403210010142,112003100241220,102204304000304], + 1143001230040001: [101033124003122,100313144100202,103201004024412,114014222302011,103011020110211,110203420111140,111003412201430,101411214000203,110222422042203], + 1002403200000231: [100122004300410,102140014001101,102000104012232,112400202020003,102000224000011,114122134140002,102101010202004,114400202310210,100042030201341,112233332034000], + 1003123041101031: [110043132100300,102220120203200,100002004201122,110132031134031,1320303202002000,1321200010022312,110130330012140,114102134002330,140403400240000,100003230110201], + 242220101103400: [111130112100210,102202200240222,110131044200121,100100004102234,110223332120231,100001024301322,114013044102010,114220114140122,101023021034304,110200210110130], + 121030040400021: [110011011212100,101134030011000,103220211421421,110123230124040,131000001020102,112200412033030,110420001000202,100102110402220,110412310030001,114012022302022], + 100104011300401: [110320414420310,110100100101041,100420124100211,103010211222002,101040120320230,110013021300010,101043234000412,101220000040002,100422001002123,114010010010002], + 1004003211220032: [102400100230000,101100300302102,114120420223002,100002210201212,102302020212101,112410424012010,100030004104210,103030201434002,110232110004010,103021201430000], + 223011102020040: [110012420131001,100132040031022,100020310000200,100220004030002,110020002003334,110014000442004,101441204020001,102014201411102,103231320100042,104121201242032], + 100200110422111: [103100221440010,114003344011001,100021101000000,102140000212141,101014201030204,101203001010111,102424114020143,100031201030102,101041001003300,114012444020220], + 134300111030221: [112100124023402,101020044011003,100002414210010,102010042000041,102242204040102,100021014100124,100130244302034,100122040012210,100014010104404,101020104000001], + 114001000330100: [401142101000022,400114001102410,102100000012031,431232000323104,1012100023110102,232023302143031,120200122422404,1040100003200241,111414004440203,1020220210340010], + 211222012120321: [112000112000031,100121214300000,102123214020000,102022124012030,114002320022312], + 1122000200402140: [102401141113031,103042420143020,102304314110202,110210400002012,113032012204012,112310002020302,100204311000400,100403012200201,112002111121013,114211100001224], + 332000024200013: [102120010220042,110103312142034,102210210312302,101120100320100,114140014100000,102110004002301,100130020001030,112022100213011,100101231202322,111210020001013], + 120041442412123: [102133011413110,111001200041102,101223020300040,102034324000220,100210000032400,101230020303000,111340130010314,110200422121211,110214220002020,112220414010040], + 1011011320300100: [100102024301030,100111134302041,100112234000041,110004244214343,101002101020003,102214021120301,114221224100022,101330210310300,112003021111000,102012141134211], + 220020021000101: [100301001000202,104101112102403,100023121223031,114201432320014,120000002023011,102133120200123,101014020301201,102000031130401,101010111002141,114123124143310], + 1024011342000021: [102001001130100,111204203012002,124020002020003,122222120003214,133332002141010,144000013213001,124010030100142,112310202021010,110014020020011,100140044020011], + 1131011002310011: [102230040200031,110122001010214,114043140010022,102101204000010,110022300420031,100100401040001,114230230000123,100222024320003,103323001400013,114013012300240], + 1142024120224002: [102203344011410,100021324100000,102103430210003,100012014300120,102414014022212,102012220241003,101004411032102,101430211012120,100204021000012,103242044020102], + 1100004410231120: [110013202003320,101031241000010,102120231343224,110030332100203,100314114322101,114404232310120,103100034001310,114002202210331,100031301020100,110111032140220], + 1440220030001122: [114010330030011,103021220104200,101010020320000,112000210211020,100010324210003,101000000343443,110002400011111,100402132200000,111100300024000,103144040104204], + 121414301110004: [110144240011020,110413401240204,112000244001222,114441114123013,103220211421421,114000012334102,101000014012442,100312401002102,111022210021013,103110001420121], + 130004004220120: [111240340004003,102021024000010,111101222244030,112011012004300,102300010242330,102000401120420,102004012043122,114011102210402,100120001014040,114300100000041], + 1013303000401020: [101000024004442,100002100000100,110130030020000], + 220041302111231: [100002014200331,100034244210020,102012004000003,100411000030110,102041201121230,103011014042120,100000030120242,102110400210023,101012204221200,111212422222300], + 1000031031200013: [101302134233230,100000130010033,101030404212000,114102224000201,100022021041122,100020001042002,100013011020311,100120041020012,102012204000242,114143024003322], + 1000303301100221: [111333104124202,101000304014100,100040011023101,110301030010140,104100002101431,101123232010002,114421242204443,110100222001100,103102000121300,110010331230210], + 1410211342331412: [111002100000102,114021010040140,114222302321101,102101024002121,110014024202014,110220130100010,100020011030330,102404221402210,110203022032320,101222014230110], + 1411020122202044: [100141401021003,102010000231120,101000400320211,101001010300214,103010020142023,110132002212113,110010100040100,102101002002002,111020302232033,110224030114311], + 101010042001102: [101221020040220,100103104302044,101041030320401,102141212000200,101203121020430,102020004000014,100000211023014,114144014122041,100201111002224,101410304041000], + 204204011102020: [100212030414010,101400004022210,102031021441200,101200020303202,102301324112020,111340300010010,102013224003020,103013020123142,102240344041020,102140202001100], + 240000420312002: [110002004410202,102103114000024,102240221000001,112041002002124,114000024101102,140343100002103,400200234320200,100020124204330,100001424102041,100100021040230], + 1030000001422430: [102343230224321,103211200100400,102112231020231,100022004300020,102320000240102,100042144200000,102030304001101,100020420121003,103020004011414,100001104301200], + 1104234221030010: [110000322130121,101023001002020,111300222202234,100200001210021,103204230111030,104130020011020,101114422122000,102001314013400,114110414140400,111201100011141], + 121341130003000: [111102004100101,102021100220101,114000040010421,112042110220004,100000214240410,100433201004014,102301102004413,102003000220111,102010100204023,102414040230400], + 100101220022002: [100010024102110,101041200320012,114303400002201,110204211000331,112121014003422,114430102311021,100240444100022,103004411424400,111014002140322], + 1023303420422001: [100043104240004,110002034200042,100001240100033,114100304002030,102100001340122,112030010234104,103414101212410,100123021223100,112302011102312,101020030343002], + 101114102124321: [110403244220202,103113014002100,110120400402324,100402340010310,112010020211000,100102200000211,103030201240100,102300210210222,114100332340213,111031030024010], + 1422302020100030: [114020000030002,114031000022030,100201211003004,102014002000401,103103241421322,114121012340044,102000400240203,102104304023201,103310300140324,100002224244002], + 1121202400231120: [101211201202134,103120104030100,100004000100101,102020030220200,110031404423144,110003434410403,111110000014401,100000204312321,101004000304012,110300121220201], + 1042001221000013: [114032104100141,101213114040141,102210101002412,111140100011101,110122421241103,112001144002010,101013030304101,100012011022000,102000004000013,102021241324040], + 1102433033042110: [110104112010103,111102004100101,100122004300410,102202414041044,102140014001101,102000104012232,102021100220101,114443330001442,100230120001003,114000040010421], + 100103201011144: [110102401201204,102400100230000,100212030414010,101200020303202,114120420223002,102013224003020,100002210201212,103013020123142,102302020212101,114303340000001], + 240343043023011: [110120144200000,114022412330004,101200221022044,110241112020204,100002004104004,102100224000210,102310140240012,100014204201000,102103321411004,100400001001300], + 1020301032424304: [101302134233230,100000130010033,101030404212000,114102224000201,100431000032001,100020001042002,100013011020311,102103331400000,100120041020012,100020001041231], + 114200022220040: [100014100100001,102100004130301,111120004100414,101034024000101,101243024011000,103340410140122,100010021221221,111012202111021,100103144302200,101414100300221], + 142041243300010: [102102002002242,101130104022002,101230331020012,100004244210201,102420124024204,122312222240401,102041014011340,110200130004300,100140101012000,101400000302141], + 1002203102111022: [100434000032200,110004020020022,114032412303041,112000301122111,102020130212402,100010001020000,200000020021022,114321212322303,112302112002211,114202002333330], + 1110102121041413: [101012310301211,103112200123144,114242304004011,102302200241241,110001420021023,110201040003402,112301421130130,110020012100302,114412202320010,110021030030202], + 114020200220012: [102010114022011,103340041403223,114002200000421,101020321002002,114302210010001,114030004104220,100104004301000,102443211401140,102301041000014,100001111201214], + 202011212123200: [102203301123001,103210400110122,101112020300011,114104302341000,100400201010000,102244400201444,101010001000121,102304000220032,102002131132000,100000031024222], + 201032103003132: [110212041114210,113210300100002,112404024011000,102131034000220,111212124130140,101002014013010,103402020120010,112110100230023,112003044002004,103020200102200], + 120222032001012: [110121100004131,111400214442024,111122200021102,101041100300001,102140011440001,101011220342010,110200004221020,103114211441300,110000222010004,100114000101041], + 1100013040001020: [100003031030034,101001044211204,102100010233022,102120400212001,114313022302101,103001324000110,100002014200021,102300401001010,103212320212011,111120034400000], + 1001031021300022: [102000020220000,101020104000040,114412142320040,100003044100101,114012402332300,102220211122102,101010110302010,100032121020101,100013224313301,100012244240030], + 124000010122242: [100032320000112,103140011442322,100312120141341,111144020011120,112142204020032,110044031204131,114012010020012,100001420412010,100102110020102,102002204001140], + 1121211020204132: [110020301320101,102014001130210,110401041140300,110002302201420,102202001120002,110200010003201,102421004041011,102240040202421,101001110300111,100130004300103], + 121320202004301: [111014240041102,101100004200110,112021221130424,112200041103002,110400040402041,112001011112202,100112004304314,100232041001122,100223030001010,100104231000300], + 1024242230240244: [110322104424202,101202421002031,102102220312102,103004204021310,112220102043102,110012310020200,102030130241300,103030120100220,100232224340041,112400002011010], + 1002100010130110: [101400001011042,100002011020211,100100110010010,111110002213142,100002131030310,111102214100400,103220201402330,102321000221140,103113124030200,102110300311400], + 200010402222410: [101210320301302,102100221340112,100114104101001,114002244103320,101023221000031,101400014040400,102012034000402,114221004002212,102100122002001,101000011021414], + 112300020202111: [103141411420221,122102400312000,110002100110002,1340024302404122,100002001043010,113110330121030,410020013004430,1002300040412102,1210020204140003,123211320000102], + 100102203210034: [102023021100022,111200302222011,112040241120204,111000022200000,100010011232324,110220030000133,110000330430311,101211221014003,103111230120100,102221220200021], + 1021001032000012: [102020010203200,100011144312020,102011204001010,102001410221023,110130201302200,103041021430301,101100440320434,114000402211404,101000100302003,110000030430422], + 1031102424140120: [100011010414200,111121102240240,102002121101110,102403100202003,110000100041101,100400000010033,100101211001320,101141020321000,103224101400400,102000002043020], + 102001021434201: [110131122012210,114010200040441,110032014420232,100000344100100,111304022202211,102302011002003,102011021121200,100012441030002,110222042022111,103131004002200], + 220100132400104: [1010400230221020,111320012221132,102302144110440,114140004123122,102143202000400,111020002202333,101321311004010,102110241342210,114122302311011,100002320411400], + 1110121023020002: [100022041001002,111240340004003,111101222244030,114032424122040,112011012004300,101021401003220,100301020420101,102002202000000,100022024100041,102010410213111], + 1042030001044121: [101230040301234,110033032100000,102303014024221,100100224304110,100400432200321,100020200012311,114140144122230,101400201102014,100000020004004,101040040303102], + 1100100224104011: [111130112100210,102202200240222,110131044200121,100100004102234,101023014004000,110223332120231,100001024301322,114013044102010,114220114140122,110200210110130], + 212002042300000: [100030220100110,110011202100142,112400102013231,114012002212100,100002114314022,114203110001031,112030122000211,111004012200210,100413131013301,110001102103432], + 221001240043040: [100420021010013,112101302302202,102212011120200,102344111104233,100432104320110,114021014020000,102121321340000,114200214002024,100111221011100,100023104101340], + 1040021200420124: [100042111220111,112220100202000,100042041220010,100403211010100,103240301400123,114102210214041,100021300103041,101010204000242,111334004121414,114101000213410], + }, +) diff --git a/.vim/bundle/black/pyproject.toml b/.vim/bundle/black/pyproject.toml new file mode 100644 index 0000000..73e1960 --- /dev/null +++ b/.vim/bundle/black/pyproject.toml @@ -0,0 +1,35 @@ +# Example configuration for Black. + +# NOTE: you have to use single-quoted strings in TOML for regular expressions. +# It's the equivalent of r-strings in Python. Multiline strings are treated as +# verbose regular expressions by Black. Use [ ] to denote a significant space +# character. + +[tool.black] +line-length = 88 +target-version = ['py36', 'py37', 'py38'] +include = '\.pyi?$' +extend-exclude = ''' +/( + # The following are specific to Black, you probably don't want those. + | blib2to3 + | tests/data + | profiling +)/ +''' + + +# Build system information below. +# NOTE: You don't need this in your own Black configuration. + +[build-system] +requires = ["setuptools>=45.0", "setuptools_scm[toml]>=6.3.1", "wheel"] +build-backend = "setuptools.build_meta" + +[tool.pytest.ini_options] +# Option below requires `tests/optional.py` +optional-tests = [ + "no_python2: run when `python2` extra NOT installed", + "no_blackd: run when `d` extra NOT installed", + "no_jupyter: run when `jupyter` extra NOT installed", +] diff --git a/.vim/bundle/black/scripts/__init__.py b/.vim/bundle/black/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/scripts/check_pre_commit_rev_in_example.py b/.vim/bundle/black/scripts/check_pre_commit_rev_in_example.py new file mode 100644 index 0000000..9560b3b --- /dev/null +++ b/.vim/bundle/black/scripts/check_pre_commit_rev_in_example.py @@ -0,0 +1,54 @@ +""" +Check that the rev value in the example pre-commit configuration matches +the latest version of Black. This saves us from forgetting to update that +during the release process. + +Why can't we just use `rev: stable` and call it a day? Well pre-commit +won't auto update the hook as you may expect (and for good reasons, some +technical and some pragmatic). Encouraging bad practice is also just +not ideal. xref: https://github.com/psf/black/issues/420 +""" + +import os +import sys + +import commonmark +import yaml +from bs4 import BeautifulSoup + + +def main(changes: str, source_version_control: str) -> None: + changes_html = commonmark.commonmark(changes) + changes_soup = BeautifulSoup(changes_html, "html.parser") + headers = changes_soup.find_all("h2") + latest_tag, *_ = [ + header.string for header in headers if header.string != "Unreleased" + ] + + source_version_control_html = commonmark.commonmark(source_version_control) + source_version_control_soup = BeautifulSoup( + source_version_control_html, "html.parser" + ) + pre_commit_repos = yaml.safe_load( + source_version_control_soup.find(class_="language-yaml").string + )["repos"] + + for repo in pre_commit_repos: + pre_commit_rev = repo["rev"] + if not pre_commit_rev == latest_tag: + print( + "Please set the rev in ``source_version_control.md`` to be the latest " + f"one.\nExpected {latest_tag}, got {pre_commit_rev}.\n" + ) + sys.exit(1) + + +if __name__ == "__main__": + with open("CHANGES.md", encoding="utf-8") as fd: + changes = fd.read() + with open( + os.path.join("docs", "integrations", "source_version_control.md"), + encoding="utf-8", + ) as fd: + source_version_control = fd.read() + main(changes, source_version_control) diff --git a/.vim/bundle/black/scripts/check_version_in_basics_example.py b/.vim/bundle/black/scripts/check_version_in_basics_example.py new file mode 100644 index 0000000..c62780d --- /dev/null +++ b/.vim/bundle/black/scripts/check_version_in_basics_example.py @@ -0,0 +1,47 @@ +""" +Check that the rev value in the example from ``the_basics.md`` matches +the latest version of Black. This saves us from forgetting to update that +during the release process. +""" + +import os +import sys + +import commonmark +from bs4 import BeautifulSoup + + +def main(changes: str, the_basics: str) -> None: + changes_html = commonmark.commonmark(changes) + changes_soup = BeautifulSoup(changes_html, "html.parser") + headers = changes_soup.find_all("h2") + tags = [header.string for header in headers if header.string != "Unreleased"] + latest_tag = tags[0] + + the_basics_html = commonmark.commonmark(the_basics) + the_basics_soup = BeautifulSoup(the_basics_html, "html.parser") + (version_example,) = [ + code_block.string + for code_block in the_basics_soup.find_all(class_="language-console") + if "$ black --version" in code_block.string + ] + + for tag in tags: + if tag in version_example and tag != latest_tag: + print( + "Please set the version in the ``black --version`` " + "example from ``the_basics.md`` to be the latest one.\n" + f"Expected {latest_tag}, got {tag}.\n" + ) + sys.exit(1) + + +if __name__ == "__main__": + with open("CHANGES.md", encoding="utf-8") as fd: + changes = fd.read() + with open( + os.path.join("docs", "usage_and_configuration", "the_basics.md"), + encoding="utf-8", + ) as fd: + the_basics = fd.read() + main(changes, the_basics) diff --git a/.vim/bundle/black/setup.cfg b/.vim/bundle/black/setup.cfg new file mode 100644 index 0000000..1a0a217 --- /dev/null +++ b/.vim/bundle/black/setup.cfg @@ -0,0 +1,3 @@ +[options] +setup_requires = + setuptools_scm[toml]>=6.3.1 diff --git a/.vim/bundle/black/setup.py b/.vim/bundle/black/setup.py new file mode 100644 index 0000000..de84dc3 --- /dev/null +++ b/.vim/bundle/black/setup.py @@ -0,0 +1,118 @@ +# Copyright (C) 2020 Łukasz Langa +from setuptools import setup, find_packages +import sys +import os + +assert sys.version_info >= (3, 6, 2), "black requires Python 3.6.2+" +from pathlib import Path # noqa E402 + +CURRENT_DIR = Path(__file__).parent +sys.path.insert(0, str(CURRENT_DIR)) # for setuptools.build_meta + + +def get_long_description() -> str: + return ( + (CURRENT_DIR / "README.md").read_text(encoding="utf8") + + "\n\n" + + (CURRENT_DIR / "CHANGES.md").read_text(encoding="utf8") + ) + + +USE_MYPYC = False +# To compile with mypyc, a mypyc checkout must be present on the PYTHONPATH +if len(sys.argv) > 1 and sys.argv[1] == "--use-mypyc": + sys.argv.pop(1) + USE_MYPYC = True +if os.getenv("BLACK_USE_MYPYC", None) == "1": + USE_MYPYC = True + +if USE_MYPYC: + mypyc_targets = [ + "src/black/__init__.py", + "src/blib2to3/pytree.py", + "src/blib2to3/pygram.py", + "src/blib2to3/pgen2/parse.py", + "src/blib2to3/pgen2/grammar.py", + "src/blib2to3/pgen2/token.py", + "src/blib2to3/pgen2/driver.py", + "src/blib2to3/pgen2/pgen.py", + ] + + from mypyc.build import mypycify + + opt_level = os.getenv("MYPYC_OPT_LEVEL", "3") + ext_modules = mypycify(mypyc_targets, opt_level=opt_level) +else: + ext_modules = [] + +setup( + name="black", + use_scm_version={ + "write_to": "src/_black_version.py", + "write_to_template": 'version = "{version}"\n', + }, + description="The uncompromising code formatter.", + long_description=get_long_description(), + long_description_content_type="text/markdown", + keywords="automation formatter yapf autopep8 pyfmt gofmt rustfmt", + author="Łukasz Langa", + author_email="lukasz@langa.pl", + url="https://github.com/psf/black", + project_urls={"Changelog": "https://github.com/psf/black/blob/main/CHANGES.md"}, + license="MIT", + py_modules=["_black_version"], + ext_modules=ext_modules, + packages=find_packages(where="src"), + package_dir={"": "src"}, + package_data={ + "blib2to3": ["*.txt"], + "black": ["py.typed"], + "black_primer": ["primer.json"], + }, + python_requires=">=3.6.2", + zip_safe=False, + install_requires=[ + "click>=7.1.2", + "platformdirs>=2", + "tomli>=0.2.6,<2.0.0", + "typed-ast>=1.4.2; python_version < '3.8'", + "regex>=2020.1.8", + "pathspec>=0.9.0, <1", + "dataclasses>=0.6; python_version < '3.7'", + "typing_extensions>=3.10.0.0", + # 3.10.0.1 is broken on at least Python 3.10, + # https://github.com/python/typing/issues/865 + "typing_extensions!=3.10.0.1; python_version >= '3.10'", + "mypy_extensions>=0.4.3", + ], + extras_require={ + "d": ["aiohttp>=3.7.4"], + "colorama": ["colorama>=0.4.3"], + "python2": ["typed-ast>=1.4.3"], + "uvloop": ["uvloop>=0.15.2"], + "jupyter": ["ipython>=7.8.0", "tokenize-rt>=3.2.0"], + }, + test_suite="tests.test_black", + classifiers=[ + "Development Status :: 4 - Beta", + "Environment :: Console", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3 :: Only", + "Topic :: Software Development :: Libraries :: Python Modules", + "Topic :: Software Development :: Quality Assurance", + ], + entry_points={ + "console_scripts": [ + "black=black:patched_main", + "blackd=blackd:patched_main [d]", + "black-primer=black_primer.cli:main", + ] + }, +) diff --git a/.vim/bundle/black/src/black/__init__.py b/.vim/bundle/black/src/black/__init__.py new file mode 100644 index 0000000..fdbaf04 --- /dev/null +++ b/.vim/bundle/black/src/black/__init__.py @@ -0,0 +1,1309 @@ +import asyncio +from json.decoder import JSONDecodeError +import json +from concurrent.futures import Executor, ThreadPoolExecutor, ProcessPoolExecutor +from contextlib import contextmanager +from datetime import datetime +from enum import Enum +import io +from multiprocessing import Manager, freeze_support +import os +from pathlib import Path +from pathspec.patterns.gitwildmatch import GitWildMatchPatternError +import regex as re +import signal +import sys +import tokenize +import traceback +from typing import ( + Any, + Dict, + Generator, + Iterator, + List, + MutableMapping, + Optional, + Pattern, + Set, + Sized, + Tuple, + Union, +) + +from dataclasses import replace +import click + +from black.const import DEFAULT_LINE_LENGTH, DEFAULT_INCLUDES, DEFAULT_EXCLUDES +from black.const import STDIN_PLACEHOLDER +from black.nodes import STARS, syms, is_simple_decorator_expression +from black.lines import Line, EmptyLineTracker +from black.linegen import transform_line, LineGenerator, LN +from black.comments import normalize_fmt_off +from black.mode import Mode, TargetVersion +from black.mode import Feature, supports_feature, VERSION_TO_FEATURES +from black.cache import read_cache, write_cache, get_cache_info, filter_cached, Cache +from black.concurrency import cancel, shutdown, maybe_install_uvloop +from black.output import dump_to_file, ipynb_diff, diff, color_diff, out, err +from black.report import Report, Changed, NothingChanged +from black.files import find_project_root, find_pyproject_toml, parse_pyproject_toml +from black.files import gen_python_files, get_gitignore, normalize_path_maybe_ignore +from black.files import wrap_stream_for_windows +from black.parsing import InvalidInput # noqa F401 +from black.parsing import lib2to3_parse, parse_ast, stringify_ast +from black.handle_ipynb_magics import ( + mask_cell, + unmask_cell, + remove_trailing_semicolon, + put_trailing_semicolon_back, + TRANSFORMED_MAGICS, + jupyter_dependencies_are_installed, +) + + +# lib2to3 fork +from blib2to3.pytree import Node, Leaf +from blib2to3.pgen2 import token + +from _black_version import version as __version__ + +# types +FileContent = str +Encoding = str +NewLine = str + + +class WriteBack(Enum): + NO = 0 + YES = 1 + DIFF = 2 + CHECK = 3 + COLOR_DIFF = 4 + + @classmethod + def from_configuration( + cls, *, check: bool, diff: bool, color: bool = False + ) -> "WriteBack": + if check and not diff: + return cls.CHECK + + if diff and color: + return cls.COLOR_DIFF + + return cls.DIFF if diff else cls.YES + + +# Legacy name, left for integrations. +FileMode = Mode + +DEFAULT_WORKERS = os.cpu_count() + + +def read_pyproject_toml( + ctx: click.Context, param: click.Parameter, value: Optional[str] +) -> Optional[str]: + """Inject Black configuration from "pyproject.toml" into defaults in `ctx`. + + Returns the path to a successfully found and read configuration file, None + otherwise. + """ + if not value: + value = find_pyproject_toml(ctx.params.get("src", ())) + if value is None: + return None + + try: + config = parse_pyproject_toml(value) + except (OSError, ValueError) as e: + raise click.FileError( + filename=value, hint=f"Error reading configuration file: {e}" + ) from None + + if not config: + return None + else: + # Sanitize the values to be Click friendly. For more information please see: + # https://github.com/psf/black/issues/1458 + # https://github.com/pallets/click/issues/1567 + config = { + k: str(v) if not isinstance(v, (list, dict)) else v + for k, v in config.items() + } + + target_version = config.get("target_version") + if target_version is not None and not isinstance(target_version, list): + raise click.BadOptionUsage( + "target-version", "Config key target-version must be a list" + ) + + default_map: Dict[str, Any] = {} + if ctx.default_map: + default_map.update(ctx.default_map) + default_map.update(config) + + ctx.default_map = default_map + return value + + +def target_version_option_callback( + c: click.Context, p: Union[click.Option, click.Parameter], v: Tuple[str, ...] +) -> List[TargetVersion]: + """Compute the target versions from a --target-version flag. + + This is its own function because mypy couldn't infer the type correctly + when it was a lambda, causing mypyc trouble. + """ + return [TargetVersion[val.upper()] for val in v] + + +def re_compile_maybe_verbose(regex: str) -> Pattern[str]: + """Compile a regular expression string in `regex`. + + If it contains newlines, use verbose mode. + """ + if "\n" in regex: + regex = "(?x)" + regex + compiled: Pattern[str] = re.compile(regex) + return compiled + + +def validate_regex( + ctx: click.Context, + param: click.Parameter, + value: Optional[str], +) -> Optional[Pattern]: + try: + return re_compile_maybe_verbose(value) if value is not None else None + except re.error: + raise click.BadParameter("Not a valid regular expression") from None + + +@click.command(context_settings=dict(help_option_names=["-h", "--help"])) +@click.option("-c", "--code", type=str, help="Format the code passed in as a string.") +@click.option( + "-l", + "--line-length", + type=int, + default=DEFAULT_LINE_LENGTH, + help="How many characters per line to allow.", + show_default=True, +) +@click.option( + "-t", + "--target-version", + type=click.Choice([v.name.lower() for v in TargetVersion]), + callback=target_version_option_callback, + multiple=True, + help=( + "Python versions that should be supported by Black's output. [default: per-file" + " auto-detection]" + ), +) +@click.option( + "--pyi", + is_flag=True, + help=( + "Format all input files like typing stubs regardless of file extension (useful" + " when piping source on standard input)." + ), +) +@click.option( + "--ipynb", + is_flag=True, + help=( + "Format all input files like Jupyter Notebooks regardless of file extension " + "(useful when piping source on standard input)." + ), +) +@click.option( + "-S", + "--skip-string-normalization", + is_flag=True, + help="Don't normalize string quotes or prefixes.", +) +@click.option( + "-C", + "--skip-magic-trailing-comma", + is_flag=True, + help="Don't use trailing commas as a reason to split lines.", +) +@click.option( + "--experimental-string-processing", + is_flag=True, + hidden=True, + help=( + "Experimental option that performs more normalization on string literals." + " Currently disabled because it leads to some crashes." + ), +) +@click.option( + "--check", + is_flag=True, + help=( + "Don't write the files back, just return the status. Return code 0 means" + " nothing would change. Return code 1 means some files would be reformatted." + " Return code 123 means there was an internal error." + ), +) +@click.option( + "--diff", + is_flag=True, + help="Don't write the files back, just output a diff for each file on stdout.", +) +@click.option( + "--color/--no-color", + is_flag=True, + help="Show colored diff. Only applies when `--diff` is given.", +) +@click.option( + "--fast/--safe", + is_flag=True, + help="If --fast given, skip temporary sanity checks. [default: --safe]", +) +@click.option( + "--required-version", + type=str, + help=( + "Require a specific version of Black to be running (useful for unifying results" + " across many environments e.g. with a pyproject.toml file)." + ), +) +@click.option( + "--include", + type=str, + default=DEFAULT_INCLUDES, + callback=validate_regex, + help=( + "A regular expression that matches files and directories that should be" + " included on recursive searches. An empty value means all files are included" + " regardless of the name. Use forward slashes for directories on all platforms" + " (Windows, too). Exclusions are calculated first, inclusions later." + ), + show_default=True, +) +@click.option( + "--exclude", + type=str, + callback=validate_regex, + help=( + "A regular expression that matches files and directories that should be" + " excluded on recursive searches. An empty value means no paths are excluded." + " Use forward slashes for directories on all platforms (Windows, too)." + " Exclusions are calculated first, inclusions later. [default:" + f" {DEFAULT_EXCLUDES}]" + ), + show_default=False, +) +@click.option( + "--extend-exclude", + type=str, + callback=validate_regex, + help=( + "Like --exclude, but adds additional files and directories on top of the" + " excluded ones. (Useful if you simply want to add to the default)" + ), +) +@click.option( + "--force-exclude", + type=str, + callback=validate_regex, + help=( + "Like --exclude, but files and directories matching this regex will be " + "excluded even when they are passed explicitly as arguments." + ), +) +@click.option( + "--stdin-filename", + type=str, + help=( + "The name of the file when passing it through stdin. Useful to make " + "sure Black will respect --force-exclude option on some " + "editors that rely on using stdin." + ), +) +@click.option( + "-W", + "--workers", + type=click.IntRange(min=1), + default=DEFAULT_WORKERS, + show_default=True, + help="Number of parallel workers", +) +@click.option( + "-q", + "--quiet", + is_flag=True, + help=( + "Don't emit non-error messages to stderr. Errors are still emitted; silence" + " those with 2>/dev/null." + ), +) +@click.option( + "-v", + "--verbose", + is_flag=True, + help=( + "Also emit messages to stderr about files that were not changed or were ignored" + " due to exclusion patterns." + ), +) +@click.version_option(version=__version__) +@click.argument( + "src", + nargs=-1, + type=click.Path( + exists=True, file_okay=True, dir_okay=True, readable=True, allow_dash=True + ), + is_eager=True, + metavar="SRC ...", +) +@click.option( + "--config", + type=click.Path( + exists=True, + file_okay=True, + dir_okay=False, + readable=True, + allow_dash=False, + path_type=str, + ), + is_eager=True, + callback=read_pyproject_toml, + help="Read configuration from FILE path.", +) +@click.pass_context +def main( + ctx: click.Context, + code: Optional[str], + line_length: int, + target_version: List[TargetVersion], + check: bool, + diff: bool, + color: bool, + fast: bool, + pyi: bool, + ipynb: bool, + skip_string_normalization: bool, + skip_magic_trailing_comma: bool, + experimental_string_processing: bool, + quiet: bool, + verbose: bool, + required_version: str, + include: Pattern, + exclude: Optional[Pattern], + extend_exclude: Optional[Pattern], + force_exclude: Optional[Pattern], + stdin_filename: Optional[str], + workers: int, + src: Tuple[str, ...], + config: Optional[str], +) -> None: + """The uncompromising code formatter.""" + if config and verbose: + out(f"Using configuration from {config}.", bold=False, fg="blue") + + error_msg = "Oh no! 💥 💔 💥" + if required_version and required_version != __version__: + err( + f"{error_msg} The required version `{required_version}` does not match" + f" the running version `{__version__}`!" + ) + ctx.exit(1) + if ipynb and pyi: + err("Cannot pass both `pyi` and `ipynb` flags!") + ctx.exit(1) + + write_back = WriteBack.from_configuration(check=check, diff=diff, color=color) + if target_version: + versions = set(target_version) + else: + # We'll autodetect later. + versions = set() + mode = Mode( + target_versions=versions, + line_length=line_length, + is_pyi=pyi, + is_ipynb=ipynb, + string_normalization=not skip_string_normalization, + magic_trailing_comma=not skip_magic_trailing_comma, + experimental_string_processing=experimental_string_processing, + ) + + if code is not None: + # Run in quiet mode by default with -c; the extra output isn't useful. + # You can still pass -v to get verbose output. + quiet = True + + report = Report(check=check, diff=diff, quiet=quiet, verbose=verbose) + + if code is not None: + reformat_code( + content=code, fast=fast, write_back=write_back, mode=mode, report=report + ) + else: + try: + sources = get_sources( + ctx=ctx, + src=src, + quiet=quiet, + verbose=verbose, + include=include, + exclude=exclude, + extend_exclude=extend_exclude, + force_exclude=force_exclude, + report=report, + stdin_filename=stdin_filename, + ) + except GitWildMatchPatternError: + ctx.exit(1) + + path_empty( + sources, + "No Python files are present to be formatted. Nothing to do 😴", + quiet, + verbose, + ctx, + ) + + if len(sources) == 1: + reformat_one( + src=sources.pop(), + fast=fast, + write_back=write_back, + mode=mode, + report=report, + ) + else: + reformat_many( + sources=sources, + fast=fast, + write_back=write_back, + mode=mode, + report=report, + workers=workers, + ) + + if verbose or not quiet: + out(error_msg if report.return_code else "All done! ✨ 🍰 ✨") + if code is None: + click.echo(str(report), err=True) + ctx.exit(report.return_code) + + +def get_sources( + *, + ctx: click.Context, + src: Tuple[str, ...], + quiet: bool, + verbose: bool, + include: Pattern[str], + exclude: Optional[Pattern[str]], + extend_exclude: Optional[Pattern[str]], + force_exclude: Optional[Pattern[str]], + report: "Report", + stdin_filename: Optional[str], +) -> Set[Path]: + """Compute the set of files to be formatted.""" + + root = find_project_root(src) + sources: Set[Path] = set() + path_empty(src, "No Path provided. Nothing to do 😴", quiet, verbose, ctx) + + if exclude is None: + exclude = re_compile_maybe_verbose(DEFAULT_EXCLUDES) + gitignore = get_gitignore(root) + else: + gitignore = None + + for s in src: + if s == "-" and stdin_filename: + p = Path(stdin_filename) + is_stdin = True + else: + p = Path(s) + is_stdin = False + + if is_stdin or p.is_file(): + normalized_path = normalize_path_maybe_ignore(p, root, report) + if normalized_path is None: + continue + + normalized_path = "/" + normalized_path + # Hard-exclude any files that matches the `--force-exclude` regex. + if force_exclude: + force_exclude_match = force_exclude.search(normalized_path) + else: + force_exclude_match = None + if force_exclude_match and force_exclude_match.group(0): + report.path_ignored(p, "matches the --force-exclude regular expression") + continue + + if is_stdin: + p = Path(f"{STDIN_PLACEHOLDER}{str(p)}") + + if p.suffix == ".ipynb" and not jupyter_dependencies_are_installed( + verbose=verbose, quiet=quiet + ): + continue + + sources.add(p) + elif p.is_dir(): + sources.update( + gen_python_files( + p.iterdir(), + root, + include, + exclude, + extend_exclude, + force_exclude, + report, + gitignore, + verbose=verbose, + quiet=quiet, + ) + ) + elif s == "-": + sources.add(p) + else: + err(f"invalid path: {s}") + return sources + + +def path_empty( + src: Sized, msg: str, quiet: bool, verbose: bool, ctx: click.Context +) -> None: + """ + Exit if there is no `src` provided for formatting + """ + if not src: + if verbose or not quiet: + out(msg) + ctx.exit(0) + + +def reformat_code( + content: str, fast: bool, write_back: WriteBack, mode: Mode, report: Report +) -> None: + """ + Reformat and print out `content` without spawning child processes. + Similar to `reformat_one`, but for string content. + + `fast`, `write_back`, and `mode` options are passed to + :func:`format_file_in_place` or :func:`format_stdin_to_stdout`. + """ + path = Path("") + try: + changed = Changed.NO + if format_stdin_to_stdout( + content=content, fast=fast, write_back=write_back, mode=mode + ): + changed = Changed.YES + report.done(path, changed) + except Exception as exc: + if report.verbose: + traceback.print_exc() + report.failed(path, str(exc)) + + +def reformat_one( + src: Path, fast: bool, write_back: WriteBack, mode: Mode, report: "Report" +) -> None: + """Reformat a single file under `src` without spawning child processes. + + `fast`, `write_back`, and `mode` options are passed to + :func:`format_file_in_place` or :func:`format_stdin_to_stdout`. + """ + try: + changed = Changed.NO + + if str(src) == "-": + is_stdin = True + elif str(src).startswith(STDIN_PLACEHOLDER): + is_stdin = True + # Use the original name again in case we want to print something + # to the user + src = Path(str(src)[len(STDIN_PLACEHOLDER) :]) + else: + is_stdin = False + + if is_stdin: + if src.suffix == ".pyi": + mode = replace(mode, is_pyi=True) + elif src.suffix == ".ipynb": + mode = replace(mode, is_ipynb=True) + if format_stdin_to_stdout(fast=fast, write_back=write_back, mode=mode): + changed = Changed.YES + else: + cache: Cache = {} + if write_back not in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + cache = read_cache(mode) + res_src = src.resolve() + res_src_s = str(res_src) + if res_src_s in cache and cache[res_src_s] == get_cache_info(res_src): + changed = Changed.CACHED + if changed is not Changed.CACHED and format_file_in_place( + src, fast=fast, write_back=write_back, mode=mode + ): + changed = Changed.YES + if (write_back is WriteBack.YES and changed is not Changed.CACHED) or ( + write_back is WriteBack.CHECK and changed is Changed.NO + ): + write_cache(cache, [src], mode) + report.done(src, changed) + except Exception as exc: + if report.verbose: + traceback.print_exc() + report.failed(src, str(exc)) + + +def reformat_many( + sources: Set[Path], + fast: bool, + write_back: WriteBack, + mode: Mode, + report: "Report", + workers: Optional[int], +) -> None: + """Reformat multiple files using a ProcessPoolExecutor.""" + executor: Executor + loop = asyncio.get_event_loop() + worker_count = workers if workers is not None else DEFAULT_WORKERS + if sys.platform == "win32": + # Work around https://bugs.python.org/issue26903 + worker_count = min(worker_count, 60) + try: + executor = ProcessPoolExecutor(max_workers=worker_count) + except (ImportError, OSError): + # we arrive here if the underlying system does not support multi-processing + # like in AWS Lambda or Termux, in which case we gracefully fallback to + # a ThreadPoolExecutor with just a single worker (more workers would not do us + # any good due to the Global Interpreter Lock) + executor = ThreadPoolExecutor(max_workers=1) + + try: + loop.run_until_complete( + schedule_formatting( + sources=sources, + fast=fast, + write_back=write_back, + mode=mode, + report=report, + loop=loop, + executor=executor, + ) + ) + finally: + shutdown(loop) + if executor is not None: + executor.shutdown() + + +async def schedule_formatting( + sources: Set[Path], + fast: bool, + write_back: WriteBack, + mode: Mode, + report: "Report", + loop: asyncio.AbstractEventLoop, + executor: Executor, +) -> None: + """Run formatting of `sources` in parallel using the provided `executor`. + + (Use ProcessPoolExecutors for actual parallelism.) + + `write_back`, `fast`, and `mode` options are passed to + :func:`format_file_in_place`. + """ + cache: Cache = {} + if write_back not in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + cache = read_cache(mode) + sources, cached = filter_cached(cache, sources) + for src in sorted(cached): + report.done(src, Changed.CACHED) + if not sources: + return + + cancelled = [] + sources_to_cache = [] + lock = None + if write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + # For diff output, we need locks to ensure we don't interleave output + # from different processes. + manager = Manager() + lock = manager.Lock() + tasks = { + asyncio.ensure_future( + loop.run_in_executor( + executor, format_file_in_place, src, fast, mode, write_back, lock + ) + ): src + for src in sorted(sources) + } + pending = tasks.keys() + try: + loop.add_signal_handler(signal.SIGINT, cancel, pending) + loop.add_signal_handler(signal.SIGTERM, cancel, pending) + except NotImplementedError: + # There are no good alternatives for these on Windows. + pass + while pending: + done, _ = await asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED) + for task in done: + src = tasks.pop(task) + if task.cancelled(): + cancelled.append(task) + elif task.exception(): + report.failed(src, str(task.exception())) + else: + changed = Changed.YES if task.result() else Changed.NO + # If the file was written back or was successfully checked as + # well-formatted, store this information in the cache. + if write_back is WriteBack.YES or ( + write_back is WriteBack.CHECK and changed is Changed.NO + ): + sources_to_cache.append(src) + report.done(src, changed) + if cancelled: + await asyncio.gather(*cancelled, loop=loop, return_exceptions=True) + if sources_to_cache: + write_cache(cache, sources_to_cache, mode) + + +def format_file_in_place( + src: Path, + fast: bool, + mode: Mode, + write_back: WriteBack = WriteBack.NO, + lock: Any = None, # multiprocessing.Manager().Lock() is some crazy proxy +) -> bool: + """Format file under `src` path. Return True if changed. + + If `write_back` is DIFF, write a diff to stdout. If it is YES, write reformatted + code to the file. + `mode` and `fast` options are passed to :func:`format_file_contents`. + """ + if src.suffix == ".pyi": + mode = replace(mode, is_pyi=True) + elif src.suffix == ".ipynb": + mode = replace(mode, is_ipynb=True) + + then = datetime.utcfromtimestamp(src.stat().st_mtime) + with open(src, "rb") as buf: + src_contents, encoding, newline = decode_bytes(buf.read()) + try: + dst_contents = format_file_contents(src_contents, fast=fast, mode=mode) + except NothingChanged: + return False + except JSONDecodeError: + raise ValueError( + f"File '{src}' cannot be parsed as valid Jupyter notebook." + ) from None + + if write_back == WriteBack.YES: + with open(src, "w", encoding=encoding, newline=newline) as f: + f.write(dst_contents) + elif write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + now = datetime.utcnow() + src_name = f"{src}\t{then} +0000" + dst_name = f"{src}\t{now} +0000" + if mode.is_ipynb: + diff_contents = ipynb_diff(src_contents, dst_contents, src_name, dst_name) + else: + diff_contents = diff(src_contents, dst_contents, src_name, dst_name) + + if write_back == WriteBack.COLOR_DIFF: + diff_contents = color_diff(diff_contents) + + with lock or nullcontext(): + f = io.TextIOWrapper( + sys.stdout.buffer, + encoding=encoding, + newline=newline, + write_through=True, + ) + f = wrap_stream_for_windows(f) + f.write(diff_contents) + f.detach() + + return True + + +def format_stdin_to_stdout( + fast: bool, + *, + content: Optional[str] = None, + write_back: WriteBack = WriteBack.NO, + mode: Mode, +) -> bool: + """Format file on stdin. Return True if changed. + + If content is None, it's read from sys.stdin. + + If `write_back` is YES, write reformatted code back to stdout. If it is DIFF, + write a diff to stdout. The `mode` argument is passed to + :func:`format_file_contents`. + """ + then = datetime.utcnow() + + if content is None: + src, encoding, newline = decode_bytes(sys.stdin.buffer.read()) + else: + src, encoding, newline = content, "utf-8", "" + + dst = src + try: + dst = format_file_contents(src, fast=fast, mode=mode) + return True + + except NothingChanged: + return False + + finally: + f = io.TextIOWrapper( + sys.stdout.buffer, encoding=encoding, newline=newline, write_through=True + ) + if write_back == WriteBack.YES: + # Make sure there's a newline after the content + if dst and dst[-1] != "\n": + dst += "\n" + f.write(dst) + elif write_back in (WriteBack.DIFF, WriteBack.COLOR_DIFF): + now = datetime.utcnow() + src_name = f"STDIN\t{then} +0000" + dst_name = f"STDOUT\t{now} +0000" + d = diff(src, dst, src_name, dst_name) + if write_back == WriteBack.COLOR_DIFF: + d = color_diff(d) + f = wrap_stream_for_windows(f) + f.write(d) + f.detach() + + +def check_stability_and_equivalence( + src_contents: str, dst_contents: str, *, mode: Mode +) -> None: + """Perform stability and equivalence checks. + + Raise AssertionError if source and destination contents are not + equivalent, or if a second pass of the formatter would format the + content differently. + """ + assert_equivalent(src_contents, dst_contents) + + # Forced second pass to work around optional trailing commas (becoming + # forced trailing commas on pass 2) interacting differently with optional + # parentheses. Admittedly ugly. + dst_contents_pass2 = format_str(dst_contents, mode=mode) + if dst_contents != dst_contents_pass2: + dst_contents = dst_contents_pass2 + assert_equivalent(src_contents, dst_contents, pass_num=2) + assert_stable(src_contents, dst_contents, mode=mode) + # Note: no need to explicitly call `assert_stable` if `dst_contents` was + # the same as `dst_contents_pass2`. + + +def format_file_contents(src_contents: str, *, fast: bool, mode: Mode) -> FileContent: + """Reformat contents of a file and return new contents. + + If `fast` is False, additionally confirm that the reformatted code is + valid by calling :func:`assert_equivalent` and :func:`assert_stable` on it. + `mode` is passed to :func:`format_str`. + """ + if not src_contents.strip(): + raise NothingChanged + + if mode.is_ipynb: + dst_contents = format_ipynb_string(src_contents, fast=fast, mode=mode) + else: + dst_contents = format_str(src_contents, mode=mode) + if src_contents == dst_contents: + raise NothingChanged + + if not fast and not mode.is_ipynb: + # Jupyter notebooks will already have been checked above. + check_stability_and_equivalence(src_contents, dst_contents, mode=mode) + return dst_contents + + +def validate_cell(src: str) -> None: + """Check that cell does not already contain TransformerManager transformations. + + If a cell contains ``!ls``, then it'll be transformed to + ``get_ipython().system('ls')``. However, if the cell originally contained + ``get_ipython().system('ls')``, then it would get transformed in the same way: + + >>> TransformerManager().transform_cell("get_ipython().system('ls')") + "get_ipython().system('ls')\n" + >>> TransformerManager().transform_cell("!ls") + "get_ipython().system('ls')\n" + + Due to the impossibility of safely roundtripping in such situations, cells + containing transformed magics will be ignored. + """ + if any(transformed_magic in src for transformed_magic in TRANSFORMED_MAGICS): + raise NothingChanged + + +def format_cell(src: str, *, fast: bool, mode: Mode) -> str: + """Format code in given cell of Jupyter notebook. + + General idea is: + + - if cell has trailing semicolon, remove it; + - if cell has IPython magics, mask them; + - format cell; + - reinstate IPython magics; + - reinstate trailing semicolon (if originally present); + - strip trailing newlines. + + Cells with syntax errors will not be processed, as they + could potentially be automagics or multi-line magics, which + are currently not supported. + """ + validate_cell(src) + src_without_trailing_semicolon, has_trailing_semicolon = remove_trailing_semicolon( + src + ) + try: + masked_src, replacements = mask_cell(src_without_trailing_semicolon) + except SyntaxError: + raise NothingChanged from None + masked_dst = format_str(masked_src, mode=mode) + if not fast: + check_stability_and_equivalence(masked_src, masked_dst, mode=mode) + dst_without_trailing_semicolon = unmask_cell(masked_dst, replacements) + dst = put_trailing_semicolon_back( + dst_without_trailing_semicolon, has_trailing_semicolon + ) + dst = dst.rstrip("\n") + if dst == src: + raise NothingChanged from None + return dst + + +def validate_metadata(nb: MutableMapping[str, Any]) -> None: + """If notebook is marked as non-Python, don't format it. + + All notebook metadata fields are optional, see + https://nbformat.readthedocs.io/en/latest/format_description.html. So + if a notebook has empty metadata, we will try to parse it anyway. + """ + language = nb.get("metadata", {}).get("language_info", {}).get("name", None) + if language is not None and language != "python": + raise NothingChanged from None + + +def format_ipynb_string(src_contents: str, *, fast: bool, mode: Mode) -> FileContent: + """Format Jupyter notebook. + + Operate cell-by-cell, only on code cells, only for Python notebooks. + If the ``.ipynb`` originally had a trailing newline, it'll be preserved. + """ + trailing_newline = src_contents[-1] == "\n" + modified = False + nb = json.loads(src_contents) + validate_metadata(nb) + for cell in nb["cells"]: + if cell.get("cell_type", None) == "code": + try: + src = "".join(cell["source"]) + dst = format_cell(src, fast=fast, mode=mode) + except NothingChanged: + pass + else: + cell["source"] = dst.splitlines(keepends=True) + modified = True + if modified: + dst_contents = json.dumps(nb, indent=1, ensure_ascii=False) + if trailing_newline: + dst_contents = dst_contents + "\n" + return dst_contents + else: + raise NothingChanged + + +def format_str(src_contents: str, *, mode: Mode) -> FileContent: + """Reformat a string and return new contents. + + `mode` determines formatting options, such as how many characters per line are + allowed. Example: + + >>> import black + >>> print(black.format_str("def f(arg:str='')->None:...", mode=black.Mode())) + def f(arg: str = "") -> None: + ... + + A more complex example: + + >>> print( + ... black.format_str( + ... "def f(arg:str='')->None: hey", + ... mode=black.Mode( + ... target_versions={black.TargetVersion.PY36}, + ... line_length=10, + ... string_normalization=False, + ... is_pyi=False, + ... ), + ... ), + ... ) + def f( + arg: str = '', + ) -> None: + hey + + """ + src_node = lib2to3_parse(src_contents.lstrip(), mode.target_versions) + dst_contents = [] + future_imports = get_future_imports(src_node) + if mode.target_versions: + versions = mode.target_versions + else: + versions = detect_target_versions(src_node) + normalize_fmt_off(src_node) + lines = LineGenerator( + mode=mode, + remove_u_prefix="unicode_literals" in future_imports + or supports_feature(versions, Feature.UNICODE_LITERALS), + ) + elt = EmptyLineTracker(is_pyi=mode.is_pyi) + empty_line = Line(mode=mode) + after = 0 + split_line_features = { + feature + for feature in {Feature.TRAILING_COMMA_IN_CALL, Feature.TRAILING_COMMA_IN_DEF} + if supports_feature(versions, feature) + } + for current_line in lines.visit(src_node): + dst_contents.append(str(empty_line) * after) + before, after = elt.maybe_empty_lines(current_line) + dst_contents.append(str(empty_line) * before) + for line in transform_line( + current_line, mode=mode, features=split_line_features + ): + dst_contents.append(str(line)) + return "".join(dst_contents) + + +def decode_bytes(src: bytes) -> Tuple[FileContent, Encoding, NewLine]: + """Return a tuple of (decoded_contents, encoding, newline). + + `newline` is either CRLF or LF but `decoded_contents` is decoded with + universal newlines (i.e. only contains LF). + """ + srcbuf = io.BytesIO(src) + encoding, lines = tokenize.detect_encoding(srcbuf.readline) + if not lines: + return "", encoding, "\n" + + newline = "\r\n" if b"\r\n" == lines[0][-2:] else "\n" + srcbuf.seek(0) + with io.TextIOWrapper(srcbuf, encoding) as tiow: + return tiow.read(), encoding, newline + + +def get_features_used(node: Node) -> Set[Feature]: + """Return a set of (relatively) new Python features used in this file. + + Currently looking for: + - f-strings; + - underscores in numeric literals; + - trailing commas after * or ** in function signatures and calls; + - positional only arguments in function signatures and lambdas; + - assignment expression; + - relaxed decorator syntax; + """ + features: Set[Feature] = set() + for n in node.pre_order(): + if n.type == token.STRING: + value_head = n.value[:2] # type: ignore + if value_head in {'f"', 'F"', "f'", "F'", "rf", "fr", "RF", "FR"}: + features.add(Feature.F_STRINGS) + + elif n.type == token.NUMBER: + if "_" in n.value: # type: ignore + features.add(Feature.NUMERIC_UNDERSCORES) + + elif n.type == token.SLASH: + if n.parent and n.parent.type in { + syms.typedargslist, + syms.arglist, + syms.varargslist, + }: + features.add(Feature.POS_ONLY_ARGUMENTS) + + elif n.type == token.COLONEQUAL: + features.add(Feature.ASSIGNMENT_EXPRESSIONS) + + elif n.type == syms.decorator: + if len(n.children) > 1 and not is_simple_decorator_expression( + n.children[1] + ): + features.add(Feature.RELAXED_DECORATORS) + + elif ( + n.type in {syms.typedargslist, syms.arglist} + and n.children + and n.children[-1].type == token.COMMA + ): + if n.type == syms.typedargslist: + feature = Feature.TRAILING_COMMA_IN_DEF + else: + feature = Feature.TRAILING_COMMA_IN_CALL + + for ch in n.children: + if ch.type in STARS: + features.add(feature) + + if ch.type == syms.argument: + for argch in ch.children: + if argch.type in STARS: + features.add(feature) + + return features + + +def detect_target_versions(node: Node) -> Set[TargetVersion]: + """Detect the version to target based on the nodes used.""" + features = get_features_used(node) + return { + version for version in TargetVersion if features <= VERSION_TO_FEATURES[version] + } + + +def get_future_imports(node: Node) -> Set[str]: + """Return a set of __future__ imports in the file.""" + imports: Set[str] = set() + + def get_imports_from_children(children: List[LN]) -> Generator[str, None, None]: + for child in children: + if isinstance(child, Leaf): + if child.type == token.NAME: + yield child.value + + elif child.type == syms.import_as_name: + orig_name = child.children[0] + assert isinstance(orig_name, Leaf), "Invalid syntax parsing imports" + assert orig_name.type == token.NAME, "Invalid syntax parsing imports" + yield orig_name.value + + elif child.type == syms.import_as_names: + yield from get_imports_from_children(child.children) + + else: + raise AssertionError("Invalid syntax parsing imports") + + for child in node.children: + if child.type != syms.simple_stmt: + break + + first_child = child.children[0] + if isinstance(first_child, Leaf): + # Continue looking if we see a docstring; otherwise stop. + if ( + len(child.children) == 2 + and first_child.type == token.STRING + and child.children[1].type == token.NEWLINE + ): + continue + + break + + elif first_child.type == syms.import_from: + module_name = first_child.children[1] + if not isinstance(module_name, Leaf) or module_name.value != "__future__": + break + + imports |= set(get_imports_from_children(first_child.children[3:])) + else: + break + + return imports + + +def assert_equivalent(src: str, dst: str, *, pass_num: int = 1) -> None: + """Raise AssertionError if `src` and `dst` aren't equivalent.""" + try: + src_ast = parse_ast(src) + except Exception as exc: + raise AssertionError( + "cannot use --safe with this file; failed to parse source file." + ) from exc + + try: + dst_ast = parse_ast(dst) + except Exception as exc: + log = dump_to_file("".join(traceback.format_tb(exc.__traceback__)), dst) + raise AssertionError( + f"INTERNAL ERROR: Black produced invalid code on pass {pass_num}: {exc}. " + "Please report a bug on https://github.com/psf/black/issues. " + f"This invalid output might be helpful: {log}" + ) from None + + src_ast_str = "\n".join(stringify_ast(src_ast)) + dst_ast_str = "\n".join(stringify_ast(dst_ast)) + if src_ast_str != dst_ast_str: + log = dump_to_file(diff(src_ast_str, dst_ast_str, "src", "dst")) + raise AssertionError( + "INTERNAL ERROR: Black produced code that is not equivalent to the" + f" source on pass {pass_num}. Please report a bug on " + f"https://github.com/psf/black/issues. This diff might be helpful: {log}" + ) from None + + +def assert_stable(src: str, dst: str, mode: Mode) -> None: + """Raise AssertionError if `dst` reformats differently the second time.""" + newdst = format_str(dst, mode=mode) + if dst != newdst: + log = dump_to_file( + str(mode), + diff(src, dst, "source", "first pass"), + diff(dst, newdst, "first pass", "second pass"), + ) + raise AssertionError( + "INTERNAL ERROR: Black produced different code on the second pass of the" + " formatter. Please report a bug on https://github.com/psf/black/issues." + f" This diff might be helpful: {log}" + ) from None + + +@contextmanager +def nullcontext() -> Iterator[None]: + """Return an empty context manager. + + To be used like `nullcontext` in Python 3.7. + """ + yield + + +def patch_click() -> None: + """Make Click not crash on Python 3.6 with LANG=C. + + On certain misconfigured environments, Python 3 selects the ASCII encoding as the + default which restricts paths that it can access during the lifetime of the + application. Click refuses to work in this scenario by raising a RuntimeError. + + In case of Black the likelihood that non-ASCII characters are going to be used in + file paths is minimal since it's Python source code. Moreover, this crash was + spurious on Python 3.7 thanks to PEP 538 and PEP 540. + """ + try: + from click import core + from click import _unicodefun # type: ignore + except ModuleNotFoundError: + return + + for module in (core, _unicodefun): + if hasattr(module, "_verify_python3_env"): + module._verify_python3_env = lambda: None # type: ignore + if hasattr(module, "_verify_python_env"): + module._verify_python_env = lambda: None # type: ignore + + +def patched_main() -> None: + maybe_install_uvloop() + freeze_support() + patch_click() + main() + + +if __name__ == "__main__": + patched_main() diff --git a/.vim/bundle/black/src/black/__main__.py b/.vim/bundle/black/src/black/__main__.py new file mode 100644 index 0000000..19b810b --- /dev/null +++ b/.vim/bundle/black/src/black/__main__.py @@ -0,0 +1,3 @@ +from black import patched_main + +patched_main() diff --git a/.vim/bundle/black/src/black/brackets.py b/.vim/bundle/black/src/black/brackets.py new file mode 100644 index 0000000..bb865a0 --- /dev/null +++ b/.vim/bundle/black/src/black/brackets.py @@ -0,0 +1,334 @@ +"""Builds on top of nodes.py to track brackets.""" + +from dataclasses import dataclass, field +import sys +from typing import Dict, Iterable, List, Optional, Tuple, Union + +if sys.version_info < (3, 8): + from typing_extensions import Final +else: + from typing import Final + +from blib2to3.pytree import Leaf, Node +from blib2to3.pgen2 import token + +from black.nodes import syms, is_vararg, VARARGS_PARENTS, UNPACKING_PARENTS +from black.nodes import BRACKET, OPENING_BRACKETS, CLOSING_BRACKETS +from black.nodes import MATH_OPERATORS, COMPARATORS, LOGIC_OPERATORS + +# types +LN = Union[Leaf, Node] +Depth = int +LeafID = int +NodeType = int +Priority = int + + +COMPREHENSION_PRIORITY: Final = 20 +COMMA_PRIORITY: Final = 18 +TERNARY_PRIORITY: Final = 16 +LOGIC_PRIORITY: Final = 14 +STRING_PRIORITY: Final = 12 +COMPARATOR_PRIORITY: Final = 10 +MATH_PRIORITIES: Final = { + token.VBAR: 9, + token.CIRCUMFLEX: 8, + token.AMPER: 7, + token.LEFTSHIFT: 6, + token.RIGHTSHIFT: 6, + token.PLUS: 5, + token.MINUS: 5, + token.STAR: 4, + token.SLASH: 4, + token.DOUBLESLASH: 4, + token.PERCENT: 4, + token.AT: 4, + token.TILDE: 3, + token.DOUBLESTAR: 2, +} +DOT_PRIORITY: Final = 1 + + +class BracketMatchError(KeyError): + """Raised when an opening bracket is unable to be matched to a closing bracket.""" + + +@dataclass +class BracketTracker: + """Keeps track of brackets on a line.""" + + depth: int = 0 + bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = field(default_factory=dict) + delimiters: Dict[LeafID, Priority] = field(default_factory=dict) + previous: Optional[Leaf] = None + _for_loop_depths: List[int] = field(default_factory=list) + _lambda_argument_depths: List[int] = field(default_factory=list) + invisible: List[Leaf] = field(default_factory=list) + + def mark(self, leaf: Leaf) -> None: + """Mark `leaf` with bracket-related metadata. Keep track of delimiters. + + All leaves receive an int `bracket_depth` field that stores how deep + within brackets a given leaf is. 0 means there are no enclosing brackets + that started on this line. + + If a leaf is itself a closing bracket, it receives an `opening_bracket` + field that it forms a pair with. This is a one-directional link to + avoid reference cycles. + + If a leaf is a delimiter (a token on which Black can split the line if + needed) and it's on depth 0, its `id()` is stored in the tracker's + `delimiters` field. + """ + if leaf.type == token.COMMENT: + return + + self.maybe_decrement_after_for_loop_variable(leaf) + self.maybe_decrement_after_lambda_arguments(leaf) + if leaf.type in CLOSING_BRACKETS: + self.depth -= 1 + try: + opening_bracket = self.bracket_match.pop((self.depth, leaf.type)) + except KeyError as e: + raise BracketMatchError( + "Unable to match a closing bracket to the following opening" + f" bracket: {leaf}" + ) from e + leaf.opening_bracket = opening_bracket + if not leaf.value: + self.invisible.append(leaf) + leaf.bracket_depth = self.depth + if self.depth == 0: + delim = is_split_before_delimiter(leaf, self.previous) + if delim and self.previous is not None: + self.delimiters[id(self.previous)] = delim + else: + delim = is_split_after_delimiter(leaf, self.previous) + if delim: + self.delimiters[id(leaf)] = delim + if leaf.type in OPENING_BRACKETS: + self.bracket_match[self.depth, BRACKET[leaf.type]] = leaf + self.depth += 1 + if not leaf.value: + self.invisible.append(leaf) + self.previous = leaf + self.maybe_increment_lambda_arguments(leaf) + self.maybe_increment_for_loop_variable(leaf) + + def any_open_brackets(self) -> bool: + """Return True if there is an yet unmatched open bracket on the line.""" + return bool(self.bracket_match) + + def max_delimiter_priority(self, exclude: Iterable[LeafID] = ()) -> Priority: + """Return the highest priority of a delimiter found on the line. + + Values are consistent with what `is_split_*_delimiter()` return. + Raises ValueError on no delimiters. + """ + return max(v for k, v in self.delimiters.items() if k not in exclude) + + def delimiter_count_with_priority(self, priority: Priority = 0) -> int: + """Return the number of delimiters with the given `priority`. + + If no `priority` is passed, defaults to max priority on the line. + """ + if not self.delimiters: + return 0 + + priority = priority or self.max_delimiter_priority() + return sum(1 for p in self.delimiters.values() if p == priority) + + def maybe_increment_for_loop_variable(self, leaf: Leaf) -> bool: + """In a for loop, or comprehension, the variables are often unpacks. + + To avoid splitting on the comma in this situation, increase the depth of + tokens between `for` and `in`. + """ + if leaf.type == token.NAME and leaf.value == "for": + self.depth += 1 + self._for_loop_depths.append(self.depth) + return True + + return False + + def maybe_decrement_after_for_loop_variable(self, leaf: Leaf) -> bool: + """See `maybe_increment_for_loop_variable` above for explanation.""" + if ( + self._for_loop_depths + and self._for_loop_depths[-1] == self.depth + and leaf.type == token.NAME + and leaf.value == "in" + ): + self.depth -= 1 + self._for_loop_depths.pop() + return True + + return False + + def maybe_increment_lambda_arguments(self, leaf: Leaf) -> bool: + """In a lambda expression, there might be more than one argument. + + To avoid splitting on the comma in this situation, increase the depth of + tokens between `lambda` and `:`. + """ + if leaf.type == token.NAME and leaf.value == "lambda": + self.depth += 1 + self._lambda_argument_depths.append(self.depth) + return True + + return False + + def maybe_decrement_after_lambda_arguments(self, leaf: Leaf) -> bool: + """See `maybe_increment_lambda_arguments` above for explanation.""" + if ( + self._lambda_argument_depths + and self._lambda_argument_depths[-1] == self.depth + and leaf.type == token.COLON + ): + self.depth -= 1 + self._lambda_argument_depths.pop() + return True + + return False + + def get_open_lsqb(self) -> Optional[Leaf]: + """Return the most recent opening square bracket (if any).""" + return self.bracket_match.get((self.depth - 1, token.RSQB)) + + +def is_split_after_delimiter(leaf: Leaf, previous: Optional[Leaf] = None) -> Priority: + """Return the priority of the `leaf` delimiter, given a line break after it. + + The delimiter priorities returned here are from those delimiters that would + cause a line break after themselves. + + Higher numbers are higher priority. + """ + if leaf.type == token.COMMA: + return COMMA_PRIORITY + + return 0 + + +def is_split_before_delimiter(leaf: Leaf, previous: Optional[Leaf] = None) -> Priority: + """Return the priority of the `leaf` delimiter, given a line break before it. + + The delimiter priorities returned here are from those delimiters that would + cause a line break before themselves. + + Higher numbers are higher priority. + """ + if is_vararg(leaf, within=VARARGS_PARENTS | UNPACKING_PARENTS): + # * and ** might also be MATH_OPERATORS but in this case they are not. + # Don't treat them as a delimiter. + return 0 + + if ( + leaf.type == token.DOT + and leaf.parent + and leaf.parent.type not in {syms.import_from, syms.dotted_name} + and (previous is None or previous.type in CLOSING_BRACKETS) + ): + return DOT_PRIORITY + + if ( + leaf.type in MATH_OPERATORS + and leaf.parent + and leaf.parent.type not in {syms.factor, syms.star_expr} + ): + return MATH_PRIORITIES[leaf.type] + + if leaf.type in COMPARATORS: + return COMPARATOR_PRIORITY + + if ( + leaf.type == token.STRING + and previous is not None + and previous.type == token.STRING + ): + return STRING_PRIORITY + + if leaf.type not in {token.NAME, token.ASYNC}: + return 0 + + if ( + leaf.value == "for" + and leaf.parent + and leaf.parent.type in {syms.comp_for, syms.old_comp_for} + or leaf.type == token.ASYNC + ): + if ( + not isinstance(leaf.prev_sibling, Leaf) + or leaf.prev_sibling.value != "async" + ): + return COMPREHENSION_PRIORITY + + if ( + leaf.value == "if" + and leaf.parent + and leaf.parent.type in {syms.comp_if, syms.old_comp_if} + ): + return COMPREHENSION_PRIORITY + + if leaf.value in {"if", "else"} and leaf.parent and leaf.parent.type == syms.test: + return TERNARY_PRIORITY + + if leaf.value == "is": + return COMPARATOR_PRIORITY + + if ( + leaf.value == "in" + and leaf.parent + and leaf.parent.type in {syms.comp_op, syms.comparison} + and not ( + previous is not None + and previous.type == token.NAME + and previous.value == "not" + ) + ): + return COMPARATOR_PRIORITY + + if ( + leaf.value == "not" + and leaf.parent + and leaf.parent.type == syms.comp_op + and not ( + previous is not None + and previous.type == token.NAME + and previous.value == "is" + ) + ): + return COMPARATOR_PRIORITY + + if leaf.value in LOGIC_OPERATORS and leaf.parent: + return LOGIC_PRIORITY + + return 0 + + +def max_delimiter_priority_in_atom(node: LN) -> Priority: + """Return maximum delimiter priority inside `node`. + + This is specific to atoms with contents contained in a pair of parentheses. + If `node` isn't an atom or there are no enclosing parentheses, returns 0. + """ + if node.type != syms.atom: + return 0 + + first = node.children[0] + last = node.children[-1] + if not (first.type == token.LPAR and last.type == token.RPAR): + return 0 + + bt = BracketTracker() + for c in node.children[1:-1]: + if isinstance(c, Leaf): + bt.mark(c) + else: + for leaf in c.leaves(): + bt.mark(leaf) + try: + return bt.max_delimiter_priority() + + except ValueError: + return 0 diff --git a/.vim/bundle/black/src/black/cache.py b/.vim/bundle/black/src/black/cache.py new file mode 100644 index 0000000..3f165de --- /dev/null +++ b/.vim/bundle/black/src/black/cache.py @@ -0,0 +1,83 @@ +"""Caching of formatted files with feature-based invalidation.""" + +import os +import pickle +from pathlib import Path +import tempfile +from typing import Dict, Iterable, Set, Tuple + +from platformdirs import user_cache_dir + +from black.mode import Mode + +from _black_version import version as __version__ + + +# types +Timestamp = float +FileSize = int +CacheInfo = Tuple[Timestamp, FileSize] +Cache = Dict[str, CacheInfo] + + +CACHE_DIR = Path(user_cache_dir("black", version=__version__)) + + +def read_cache(mode: Mode) -> Cache: + """Read the cache if it exists and is well formed. + + If it is not well formed, the call to write_cache later should resolve the issue. + """ + cache_file = get_cache_file(mode) + if not cache_file.exists(): + return {} + + with cache_file.open("rb") as fobj: + try: + cache: Cache = pickle.load(fobj) + except (pickle.UnpicklingError, ValueError): + return {} + + return cache + + +def get_cache_file(mode: Mode) -> Path: + return CACHE_DIR / f"cache.{mode.get_cache_key()}.pickle" + + +def get_cache_info(path: Path) -> CacheInfo: + """Return the information used to check if a file is already formatted or not.""" + stat = path.stat() + return stat.st_mtime, stat.st_size + + +def filter_cached(cache: Cache, sources: Iterable[Path]) -> Tuple[Set[Path], Set[Path]]: + """Split an iterable of paths in `sources` into two sets. + + The first contains paths of files that modified on disk or are not in the + cache. The other contains paths to non-modified files. + """ + todo, done = set(), set() + for src in sources: + res_src = src.resolve() + if cache.get(str(res_src)) != get_cache_info(res_src): + todo.add(src) + else: + done.add(src) + return todo, done + + +def write_cache(cache: Cache, sources: Iterable[Path], mode: Mode) -> None: + """Update the cache file.""" + cache_file = get_cache_file(mode) + try: + CACHE_DIR.mkdir(parents=True, exist_ok=True) + new_cache = { + **cache, + **{str(src.resolve()): get_cache_info(src) for src in sources}, + } + with tempfile.NamedTemporaryFile(dir=str(cache_file.parent), delete=False) as f: + pickle.dump(new_cache, f, protocol=4) + os.replace(f.name, cache_file) + except OSError: + pass diff --git a/.vim/bundle/black/src/black/comments.py b/.vim/bundle/black/src/black/comments.py new file mode 100644 index 0000000..c7513c2 --- /dev/null +++ b/.vim/bundle/black/src/black/comments.py @@ -0,0 +1,272 @@ +from dataclasses import dataclass +from functools import lru_cache +import regex as re +from typing import Iterator, List, Optional, Union + +from blib2to3.pytree import Node, Leaf +from blib2to3.pgen2 import token + +from black.nodes import first_leaf_column, preceding_leaf, container_of +from black.nodes import STANDALONE_COMMENT, WHITESPACE + +# types +LN = Union[Leaf, Node] + + +FMT_OFF = {"# fmt: off", "# fmt:off", "# yapf: disable"} +FMT_SKIP = {"# fmt: skip", "# fmt:skip"} +FMT_PASS = {*FMT_OFF, *FMT_SKIP} +FMT_ON = {"# fmt: on", "# fmt:on", "# yapf: enable"} + + +@dataclass +class ProtoComment: + """Describes a piece of syntax that is a comment. + + It's not a :class:`blib2to3.pytree.Leaf` so that: + + * it can be cached (`Leaf` objects should not be reused more than once as + they store their lineno, column, prefix, and parent information); + * `newlines` and `consumed` fields are kept separate from the `value`. This + simplifies handling of special marker comments like ``# fmt: off/on``. + """ + + type: int # token.COMMENT or STANDALONE_COMMENT + value: str # content of the comment + newlines: int # how many newlines before the comment + consumed: int # how many characters of the original leaf's prefix did we consume + + +def generate_comments(leaf: LN) -> Iterator[Leaf]: + """Clean the prefix of the `leaf` and generate comments from it, if any. + + Comments in lib2to3 are shoved into the whitespace prefix. This happens + in `pgen2/driver.py:Driver.parse_tokens()`. This was a brilliant implementation + move because it does away with modifying the grammar to include all the + possible places in which comments can be placed. + + The sad consequence for us though is that comments don't "belong" anywhere. + This is why this function generates simple parentless Leaf objects for + comments. We simply don't know what the correct parent should be. + + No matter though, we can live without this. We really only need to + differentiate between inline and standalone comments. The latter don't + share the line with any code. + + Inline comments are emitted as regular token.COMMENT leaves. Standalone + are emitted with a fake STANDALONE_COMMENT token identifier. + """ + for pc in list_comments(leaf.prefix, is_endmarker=leaf.type == token.ENDMARKER): + yield Leaf(pc.type, pc.value, prefix="\n" * pc.newlines) + + +@lru_cache(maxsize=4096) +def list_comments(prefix: str, *, is_endmarker: bool) -> List[ProtoComment]: + """Return a list of :class:`ProtoComment` objects parsed from the given `prefix`.""" + result: List[ProtoComment] = [] + if not prefix or "#" not in prefix: + return result + + consumed = 0 + nlines = 0 + ignored_lines = 0 + for index, line in enumerate(re.split("\r?\n", prefix)): + consumed += len(line) + 1 # adding the length of the split '\n' + line = line.lstrip() + if not line: + nlines += 1 + if not line.startswith("#"): + # Escaped newlines outside of a comment are not really newlines at + # all. We treat a single-line comment following an escaped newline + # as a simple trailing comment. + if line.endswith("\\"): + ignored_lines += 1 + continue + + if index == ignored_lines and not is_endmarker: + comment_type = token.COMMENT # simple trailing comment + else: + comment_type = STANDALONE_COMMENT + comment = make_comment(line) + result.append( + ProtoComment( + type=comment_type, value=comment, newlines=nlines, consumed=consumed + ) + ) + nlines = 0 + return result + + +def make_comment(content: str) -> str: + """Return a consistently formatted comment from the given `content` string. + + All comments (except for "##", "#!", "#:", '#'", "#%%") should have a single + space between the hash sign and the content. + + If `content` didn't start with a hash sign, one is provided. + """ + content = content.rstrip() + if not content: + return "#" + + if content[0] == "#": + content = content[1:] + NON_BREAKING_SPACE = " " + if ( + content + and content[0] == NON_BREAKING_SPACE + and not content.lstrip().startswith("type:") + ): + content = " " + content[1:] # Replace NBSP by a simple space + if content and content[0] not in " !:#'%": + content = " " + content + return "#" + content + + +def normalize_fmt_off(node: Node) -> None: + """Convert content between `# fmt: off`/`# fmt: on` into standalone comments.""" + try_again = True + while try_again: + try_again = convert_one_fmt_off_pair(node) + + +def convert_one_fmt_off_pair(node: Node) -> bool: + """Convert content of a single `# fmt: off`/`# fmt: on` into a standalone comment. + + Returns True if a pair was converted. + """ + for leaf in node.leaves(): + previous_consumed = 0 + for comment in list_comments(leaf.prefix, is_endmarker=False): + if comment.value not in FMT_PASS: + previous_consumed = comment.consumed + continue + # We only want standalone comments. If there's no previous leaf or + # the previous leaf is indentation, it's a standalone comment in + # disguise. + if comment.value in FMT_PASS and comment.type != STANDALONE_COMMENT: + prev = preceding_leaf(leaf) + if prev: + if comment.value in FMT_OFF and prev.type not in WHITESPACE: + continue + if comment.value in FMT_SKIP and prev.type in WHITESPACE: + continue + + ignored_nodes = list(generate_ignored_nodes(leaf, comment)) + if not ignored_nodes: + continue + + first = ignored_nodes[0] # Can be a container node with the `leaf`. + parent = first.parent + prefix = first.prefix + if comment.value in FMT_OFF: + first.prefix = prefix[comment.consumed :] + if comment.value in FMT_SKIP: + first.prefix = "" + hidden_value = "".join(str(n) for n in ignored_nodes) + if comment.value in FMT_OFF: + hidden_value = comment.value + "\n" + hidden_value + if comment.value in FMT_SKIP: + hidden_value += " " + comment.value + if hidden_value.endswith("\n"): + # That happens when one of the `ignored_nodes` ended with a NEWLINE + # leaf (possibly followed by a DEDENT). + hidden_value = hidden_value[:-1] + first_idx: Optional[int] = None + for ignored in ignored_nodes: + index = ignored.remove() + if first_idx is None: + first_idx = index + assert parent is not None, "INTERNAL ERROR: fmt: on/off handling (1)" + assert first_idx is not None, "INTERNAL ERROR: fmt: on/off handling (2)" + parent.insert_child( + first_idx, + Leaf( + STANDALONE_COMMENT, + hidden_value, + prefix=prefix[:previous_consumed] + "\n" * comment.newlines, + ), + ) + return True + + return False + + +def generate_ignored_nodes(leaf: Leaf, comment: ProtoComment) -> Iterator[LN]: + """Starting from the container of `leaf`, generate all leaves until `# fmt: on`. + + If comment is skip, returns leaf only. + Stops at the end of the block. + """ + container: Optional[LN] = container_of(leaf) + if comment.value in FMT_SKIP: + prev_sibling = leaf.prev_sibling + if comment.value in leaf.prefix and prev_sibling is not None: + leaf.prefix = leaf.prefix.replace(comment.value, "") + siblings = [prev_sibling] + while ( + "\n" not in prev_sibling.prefix + and prev_sibling.prev_sibling is not None + ): + prev_sibling = prev_sibling.prev_sibling + siblings.insert(0, prev_sibling) + for sibling in siblings: + yield sibling + elif leaf.parent is not None: + yield leaf.parent + return + while container is not None and container.type != token.ENDMARKER: + if is_fmt_on(container): + return + + # fix for fmt: on in children + if contains_fmt_on_at_column(container, leaf.column): + for child in container.children: + if contains_fmt_on_at_column(child, leaf.column): + return + yield child + else: + yield container + container = container.next_sibling + + +def is_fmt_on(container: LN) -> bool: + """Determine whether formatting is switched on within a container. + Determined by whether the last `# fmt:` comment is `on` or `off`. + """ + fmt_on = False + for comment in list_comments(container.prefix, is_endmarker=False): + if comment.value in FMT_ON: + fmt_on = True + elif comment.value in FMT_OFF: + fmt_on = False + return fmt_on + + +def contains_fmt_on_at_column(container: LN, column: int) -> bool: + """Determine if children at a given column have formatting switched on.""" + for child in container.children: + if ( + isinstance(child, Node) + and first_leaf_column(child) == column + or isinstance(child, Leaf) + and child.column == column + ): + if is_fmt_on(child): + return True + + return False + + +def contains_pragma_comment(comment_list: List[Leaf]) -> bool: + """ + Returns: + True iff one of the comments in @comment_list is a pragma used by one + of the more common static analysis tools for python (e.g. mypy, flake8, + pylint). + """ + for comment in comment_list: + if comment.value.startswith(("# type:", "# noqa", "# pylint:")): + return True + + return False diff --git a/.vim/bundle/black/src/black/concurrency.py b/.vim/bundle/black/src/black/concurrency.py new file mode 100644 index 0000000..69d79f5 --- /dev/null +++ b/.vim/bundle/black/src/black/concurrency.py @@ -0,0 +1,54 @@ +import asyncio +import logging +import sys +from typing import Any, Iterable + +from black.output import err + + +def maybe_install_uvloop() -> None: + """If our environment has uvloop installed we use it. + + This is called only from command-line entry points to avoid + interfering with the parent process if Black is used as a library. + + """ + try: + import uvloop + + uvloop.install() + except ImportError: + pass + + +def cancel(tasks: Iterable["asyncio.Task[Any]"]) -> None: + """asyncio signal handler that cancels all `tasks` and reports to stderr.""" + err("Aborted!") + for task in tasks: + task.cancel() + + +def shutdown(loop: asyncio.AbstractEventLoop) -> None: + """Cancel all pending tasks on `loop`, wait for them, and close the loop.""" + try: + if sys.version_info[:2] >= (3, 7): + all_tasks = asyncio.all_tasks + else: + all_tasks = asyncio.Task.all_tasks + # This part is borrowed from asyncio/runners.py in Python 3.7b2. + to_cancel = [task for task in all_tasks(loop) if not task.done()] + if not to_cancel: + return + + for task in to_cancel: + task.cancel() + loop.run_until_complete( + asyncio.gather(*to_cancel, loop=loop, return_exceptions=True) + ) + finally: + # `concurrent.futures.Future` objects cannot be cancelled once they + # are already running. There might be some when the `shutdown()` happened. + # Silence their logger's spew about the event loop being closed. + cf_logger = logging.getLogger("concurrent.futures") + cf_logger.setLevel(logging.CRITICAL) + loop.close() diff --git a/.vim/bundle/black/src/black/const.py b/.vim/bundle/black/src/black/const.py new file mode 100644 index 0000000..dbb4826 --- /dev/null +++ b/.vim/bundle/black/src/black/const.py @@ -0,0 +1,4 @@ +DEFAULT_LINE_LENGTH = 88 +DEFAULT_EXCLUDES = r"/(\.direnv|\.eggs|\.git|\.hg|\.mypy_cache|\.nox|\.tox|\.venv|venv|\.svn|_build|buck-out|build|dist)/" # noqa: B950 +DEFAULT_INCLUDES = r"(\.pyi?|\.ipynb)$" +STDIN_PLACEHOLDER = "__BLACK_STDIN_FILENAME__" diff --git a/.vim/bundle/black/src/black/debug.py b/.vim/bundle/black/src/black/debug.py new file mode 100644 index 0000000..5143076 --- /dev/null +++ b/.vim/bundle/black/src/black/debug.py @@ -0,0 +1,48 @@ +from dataclasses import dataclass +from typing import Iterator, TypeVar, Union + +from blib2to3.pytree import Node, Leaf, type_repr +from blib2to3.pgen2 import token + +from black.nodes import Visitor +from black.output import out +from black.parsing import lib2to3_parse + +LN = Union[Leaf, Node] +T = TypeVar("T") + + +@dataclass +class DebugVisitor(Visitor[T]): + tree_depth: int = 0 + + def visit_default(self, node: LN) -> Iterator[T]: + indent = " " * (2 * self.tree_depth) + if isinstance(node, Node): + _type = type_repr(node.type) + out(f"{indent}{_type}", fg="yellow") + self.tree_depth += 1 + for child in node.children: + yield from self.visit(child) + + self.tree_depth -= 1 + out(f"{indent}/{_type}", fg="yellow", bold=False) + else: + _type = token.tok_name.get(node.type, str(node.type)) + out(f"{indent}{_type}", fg="blue", nl=False) + if node.prefix: + # We don't have to handle prefixes for `Node` objects since + # that delegates to the first child anyway. + out(f" {node.prefix!r}", fg="green", bold=False, nl=False) + out(f" {node.value!r}", fg="blue", bold=False) + + @classmethod + def show(cls, code: Union[str, Leaf, Node]) -> None: + """Pretty-print the lib2to3 AST of a given string of `code`. + + Convenience method for debugging. + """ + v: DebugVisitor[None] = DebugVisitor() + if isinstance(code, str): + code = lib2to3_parse(code) + list(v.visit(code)) diff --git a/.vim/bundle/black/src/black/files.py b/.vim/bundle/black/src/black/files.py new file mode 100644 index 0000000..4d7b47a --- /dev/null +++ b/.vim/bundle/black/src/black/files.py @@ -0,0 +1,259 @@ +from functools import lru_cache +import io +import os +from pathlib import Path +import sys +from typing import ( + Any, + Dict, + Iterable, + Iterator, + List, + Optional, + Pattern, + Sequence, + Tuple, + Union, + TYPE_CHECKING, +) + +from pathspec import PathSpec +from pathspec.patterns.gitwildmatch import GitWildMatchPatternError +import tomli + +from black.output import err +from black.report import Report +from black.handle_ipynb_magics import jupyter_dependencies_are_installed + +if TYPE_CHECKING: + import colorama # noqa: F401 + + +@lru_cache() +def find_project_root(srcs: Sequence[str]) -> Path: + """Return a directory containing .git, .hg, or pyproject.toml. + + That directory will be a common parent of all files and directories + passed in `srcs`. + + If no directory in the tree contains a marker that would specify it's the + project root, the root of the file system is returned. + """ + if not srcs: + srcs = [str(Path.cwd().resolve())] + + path_srcs = [Path(Path.cwd(), src).resolve() for src in srcs] + + # A list of lists of parents for each 'src'. 'src' is included as a + # "parent" of itself if it is a directory + src_parents = [ + list(path.parents) + ([path] if path.is_dir() else []) for path in path_srcs + ] + + common_base = max( + set.intersection(*(set(parents) for parents in src_parents)), + key=lambda path: path.parts, + ) + + for directory in (common_base, *common_base.parents): + if (directory / ".git").exists(): + return directory + + if (directory / ".hg").is_dir(): + return directory + + if (directory / "pyproject.toml").is_file(): + return directory + + return directory + + +def find_pyproject_toml(path_search_start: Tuple[str, ...]) -> Optional[str]: + """Find the absolute filepath to a pyproject.toml if it exists""" + path_project_root = find_project_root(path_search_start) + path_pyproject_toml = path_project_root / "pyproject.toml" + if path_pyproject_toml.is_file(): + return str(path_pyproject_toml) + + try: + path_user_pyproject_toml = find_user_pyproject_toml() + return ( + str(path_user_pyproject_toml) + if path_user_pyproject_toml.is_file() + else None + ) + except PermissionError as e: + # We do not have access to the user-level config directory, so ignore it. + err(f"Ignoring user configuration directory due to {e!r}") + return None + + +def parse_pyproject_toml(path_config: str) -> Dict[str, Any]: + """Parse a pyproject toml file, pulling out relevant parts for Black + + If parsing fails, will raise a tomli.TOMLDecodeError + """ + with open(path_config, encoding="utf8") as f: + pyproject_toml = tomli.load(f) # type: ignore # due to deprecated API usage + config = pyproject_toml.get("tool", {}).get("black", {}) + return {k.replace("--", "").replace("-", "_"): v for k, v in config.items()} + + +@lru_cache() +def find_user_pyproject_toml() -> Path: + r"""Return the path to the top-level user configuration for black. + + This looks for ~\.black on Windows and ~/.config/black on Linux and other + Unix systems. + """ + if sys.platform == "win32": + # Windows + user_config_path = Path.home() / ".black" + else: + config_root = os.environ.get("XDG_CONFIG_HOME", "~/.config") + user_config_path = Path(config_root).expanduser() / "black" + return user_config_path.resolve() + + +@lru_cache() +def get_gitignore(root: Path) -> PathSpec: + """Return a PathSpec matching gitignore content if present.""" + gitignore = root / ".gitignore" + lines: List[str] = [] + if gitignore.is_file(): + with gitignore.open(encoding="utf-8") as gf: + lines = gf.readlines() + try: + return PathSpec.from_lines("gitwildmatch", lines) + except GitWildMatchPatternError as e: + err(f"Could not parse {gitignore}: {e}") + raise + + +def normalize_path_maybe_ignore( + path: Path, root: Path, report: Report +) -> Optional[str]: + """Normalize `path`. May return `None` if `path` was ignored. + + `report` is where "path ignored" output goes. + """ + try: + abspath = path if path.is_absolute() else Path.cwd() / path + normalized_path = abspath.resolve().relative_to(root).as_posix() + except OSError as e: + report.path_ignored(path, f"cannot be read because {e}") + return None + + except ValueError: + if path.is_symlink(): + report.path_ignored(path, f"is a symbolic link that points outside {root}") + return None + + raise + + return normalized_path + + +def path_is_excluded( + normalized_path: str, + pattern: Optional[Pattern[str]], +) -> bool: + match = pattern.search(normalized_path) if pattern else None + return bool(match and match.group(0)) + + +def gen_python_files( + paths: Iterable[Path], + root: Path, + include: Pattern[str], + exclude: Pattern[str], + extend_exclude: Optional[Pattern[str]], + force_exclude: Optional[Pattern[str]], + report: Report, + gitignore: Optional[PathSpec], + *, + verbose: bool, + quiet: bool, +) -> Iterator[Path]: + """Generate all files under `path` whose paths are not excluded by the + `exclude_regex`, `extend_exclude`, or `force_exclude` regexes, + but are included by the `include` regex. + + Symbolic links pointing outside of the `root` directory are ignored. + + `report` is where output about exclusions goes. + """ + assert root.is_absolute(), f"INTERNAL ERROR: `root` must be absolute but is {root}" + for child in paths: + normalized_path = normalize_path_maybe_ignore(child, root, report) + if normalized_path is None: + continue + + # First ignore files matching .gitignore, if passed + if gitignore is not None and gitignore.match_file(normalized_path): + report.path_ignored(child, "matches the .gitignore file content") + continue + + # Then ignore with `--exclude` `--extend-exclude` and `--force-exclude` options. + normalized_path = "/" + normalized_path + if child.is_dir(): + normalized_path += "/" + + if path_is_excluded(normalized_path, exclude): + report.path_ignored(child, "matches the --exclude regular expression") + continue + + if path_is_excluded(normalized_path, extend_exclude): + report.path_ignored( + child, "matches the --extend-exclude regular expression" + ) + continue + + if path_is_excluded(normalized_path, force_exclude): + report.path_ignored(child, "matches the --force-exclude regular expression") + continue + + if child.is_dir(): + # If gitignore is None, gitignore usage is disabled, while a Falsey + # gitignore is when the directory doesn't have a .gitignore file. + yield from gen_python_files( + child.iterdir(), + root, + include, + exclude, + extend_exclude, + force_exclude, + report, + gitignore + get_gitignore(child) if gitignore is not None else None, + verbose=verbose, + quiet=quiet, + ) + + elif child.is_file(): + if child.suffix == ".ipynb" and not jupyter_dependencies_are_installed( + verbose=verbose, quiet=quiet + ): + continue + include_match = include.search(normalized_path) if include else True + if include_match: + yield child + + +def wrap_stream_for_windows( + f: io.TextIOWrapper, +) -> Union[io.TextIOWrapper, "colorama.AnsiToWin32"]: + """ + Wrap stream with colorama's wrap_stream so colors are shown on Windows. + + If `colorama` is unavailable, the original stream is returned unmodified. + Otherwise, the `wrap_stream()` function determines whether the stream needs + to be wrapped for a Windows environment and will accordingly either return + an `AnsiToWin32` wrapper or the original stream. + """ + try: + from colorama.initialise import wrap_stream + except ImportError: + return f + else: + # Set `strip=False` to avoid needing to modify test_express_diff_with_color. + return wrap_stream(f, convert=None, strip=False, autoreset=False, wrap=True) diff --git a/.vim/bundle/black/src/black/handle_ipynb_magics.py b/.vim/bundle/black/src/black/handle_ipynb_magics.py new file mode 100644 index 0000000..63c8aaf --- /dev/null +++ b/.vim/bundle/black/src/black/handle_ipynb_magics.py @@ -0,0 +1,462 @@ +"""Functions to process IPython magics with.""" + +from functools import lru_cache +import dataclasses +import ast +from typing import Dict, List, Tuple, Optional + +import secrets +import sys +import collections + +if sys.version_info >= (3, 10): + from typing import TypeGuard +else: + from typing_extensions import TypeGuard + +from black.report import NothingChanged +from black.output import out + + +TRANSFORMED_MAGICS = frozenset( + ( + "get_ipython().run_cell_magic", + "get_ipython().system", + "get_ipython().getoutput", + "get_ipython().run_line_magic", + ) +) +TOKENS_TO_IGNORE = frozenset( + ( + "ENDMARKER", + "NL", + "NEWLINE", + "COMMENT", + "DEDENT", + "UNIMPORTANT_WS", + "ESCAPED_NL", + ) +) +NON_PYTHON_CELL_MAGICS = frozenset( + ( + "%%bash", + "%%html", + "%%javascript", + "%%js", + "%%latex", + "%%markdown", + "%%perl", + "%%ruby", + "%%script", + "%%sh", + "%%svg", + "%%writefile", + ) +) +TOKEN_HEX = secrets.token_hex + + +@dataclasses.dataclass(frozen=True) +class Replacement: + mask: str + src: str + + +@lru_cache() +def jupyter_dependencies_are_installed(*, verbose: bool, quiet: bool) -> bool: + try: + import IPython # noqa:F401 + import tokenize_rt # noqa:F401 + except ModuleNotFoundError: + if verbose or not quiet: + msg = ( + "Skipping .ipynb files as Jupyter dependencies are not installed.\n" + "You can fix this by running ``pip install black[jupyter]``" + ) + out(msg) + return False + else: + return True + + +def remove_trailing_semicolon(src: str) -> Tuple[str, bool]: + """Remove trailing semicolon from Jupyter notebook cell. + + For example, + + fig, ax = plt.subplots() + ax.plot(x_data, y_data); # plot data + + would become + + fig, ax = plt.subplots() + ax.plot(x_data, y_data) # plot data + + Mirrors the logic in `quiet` from `IPython.core.displayhook`, but uses + ``tokenize_rt`` so that round-tripping works fine. + """ + from tokenize_rt import ( + src_to_tokens, + tokens_to_src, + reversed_enumerate, + ) + + tokens = src_to_tokens(src) + trailing_semicolon = False + for idx, token in reversed_enumerate(tokens): + if token.name in TOKENS_TO_IGNORE: + continue + if token.name == "OP" and token.src == ";": + del tokens[idx] + trailing_semicolon = True + break + if not trailing_semicolon: + return src, False + return tokens_to_src(tokens), True + + +def put_trailing_semicolon_back(src: str, has_trailing_semicolon: bool) -> str: + """Put trailing semicolon back if cell originally had it. + + Mirrors the logic in `quiet` from `IPython.core.displayhook`, but uses + ``tokenize_rt`` so that round-tripping works fine. + """ + if not has_trailing_semicolon: + return src + from tokenize_rt import src_to_tokens, tokens_to_src, reversed_enumerate + + tokens = src_to_tokens(src) + for idx, token in reversed_enumerate(tokens): + if token.name in TOKENS_TO_IGNORE: + continue + tokens[idx] = token._replace(src=token.src + ";") + break + else: # pragma: nocover + raise AssertionError( + "INTERNAL ERROR: Was not able to reinstate trailing semicolon. " + "Please report a bug on https://github.com/psf/black/issues. " + ) from None + return str(tokens_to_src(tokens)) + + +def mask_cell(src: str) -> Tuple[str, List[Replacement]]: + """Mask IPython magics so content becomes parseable Python code. + + For example, + + %matplotlib inline + 'foo' + + becomes + + "25716f358c32750e" + 'foo' + + The replacements are returned, along with the transformed code. + """ + replacements: List[Replacement] = [] + try: + ast.parse(src) + except SyntaxError: + # Might have IPython magics, will process below. + pass + else: + # Syntax is fine, nothing to mask, early return. + return src, replacements + + from IPython.core.inputtransformer2 import TransformerManager + + transformer_manager = TransformerManager() + transformed = transformer_manager.transform_cell(src) + transformed, cell_magic_replacements = replace_cell_magics(transformed) + replacements += cell_magic_replacements + transformed = transformer_manager.transform_cell(transformed) + transformed, magic_replacements = replace_magics(transformed) + if len(transformed.splitlines()) != len(src.splitlines()): + # Multi-line magic, not supported. + raise NothingChanged + replacements += magic_replacements + return transformed, replacements + + +def get_token(src: str, magic: str) -> str: + """Return randomly generated token to mask IPython magic with. + + For example, if 'magic' was `%matplotlib inline`, then a possible + token to mask it with would be `"43fdd17f7e5ddc83"`. The token + will be the same length as the magic, and we make sure that it was + not already present anywhere else in the cell. + """ + assert magic + nbytes = max(len(magic) // 2 - 1, 1) + token = TOKEN_HEX(nbytes) + counter = 0 + while token in src: + token = TOKEN_HEX(nbytes) + counter += 1 + if counter > 100: + raise AssertionError( + "INTERNAL ERROR: Black was not able to replace IPython magic. " + "Please report a bug on https://github.com/psf/black/issues. " + f"The magic might be helpful: {magic}" + ) from None + if len(token) + 2 < len(magic): + token = f"{token}." + return f'"{token}"' + + +def replace_cell_magics(src: str) -> Tuple[str, List[Replacement]]: + """Replace cell magic with token. + + Note that 'src' will already have been processed by IPython's + TransformerManager().transform_cell. + + Example, + + get_ipython().run_cell_magic('t', '-n1', 'ls =!ls\\n') + + becomes + + "a794." + ls =!ls + + The replacement, along with the transformed code, is returned. + """ + replacements: List[Replacement] = [] + + tree = ast.parse(src) + + cell_magic_finder = CellMagicFinder() + cell_magic_finder.visit(tree) + if cell_magic_finder.cell_magic is None: + return src, replacements + if cell_magic_finder.cell_magic.header.split()[0] in NON_PYTHON_CELL_MAGICS: + raise NothingChanged + mask = get_token(src, cell_magic_finder.cell_magic.header) + replacements.append(Replacement(mask=mask, src=cell_magic_finder.cell_magic.header)) + return f"{mask}\n{cell_magic_finder.cell_magic.body}", replacements + + +def replace_magics(src: str) -> Tuple[str, List[Replacement]]: + """Replace magics within body of cell. + + Note that 'src' will already have been processed by IPython's + TransformerManager().transform_cell. + + Example, this + + get_ipython().run_line_magic('matplotlib', 'inline') + 'foo' + + becomes + + "5e67db56d490fd39" + 'foo' + + The replacement, along with the transformed code, are returned. + """ + replacements = [] + magic_finder = MagicFinder() + magic_finder.visit(ast.parse(src)) + new_srcs = [] + for i, line in enumerate(src.splitlines(), start=1): + if i in magic_finder.magics: + offsets_and_magics = magic_finder.magics[i] + if len(offsets_and_magics) != 1: # pragma: nocover + raise AssertionError( + f"Expecting one magic per line, got: {offsets_and_magics}\n" + "Please report a bug on https://github.com/psf/black/issues." + ) + col_offset, magic = ( + offsets_and_magics[0].col_offset, + offsets_and_magics[0].magic, + ) + mask = get_token(src, magic) + replacements.append(Replacement(mask=mask, src=magic)) + line = line[:col_offset] + mask + new_srcs.append(line) + return "\n".join(new_srcs), replacements + + +def unmask_cell(src: str, replacements: List[Replacement]) -> str: + """Remove replacements from cell. + + For example + + "9b20" + foo = bar + + becomes + + %%time + foo = bar + """ + for replacement in replacements: + src = src.replace(replacement.mask, replacement.src) + return src + + +def _is_ipython_magic(node: ast.expr) -> TypeGuard[ast.Attribute]: + """Check if attribute is IPython magic. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + """ + return ( + isinstance(node, ast.Attribute) + and isinstance(node.value, ast.Call) + and isinstance(node.value.func, ast.Name) + and node.value.func.id == "get_ipython" + ) + + +@dataclasses.dataclass(frozen=True) +class CellMagic: + header: str + body: str + + +@dataclasses.dataclass +class CellMagicFinder(ast.NodeVisitor): + """Find cell magics. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + + For example, + + %%time\nfoo() + + would have been transformed to + + get_ipython().run_cell_magic('time', '', 'foo()\\n') + + and we look for instances of the latter. + """ + + cell_magic: Optional[CellMagic] = None + + def visit_Expr(self, node: ast.Expr) -> None: + """Find cell magic, extract header and body.""" + if ( + isinstance(node.value, ast.Call) + and _is_ipython_magic(node.value.func) + and node.value.func.attr == "run_cell_magic" + ): + args = [] + for arg in node.value.args: + assert isinstance(arg, ast.Str) + args.append(arg.s) + header = f"%%{args[0]}" + if args[1]: + header += f" {args[1]}" + self.cell_magic = CellMagic(header=header, body=args[2]) + self.generic_visit(node) + + +@dataclasses.dataclass(frozen=True) +class OffsetAndMagic: + col_offset: int + magic: str + + +@dataclasses.dataclass +class MagicFinder(ast.NodeVisitor): + """Visit cell to look for get_ipython calls. + + Note that the source of the abstract syntax tree + will already have been processed by IPython's + TransformerManager().transform_cell. + + For example, + + %matplotlib inline + + would have been transformed to + + get_ipython().run_line_magic('matplotlib', 'inline') + + and we look for instances of the latter (and likewise for other + types of magics). + """ + + magics: Dict[int, List[OffsetAndMagic]] = dataclasses.field( + default_factory=lambda: collections.defaultdict(list) + ) + + def visit_Assign(self, node: ast.Assign) -> None: + """Look for system assign magics. + + For example, + + black_version = !black --version + + would have been transformed to + + black_version = get_ipython().getoutput('black --version') + + and we look for instances of the latter. + """ + if ( + isinstance(node.value, ast.Call) + and _is_ipython_magic(node.value.func) + and node.value.func.attr == "getoutput" + ): + args = [] + for arg in node.value.args: + assert isinstance(arg, ast.Str) + args.append(arg.s) + assert args + src = f"!{args[0]}" + self.magics[node.value.lineno].append( + OffsetAndMagic(node.value.col_offset, src) + ) + self.generic_visit(node) + + def visit_Expr(self, node: ast.Expr) -> None: + """Look for magics in body of cell. + + For examples, + + !ls + !!ls + ?ls + ??ls + + would (respectively) get transformed to + + get_ipython().system('ls') + get_ipython().getoutput('ls') + get_ipython().run_line_magic('pinfo', 'ls') + get_ipython().run_line_magic('pinfo2', 'ls') + + and we look for instances of any of the latter. + """ + if isinstance(node.value, ast.Call) and _is_ipython_magic(node.value.func): + args = [] + for arg in node.value.args: + assert isinstance(arg, ast.Str) + args.append(arg.s) + assert args + if node.value.func.attr == "run_line_magic": + if args[0] == "pinfo": + src = f"?{args[1]}" + elif args[0] == "pinfo2": + src = f"??{args[1]}" + else: + src = f"%{args[0]}" + if args[1]: + assert src is not None + src += f" {args[1]}" + elif node.value.func.attr == "system": + src = f"!{args[0]}" + elif node.value.func.attr == "getoutput": + src = f"!!{args[0]}" + else: + raise NothingChanged # unsupported magic. + self.magics[node.value.lineno].append( + OffsetAndMagic(node.value.col_offset, src) + ) + self.generic_visit(node) diff --git a/.vim/bundle/black/src/black/linegen.py b/.vim/bundle/black/src/black/linegen.py new file mode 100644 index 0000000..eb53fa0 --- /dev/null +++ b/.vim/bundle/black/src/black/linegen.py @@ -0,0 +1,1004 @@ +""" +Generating lines of code. +""" +from functools import partial, wraps +import sys +from typing import Collection, Iterator, List, Optional, Set, Union + +from dataclasses import dataclass, field + +from black.nodes import WHITESPACE, RARROW, STATEMENT, STANDALONE_COMMENT +from black.nodes import ASSIGNMENTS, OPENING_BRACKETS, CLOSING_BRACKETS +from black.nodes import Visitor, syms, first_child_is_arith, ensure_visible +from black.nodes import is_docstring, is_empty_tuple, is_one_tuple, is_one_tuple_between +from black.nodes import is_walrus_assignment, is_yield, is_vararg, is_multiline_string +from black.nodes import is_stub_suite, is_stub_body, is_atom_with_invisible_parens +from black.nodes import wrap_in_parentheses +from black.brackets import max_delimiter_priority_in_atom +from black.brackets import DOT_PRIORITY, COMMA_PRIORITY +from black.lines import Line, line_to_string, is_line_short_enough +from black.lines import can_omit_invisible_parens, can_be_split, append_leaves +from black.comments import generate_comments, list_comments, FMT_OFF +from black.numerics import normalize_numeric_literal +from black.strings import get_string_prefix, fix_docstring +from black.strings import normalize_string_prefix, normalize_string_quotes +from black.trans import Transformer, CannotTransform, StringMerger +from black.trans import StringSplitter, StringParenWrapper, StringParenStripper +from black.mode import Mode +from black.mode import Feature + +from blib2to3.pytree import Node, Leaf +from blib2to3.pgen2 import token + + +# types +LeafID = int +LN = Union[Leaf, Node] + + +class CannotSplit(CannotTransform): + """A readable split that fits the allotted line length is impossible.""" + + +@dataclass +class LineGenerator(Visitor[Line]): + """Generates reformatted Line objects. Empty lines are not emitted. + + Note: destroys the tree it's visiting by mutating prefixes of its leaves + in ways that will no longer stringify to valid Python code on the tree. + """ + + mode: Mode + remove_u_prefix: bool = False + current_line: Line = field(init=False) + + def line(self, indent: int = 0) -> Iterator[Line]: + """Generate a line. + + If the line is empty, only emit if it makes sense. + If the line is too long, split it first and then generate. + + If any lines were generated, set up a new current_line. + """ + if not self.current_line: + self.current_line.depth += indent + return # Line is empty, don't emit. Creating a new one unnecessary. + + complete_line = self.current_line + self.current_line = Line(mode=self.mode, depth=complete_line.depth + indent) + yield complete_line + + def visit_default(self, node: LN) -> Iterator[Line]: + """Default `visit_*()` implementation. Recurses to children of `node`.""" + if isinstance(node, Leaf): + any_open_brackets = self.current_line.bracket_tracker.any_open_brackets() + for comment in generate_comments(node): + if any_open_brackets: + # any comment within brackets is subject to splitting + self.current_line.append(comment) + elif comment.type == token.COMMENT: + # regular trailing comment + self.current_line.append(comment) + yield from self.line() + + else: + # regular standalone comment + yield from self.line() + + self.current_line.append(comment) + yield from self.line() + + normalize_prefix(node, inside_brackets=any_open_brackets) + if self.mode.string_normalization and node.type == token.STRING: + node.value = normalize_string_prefix( + node.value, remove_u_prefix=self.remove_u_prefix + ) + node.value = normalize_string_quotes(node.value) + if node.type == token.NUMBER: + normalize_numeric_literal(node) + if node.type not in WHITESPACE: + self.current_line.append(node) + yield from super().visit_default(node) + + def visit_INDENT(self, node: Leaf) -> Iterator[Line]: + """Increase indentation level, maybe yield a line.""" + # In blib2to3 INDENT never holds comments. + yield from self.line(+1) + yield from self.visit_default(node) + + def visit_DEDENT(self, node: Leaf) -> Iterator[Line]: + """Decrease indentation level, maybe yield a line.""" + # The current line might still wait for trailing comments. At DEDENT time + # there won't be any (they would be prefixes on the preceding NEWLINE). + # Emit the line then. + yield from self.line() + + # While DEDENT has no value, its prefix may contain standalone comments + # that belong to the current indentation level. Get 'em. + yield from self.visit_default(node) + + # Finally, emit the dedent. + yield from self.line(-1) + + def visit_stmt( + self, node: Node, keywords: Set[str], parens: Set[str] + ) -> Iterator[Line]: + """Visit a statement. + + This implementation is shared for `if`, `while`, `for`, `try`, `except`, + `def`, `with`, `class`, `assert` and assignments. + + The relevant Python language `keywords` for a given statement will be + NAME leaves within it. This methods puts those on a separate line. + + `parens` holds a set of string leaf values immediately after which + invisible parens should be put. + """ + normalize_invisible_parens(node, parens_after=parens) + for child in node.children: + if child.type == token.NAME and child.value in keywords: # type: ignore + yield from self.line() + + yield from self.visit(child) + + def visit_suite(self, node: Node) -> Iterator[Line]: + """Visit a suite.""" + if self.mode.is_pyi and is_stub_suite(node): + yield from self.visit(node.children[2]) + else: + yield from self.visit_default(node) + + def visit_simple_stmt(self, node: Node) -> Iterator[Line]: + """Visit a statement without nested statements.""" + if first_child_is_arith(node): + wrap_in_parentheses(node, node.children[0], visible=False) + is_suite_like = node.parent and node.parent.type in STATEMENT + if is_suite_like: + if self.mode.is_pyi and is_stub_body(node): + yield from self.visit_default(node) + else: + yield from self.line(+1) + yield from self.visit_default(node) + yield from self.line(-1) + + else: + if ( + not self.mode.is_pyi + or not node.parent + or not is_stub_suite(node.parent) + ): + yield from self.line() + yield from self.visit_default(node) + + def visit_async_stmt(self, node: Node) -> Iterator[Line]: + """Visit `async def`, `async for`, `async with`.""" + yield from self.line() + + children = iter(node.children) + for child in children: + yield from self.visit(child) + + if child.type == token.ASYNC: + break + + internal_stmt = next(children) + for child in internal_stmt.children: + yield from self.visit(child) + + def visit_decorators(self, node: Node) -> Iterator[Line]: + """Visit decorators.""" + for child in node.children: + yield from self.line() + yield from self.visit(child) + + def visit_SEMI(self, leaf: Leaf) -> Iterator[Line]: + """Remove a semicolon and put the other statement on a separate line.""" + yield from self.line() + + def visit_ENDMARKER(self, leaf: Leaf) -> Iterator[Line]: + """End of file. Process outstanding comments and end with a newline.""" + yield from self.visit_default(leaf) + yield from self.line() + + def visit_STANDALONE_COMMENT(self, leaf: Leaf) -> Iterator[Line]: + if not self.current_line.bracket_tracker.any_open_brackets(): + yield from self.line() + yield from self.visit_default(leaf) + + def visit_factor(self, node: Node) -> Iterator[Line]: + """Force parentheses between a unary op and a binary power: + + -2 ** 8 -> -(2 ** 8) + """ + _operator, operand = node.children + if ( + operand.type == syms.power + and len(operand.children) == 3 + and operand.children[1].type == token.DOUBLESTAR + ): + lpar = Leaf(token.LPAR, "(") + rpar = Leaf(token.RPAR, ")") + index = operand.remove() or 0 + node.insert_child(index, Node(syms.atom, [lpar, operand, rpar])) + yield from self.visit_default(node) + + def visit_STRING(self, leaf: Leaf) -> Iterator[Line]: + if is_docstring(leaf) and "\\\n" not in leaf.value: + # We're ignoring docstrings with backslash newline escapes because changing + # indentation of those changes the AST representation of the code. + docstring = normalize_string_prefix(leaf.value, self.remove_u_prefix) + prefix = get_string_prefix(docstring) + docstring = docstring[len(prefix) :] # Remove the prefix + quote_char = docstring[0] + # A natural way to remove the outer quotes is to do: + # docstring = docstring.strip(quote_char) + # but that breaks on """""x""" (which is '""x'). + # So we actually need to remove the first character and the next two + # characters but only if they are the same as the first. + quote_len = 1 if docstring[1] != quote_char else 3 + docstring = docstring[quote_len:-quote_len] + docstring_started_empty = not docstring + + if is_multiline_string(leaf): + indent = " " * 4 * self.current_line.depth + docstring = fix_docstring(docstring, indent) + else: + docstring = docstring.strip() + + if docstring: + # Add some padding if the docstring starts / ends with a quote mark. + if docstring[0] == quote_char: + docstring = " " + docstring + if docstring[-1] == quote_char: + docstring += " " + if docstring[-1] == "\\": + backslash_count = len(docstring) - len(docstring.rstrip("\\")) + if backslash_count % 2: + # Odd number of tailing backslashes, add some padding to + # avoid escaping the closing string quote. + docstring += " " + elif not docstring_started_empty: + docstring = " " + + # We could enforce triple quotes at this point. + quote = quote_char * quote_len + leaf.value = prefix + quote + docstring + quote + + yield from self.visit_default(leaf) + + def __post_init__(self) -> None: + """You are in a twisty little maze of passages.""" + self.current_line = Line(mode=self.mode) + + v = self.visit_stmt + Ø: Set[str] = set() + self.visit_assert_stmt = partial(v, keywords={"assert"}, parens={"assert", ","}) + self.visit_if_stmt = partial( + v, keywords={"if", "else", "elif"}, parens={"if", "elif"} + ) + self.visit_while_stmt = partial(v, keywords={"while", "else"}, parens={"while"}) + self.visit_for_stmt = partial(v, keywords={"for", "else"}, parens={"for", "in"}) + self.visit_try_stmt = partial( + v, keywords={"try", "except", "else", "finally"}, parens=Ø + ) + self.visit_except_clause = partial(v, keywords={"except"}, parens=Ø) + self.visit_with_stmt = partial(v, keywords={"with"}, parens=Ø) + self.visit_funcdef = partial(v, keywords={"def"}, parens=Ø) + self.visit_classdef = partial(v, keywords={"class"}, parens=Ø) + self.visit_expr_stmt = partial(v, keywords=Ø, parens=ASSIGNMENTS) + self.visit_return_stmt = partial(v, keywords={"return"}, parens={"return"}) + self.visit_import_from = partial(v, keywords=Ø, parens={"import"}) + self.visit_del_stmt = partial(v, keywords=Ø, parens={"del"}) + self.visit_async_funcdef = self.visit_async_stmt + self.visit_decorated = self.visit_decorators + + +def transform_line( + line: Line, mode: Mode, features: Collection[Feature] = () +) -> Iterator[Line]: + """Transform a `line`, potentially splitting it into many lines. + + They should fit in the allotted `line_length` but might not be able to. + + `features` are syntactical features that may be used in the output. + """ + if line.is_comment: + yield line + return + + line_str = line_to_string(line) + + ll = mode.line_length + sn = mode.string_normalization + string_merge = StringMerger(ll, sn) + string_paren_strip = StringParenStripper(ll, sn) + string_split = StringSplitter(ll, sn) + string_paren_wrap = StringParenWrapper(ll, sn) + + transformers: List[Transformer] + if ( + not line.contains_uncollapsable_type_comments() + and not line.should_split_rhs + and not line.magic_trailing_comma + and ( + is_line_short_enough(line, line_length=mode.line_length, line_str=line_str) + or line.contains_unsplittable_type_ignore() + ) + and not (line.inside_brackets and line.contains_standalone_comments()) + ): + # Only apply basic string preprocessing, since lines shouldn't be split here. + if mode.experimental_string_processing: + transformers = [string_merge, string_paren_strip] + else: + transformers = [] + elif line.is_def: + transformers = [left_hand_split] + else: + + def rhs(line: Line, features: Collection[Feature]) -> Iterator[Line]: + """Wraps calls to `right_hand_split`. + + The calls increasingly `omit` right-hand trailers (bracket pairs with + content), meaning the trailers get glued together to split on another + bracket pair instead. + """ + for omit in generate_trailers_to_omit(line, mode.line_length): + lines = list( + right_hand_split(line, mode.line_length, features, omit=omit) + ) + # Note: this check is only able to figure out if the first line of the + # *current* transformation fits in the line length. This is true only + # for simple cases. All others require running more transforms via + # `transform_line()`. This check doesn't know if those would succeed. + if is_line_short_enough(lines[0], line_length=mode.line_length): + yield from lines + return + + # All splits failed, best effort split with no omits. + # This mostly happens to multiline strings that are by definition + # reported as not fitting a single line, as well as lines that contain + # trailing commas (those have to be exploded). + yield from right_hand_split( + line, line_length=mode.line_length, features=features + ) + + if mode.experimental_string_processing: + if line.inside_brackets: + transformers = [ + string_merge, + string_paren_strip, + string_split, + delimiter_split, + standalone_comment_split, + string_paren_wrap, + rhs, + ] + else: + transformers = [ + string_merge, + string_paren_strip, + string_split, + string_paren_wrap, + rhs, + ] + else: + if line.inside_brackets: + transformers = [delimiter_split, standalone_comment_split, rhs] + else: + transformers = [rhs] + + for transform in transformers: + # We are accumulating lines in `result` because we might want to abort + # mission and return the original line in the end, or attempt a different + # split altogether. + try: + result = run_transformer(line, transform, mode, features, line_str=line_str) + except CannotTransform: + continue + else: + yield from result + break + + else: + yield line + + +def left_hand_split(line: Line, _features: Collection[Feature] = ()) -> Iterator[Line]: + """Split line into many lines, starting with the first matching bracket pair. + + Note: this usually looks weird, only use this for function definitions. + Prefer RHS otherwise. This is why this function is not symmetrical with + :func:`right_hand_split` which also handles optional parentheses. + """ + tail_leaves: List[Leaf] = [] + body_leaves: List[Leaf] = [] + head_leaves: List[Leaf] = [] + current_leaves = head_leaves + matching_bracket: Optional[Leaf] = None + for leaf in line.leaves: + if ( + current_leaves is body_leaves + and leaf.type in CLOSING_BRACKETS + and leaf.opening_bracket is matching_bracket + ): + current_leaves = tail_leaves if body_leaves else head_leaves + current_leaves.append(leaf) + if current_leaves is head_leaves: + if leaf.type in OPENING_BRACKETS: + matching_bracket = leaf + current_leaves = body_leaves + if not matching_bracket: + raise CannotSplit("No brackets found") + + head = bracket_split_build_line(head_leaves, line, matching_bracket) + body = bracket_split_build_line(body_leaves, line, matching_bracket, is_body=True) + tail = bracket_split_build_line(tail_leaves, line, matching_bracket) + bracket_split_succeeded_or_raise(head, body, tail) + for result in (head, body, tail): + if result: + yield result + + +def right_hand_split( + line: Line, + line_length: int, + features: Collection[Feature] = (), + omit: Collection[LeafID] = (), +) -> Iterator[Line]: + """Split line into many lines, starting with the last matching bracket pair. + + If the split was by optional parentheses, attempt splitting without them, too. + `omit` is a collection of closing bracket IDs that shouldn't be considered for + this split. + + Note: running this function modifies `bracket_depth` on the leaves of `line`. + """ + tail_leaves: List[Leaf] = [] + body_leaves: List[Leaf] = [] + head_leaves: List[Leaf] = [] + current_leaves = tail_leaves + opening_bracket: Optional[Leaf] = None + closing_bracket: Optional[Leaf] = None + for leaf in reversed(line.leaves): + if current_leaves is body_leaves: + if leaf is opening_bracket: + current_leaves = head_leaves if body_leaves else tail_leaves + current_leaves.append(leaf) + if current_leaves is tail_leaves: + if leaf.type in CLOSING_BRACKETS and id(leaf) not in omit: + opening_bracket = leaf.opening_bracket + closing_bracket = leaf + current_leaves = body_leaves + if not (opening_bracket and closing_bracket and head_leaves): + # If there is no opening or closing_bracket that means the split failed and + # all content is in the tail. Otherwise, if `head_leaves` are empty, it means + # the matching `opening_bracket` wasn't available on `line` anymore. + raise CannotSplit("No brackets found") + + tail_leaves.reverse() + body_leaves.reverse() + head_leaves.reverse() + head = bracket_split_build_line(head_leaves, line, opening_bracket) + body = bracket_split_build_line(body_leaves, line, opening_bracket, is_body=True) + tail = bracket_split_build_line(tail_leaves, line, opening_bracket) + bracket_split_succeeded_or_raise(head, body, tail) + if ( + Feature.FORCE_OPTIONAL_PARENTHESES not in features + # the opening bracket is an optional paren + and opening_bracket.type == token.LPAR + and not opening_bracket.value + # the closing bracket is an optional paren + and closing_bracket.type == token.RPAR + and not closing_bracket.value + # it's not an import (optional parens are the only thing we can split on + # in this case; attempting a split without them is a waste of time) + and not line.is_import + # there are no standalone comments in the body + and not body.contains_standalone_comments(0) + # and we can actually remove the parens + and can_omit_invisible_parens(body, line_length, omit_on_explode=omit) + ): + omit = {id(closing_bracket), *omit} + try: + yield from right_hand_split(line, line_length, features=features, omit=omit) + return + + except CannotSplit as e: + if not ( + can_be_split(body) + or is_line_short_enough(body, line_length=line_length) + ): + raise CannotSplit( + "Splitting failed, body is still too long and can't be split." + ) from e + + elif head.contains_multiline_strings() or tail.contains_multiline_strings(): + raise CannotSplit( + "The current optional pair of parentheses is bound to fail to" + " satisfy the splitting algorithm because the head or the tail" + " contains multiline strings which by definition never fit one" + " line." + ) from e + + ensure_visible(opening_bracket) + ensure_visible(closing_bracket) + for result in (head, body, tail): + if result: + yield result + + +def bracket_split_succeeded_or_raise(head: Line, body: Line, tail: Line) -> None: + """Raise :exc:`CannotSplit` if the last left- or right-hand split failed. + + Do nothing otherwise. + + A left- or right-hand split is based on a pair of brackets. Content before + (and including) the opening bracket is left on one line, content inside the + brackets is put on a separate line, and finally content starting with and + following the closing bracket is put on a separate line. + + Those are called `head`, `body`, and `tail`, respectively. If the split + produced the same line (all content in `head`) or ended up with an empty `body` + and the `tail` is just the closing bracket, then it's considered failed. + """ + tail_len = len(str(tail).strip()) + if not body: + if tail_len == 0: + raise CannotSplit("Splitting brackets produced the same line") + + elif tail_len < 3: + raise CannotSplit( + f"Splitting brackets on an empty body to save {tail_len} characters is" + " not worth it" + ) + + +def bracket_split_build_line( + leaves: List[Leaf], original: Line, opening_bracket: Leaf, *, is_body: bool = False +) -> Line: + """Return a new line with given `leaves` and respective comments from `original`. + + If `is_body` is True, the result line is one-indented inside brackets and as such + has its first leaf's prefix normalized and a trailing comma added when expected. + """ + result = Line(mode=original.mode, depth=original.depth) + if is_body: + result.inside_brackets = True + result.depth += 1 + if leaves: + # Since body is a new indent level, remove spurious leading whitespace. + normalize_prefix(leaves[0], inside_brackets=True) + # Ensure a trailing comma for imports and standalone function arguments, but + # be careful not to add one after any comments or within type annotations. + no_commas = ( + original.is_def + and opening_bracket.value == "(" + and not any(leaf.type == token.COMMA for leaf in leaves) + # In particular, don't add one within a parenthesized return annotation. + # Unfortunately the indicator we're in a return annotation (RARROW) may + # be defined directly in the parent node, the parent of the parent ... + # and so on depending on how complex the return annotation is. + # This isn't perfect and there's some false negatives but they are in + # contexts were a comma is actually fine. + and not any( + node.prev_sibling.type == RARROW + for node in ( + leaves[0].parent, + getattr(leaves[0].parent, "parent", None), + ) + if isinstance(node, Node) and isinstance(node.prev_sibling, Leaf) + ) + ) + + if original.is_import or no_commas: + for i in range(len(leaves) - 1, -1, -1): + if leaves[i].type == STANDALONE_COMMENT: + continue + + if leaves[i].type != token.COMMA: + new_comma = Leaf(token.COMMA, ",") + leaves.insert(i + 1, new_comma) + break + + # Populate the line + for leaf in leaves: + result.append(leaf, preformatted=True) + for comment_after in original.comments_after(leaf): + result.append(comment_after, preformatted=True) + if is_body and should_split_line(result, opening_bracket): + result.should_split_rhs = True + return result + + +def dont_increase_indentation(split_func: Transformer) -> Transformer: + """Normalize prefix of the first leaf in every line returned by `split_func`. + + This is a decorator over relevant split functions. + """ + + @wraps(split_func) + def split_wrapper(line: Line, features: Collection[Feature] = ()) -> Iterator[Line]: + for line in split_func(line, features): + normalize_prefix(line.leaves[0], inside_brackets=True) + yield line + + return split_wrapper + + +@dont_increase_indentation +def delimiter_split(line: Line, features: Collection[Feature] = ()) -> Iterator[Line]: + """Split according to delimiters of the highest priority. + + If the appropriate Features are given, the split will add trailing commas + also in function signatures and calls that contain `*` and `**`. + """ + try: + last_leaf = line.leaves[-1] + except IndexError: + raise CannotSplit("Line empty") from None + + bt = line.bracket_tracker + try: + delimiter_priority = bt.max_delimiter_priority(exclude={id(last_leaf)}) + except ValueError: + raise CannotSplit("No delimiters found") from None + + if delimiter_priority == DOT_PRIORITY: + if bt.delimiter_count_with_priority(delimiter_priority) == 1: + raise CannotSplit("Splitting a single attribute from its owner looks wrong") + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + lowest_depth = sys.maxsize + trailing_comma_safe = True + + def append_to_line(leaf: Leaf) -> Iterator[Line]: + """Append `leaf` to current line or to new line if appending impossible.""" + nonlocal current_line + try: + current_line.append_safe(leaf, preformatted=True) + except ValueError: + yield current_line + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + current_line.append(leaf) + + for leaf in line.leaves: + yield from append_to_line(leaf) + + for comment_after in line.comments_after(leaf): + yield from append_to_line(comment_after) + + lowest_depth = min(lowest_depth, leaf.bracket_depth) + if leaf.bracket_depth == lowest_depth: + if is_vararg(leaf, within={syms.typedargslist}): + trailing_comma_safe = ( + trailing_comma_safe and Feature.TRAILING_COMMA_IN_DEF in features + ) + elif is_vararg(leaf, within={syms.arglist, syms.argument}): + trailing_comma_safe = ( + trailing_comma_safe and Feature.TRAILING_COMMA_IN_CALL in features + ) + + leaf_priority = bt.delimiters.get(id(leaf)) + if leaf_priority == delimiter_priority: + yield current_line + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + if current_line: + if ( + trailing_comma_safe + and delimiter_priority == COMMA_PRIORITY + and current_line.leaves[-1].type != token.COMMA + and current_line.leaves[-1].type != STANDALONE_COMMENT + ): + new_comma = Leaf(token.COMMA, ",") + current_line.append(new_comma) + yield current_line + + +@dont_increase_indentation +def standalone_comment_split( + line: Line, features: Collection[Feature] = () +) -> Iterator[Line]: + """Split standalone comments from the rest of the line.""" + if not line.contains_standalone_comments(0): + raise CannotSplit("Line does not have any standalone comments") + + current_line = Line( + mode=line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + + def append_to_line(leaf: Leaf) -> Iterator[Line]: + """Append `leaf` to current line or to new line if appending impossible.""" + nonlocal current_line + try: + current_line.append_safe(leaf, preformatted=True) + except ValueError: + yield current_line + + current_line = Line( + line.mode, depth=line.depth, inside_brackets=line.inside_brackets + ) + current_line.append(leaf) + + for leaf in line.leaves: + yield from append_to_line(leaf) + + for comment_after in line.comments_after(leaf): + yield from append_to_line(comment_after) + + if current_line: + yield current_line + + +def normalize_prefix(leaf: Leaf, *, inside_brackets: bool) -> None: + """Leave existing extra newlines if not `inside_brackets`. Remove everything + else. + + Note: don't use backslashes for formatting or you'll lose your voting rights. + """ + if not inside_brackets: + spl = leaf.prefix.split("#") + if "\\" not in spl[0]: + nl_count = spl[-1].count("\n") + if len(spl) > 1: + nl_count -= 1 + leaf.prefix = "\n" * nl_count + return + + leaf.prefix = "" + + +def normalize_invisible_parens(node: Node, parens_after: Set[str]) -> None: + """Make existing optional parentheses invisible or create new ones. + + `parens_after` is a set of string leaf values immediately after which parens + should be put. + + Standardizes on visible parentheses for single-element tuples, and keeps + existing visible parentheses for other tuples and generator expressions. + """ + for pc in list_comments(node.prefix, is_endmarker=False): + if pc.value in FMT_OFF: + # This `node` has a prefix with `# fmt: off`, don't mess with parens. + return + check_lpar = False + for index, child in enumerate(list(node.children)): + # Fixes a bug where invisible parens are not properly stripped from + # assignment statements that contain type annotations. + if isinstance(child, Node) and child.type == syms.annassign: + normalize_invisible_parens(child, parens_after=parens_after) + + # Add parentheses around long tuple unpacking in assignments. + if ( + index == 0 + and isinstance(child, Node) + and child.type == syms.testlist_star_expr + ): + check_lpar = True + + if check_lpar: + if child.type == syms.atom: + if maybe_make_parens_invisible_in_atom(child, parent=node): + wrap_in_parentheses(node, child, visible=False) + elif is_one_tuple(child): + wrap_in_parentheses(node, child, visible=True) + elif node.type == syms.import_from: + # "import from" nodes store parentheses directly as part of + # the statement + if child.type == token.LPAR: + # make parentheses invisible + child.value = "" # type: ignore + node.children[-1].value = "" # type: ignore + elif child.type != token.STAR: + # insert invisible parentheses + node.insert_child(index, Leaf(token.LPAR, "")) + node.append_child(Leaf(token.RPAR, "")) + break + + elif not (isinstance(child, Leaf) and is_multiline_string(child)): + wrap_in_parentheses(node, child, visible=False) + + check_lpar = isinstance(child, Leaf) and child.value in parens_after + + +def maybe_make_parens_invisible_in_atom(node: LN, parent: LN) -> bool: + """If it's safe, make the parens in the atom `node` invisible, recursively. + Additionally, remove repeated, adjacent invisible parens from the atom `node` + as they are redundant. + + Returns whether the node should itself be wrapped in invisible parentheses. + + """ + + if ( + node.type != syms.atom + or is_empty_tuple(node) + or is_one_tuple(node) + or (is_yield(node) and parent.type != syms.expr_stmt) + or max_delimiter_priority_in_atom(node) >= COMMA_PRIORITY + ): + return False + + if is_walrus_assignment(node): + if parent.type in [ + syms.annassign, + syms.expr_stmt, + syms.assert_stmt, + syms.return_stmt, + # these ones aren't useful to end users, but they do please fuzzers + syms.for_stmt, + syms.del_stmt, + ]: + return False + + first = node.children[0] + last = node.children[-1] + if first.type == token.LPAR and last.type == token.RPAR: + middle = node.children[1] + # make parentheses invisible + first.value = "" # type: ignore + last.value = "" # type: ignore + maybe_make_parens_invisible_in_atom(middle, parent=parent) + + if is_atom_with_invisible_parens(middle): + # Strip the invisible parens from `middle` by replacing + # it with the child in-between the invisible parens + middle.replace(middle.children[1]) + + return False + + return True + + +def should_split_line(line: Line, opening_bracket: Leaf) -> bool: + """Should `line` be immediately split with `delimiter_split()` after RHS?""" + + if not (opening_bracket.parent and opening_bracket.value in "[{("): + return False + + # We're essentially checking if the body is delimited by commas and there's more + # than one of them (we're excluding the trailing comma and if the delimiter priority + # is still commas, that means there's more). + exclude = set() + trailing_comma = False + try: + last_leaf = line.leaves[-1] + if last_leaf.type == token.COMMA: + trailing_comma = True + exclude.add(id(last_leaf)) + max_priority = line.bracket_tracker.max_delimiter_priority(exclude=exclude) + except (IndexError, ValueError): + return False + + return max_priority == COMMA_PRIORITY and ( + (line.mode.magic_trailing_comma and trailing_comma) + # always explode imports + or opening_bracket.parent.type in {syms.atom, syms.import_from} + ) + + +def generate_trailers_to_omit(line: Line, line_length: int) -> Iterator[Set[LeafID]]: + """Generate sets of closing bracket IDs that should be omitted in a RHS. + + Brackets can be omitted if the entire trailer up to and including + a preceding closing bracket fits in one line. + + Yielded sets are cumulative (contain results of previous yields, too). First + set is empty, unless the line should explode, in which case bracket pairs until + the one that needs to explode are omitted. + """ + + omit: Set[LeafID] = set() + if not line.magic_trailing_comma: + yield omit + + length = 4 * line.depth + opening_bracket: Optional[Leaf] = None + closing_bracket: Optional[Leaf] = None + inner_brackets: Set[LeafID] = set() + for index, leaf, leaf_length in line.enumerate_with_length(reversed=True): + length += leaf_length + if length > line_length: + break + + has_inline_comment = leaf_length > len(leaf.value) + len(leaf.prefix) + if leaf.type == STANDALONE_COMMENT or has_inline_comment: + break + + if opening_bracket: + if leaf is opening_bracket: + opening_bracket = None + elif leaf.type in CLOSING_BRACKETS: + prev = line.leaves[index - 1] if index > 0 else None + if ( + prev + and prev.type == token.COMMA + and not is_one_tuple_between( + leaf.opening_bracket, leaf, line.leaves + ) + ): + # Never omit bracket pairs with trailing commas. + # We need to explode on those. + break + + inner_brackets.add(id(leaf)) + elif leaf.type in CLOSING_BRACKETS: + prev = line.leaves[index - 1] if index > 0 else None + if prev and prev.type in OPENING_BRACKETS: + # Empty brackets would fail a split so treat them as "inner" + # brackets (e.g. only add them to the `omit` set if another + # pair of brackets was good enough. + inner_brackets.add(id(leaf)) + continue + + if closing_bracket: + omit.add(id(closing_bracket)) + omit.update(inner_brackets) + inner_brackets.clear() + yield omit + + if ( + prev + and prev.type == token.COMMA + and not is_one_tuple_between(leaf.opening_bracket, leaf, line.leaves) + ): + # Never omit bracket pairs with trailing commas. + # We need to explode on those. + break + + if leaf.value: + opening_bracket = leaf.opening_bracket + closing_bracket = leaf + + +def run_transformer( + line: Line, + transform: Transformer, + mode: Mode, + features: Collection[Feature], + *, + line_str: str = "", +) -> List[Line]: + if not line_str: + line_str = line_to_string(line) + result: List[Line] = [] + for transformed_line in transform(line, features): + if str(transformed_line).strip("\n") == line_str: + raise CannotTransform("Line transformer returned an unchanged result") + + result.extend(transform_line(transformed_line, mode=mode, features=features)) + + if ( + transform.__name__ != "rhs" + or not line.bracket_tracker.invisible + or any(bracket.value for bracket in line.bracket_tracker.invisible) + or line.contains_multiline_strings() + or result[0].contains_uncollapsable_type_comments() + or result[0].contains_unsplittable_type_ignore() + or is_line_short_enough(result[0], line_length=mode.line_length) + # If any leaves have no parents (which _can_ occur since + # `transform(line)` potentially destroys the line's underlying node + # structure), then we can't proceed. Doing so would cause the below + # call to `append_leaves()` to fail. + or any(leaf.parent is None for leaf in line.leaves) + ): + return result + + line_copy = line.clone() + append_leaves(line_copy, line, line.leaves) + features_fop = set(features) | {Feature.FORCE_OPTIONAL_PARENTHESES} + second_opinion = run_transformer( + line_copy, transform, mode, features_fop, line_str=line_str + ) + if all( + is_line_short_enough(ln, line_length=mode.line_length) for ln in second_opinion + ): + result = second_opinion + return result diff --git a/.vim/bundle/black/src/black/lines.py b/.vim/bundle/black/src/black/lines.py new file mode 100644 index 0000000..63225c0 --- /dev/null +++ b/.vim/bundle/black/src/black/lines.py @@ -0,0 +1,734 @@ +from dataclasses import dataclass, field +import itertools +import sys +from typing import ( + Callable, + Collection, + Dict, + Iterator, + List, + Optional, + Sequence, + Tuple, + TypeVar, + cast, +) + +from blib2to3.pytree import Node, Leaf +from blib2to3.pgen2 import token + +from black.brackets import BracketTracker, DOT_PRIORITY +from black.mode import Mode +from black.nodes import STANDALONE_COMMENT, TEST_DESCENDANTS +from black.nodes import BRACKETS, OPENING_BRACKETS, CLOSING_BRACKETS +from black.nodes import syms, whitespace, replace_child, child_towards +from black.nodes import is_multiline_string, is_import, is_type_comment, last_two_except +from black.nodes import is_one_tuple_between + +# types +T = TypeVar("T") +Index = int +LeafID = int + + +@dataclass +class Line: + """Holds leaves and comments. Can be printed with `str(line)`.""" + + mode: Mode + depth: int = 0 + leaves: List[Leaf] = field(default_factory=list) + # keys ordered like `leaves` + comments: Dict[LeafID, List[Leaf]] = field(default_factory=dict) + bracket_tracker: BracketTracker = field(default_factory=BracketTracker) + inside_brackets: bool = False + should_split_rhs: bool = False + magic_trailing_comma: Optional[Leaf] = None + + def append(self, leaf: Leaf, preformatted: bool = False) -> None: + """Add a new `leaf` to the end of the line. + + Unless `preformatted` is True, the `leaf` will receive a new consistent + whitespace prefix and metadata applied by :class:`BracketTracker`. + Trailing commas are maybe removed, unpacked for loop variables are + demoted from being delimiters. + + Inline comments are put aside. + """ + has_value = leaf.type in BRACKETS or bool(leaf.value.strip()) + if not has_value: + return + + if token.COLON == leaf.type and self.is_class_paren_empty: + del self.leaves[-2:] + if self.leaves and not preformatted: + # Note: at this point leaf.prefix should be empty except for + # imports, for which we only preserve newlines. + leaf.prefix += whitespace( + leaf, complex_subscript=self.is_complex_subscript(leaf) + ) + if self.inside_brackets or not preformatted: + self.bracket_tracker.mark(leaf) + if self.mode.magic_trailing_comma: + if self.has_magic_trailing_comma(leaf): + self.magic_trailing_comma = leaf + elif self.has_magic_trailing_comma(leaf, ensure_removable=True): + self.remove_trailing_comma() + if not self.append_comment(leaf): + self.leaves.append(leaf) + + def append_safe(self, leaf: Leaf, preformatted: bool = False) -> None: + """Like :func:`append()` but disallow invalid standalone comment structure. + + Raises ValueError when any `leaf` is appended after a standalone comment + or when a standalone comment is not the first leaf on the line. + """ + if self.bracket_tracker.depth == 0: + if self.is_comment: + raise ValueError("cannot append to standalone comments") + + if self.leaves and leaf.type == STANDALONE_COMMENT: + raise ValueError( + "cannot append standalone comments to a populated line" + ) + + self.append(leaf, preformatted=preformatted) + + @property + def is_comment(self) -> bool: + """Is this line a standalone comment?""" + return len(self.leaves) == 1 and self.leaves[0].type == STANDALONE_COMMENT + + @property + def is_decorator(self) -> bool: + """Is this line a decorator?""" + return bool(self) and self.leaves[0].type == token.AT + + @property + def is_import(self) -> bool: + """Is this an import line?""" + return bool(self) and is_import(self.leaves[0]) + + @property + def is_class(self) -> bool: + """Is this line a class definition?""" + return ( + bool(self) + and self.leaves[0].type == token.NAME + and self.leaves[0].value == "class" + ) + + @property + def is_stub_class(self) -> bool: + """Is this line a class definition with a body consisting only of "..."?""" + return self.is_class and self.leaves[-3:] == [ + Leaf(token.DOT, ".") for _ in range(3) + ] + + @property + def is_def(self) -> bool: + """Is this a function definition? (Also returns True for async defs.)""" + try: + first_leaf = self.leaves[0] + except IndexError: + return False + + try: + second_leaf: Optional[Leaf] = self.leaves[1] + except IndexError: + second_leaf = None + return (first_leaf.type == token.NAME and first_leaf.value == "def") or ( + first_leaf.type == token.ASYNC + and second_leaf is not None + and second_leaf.type == token.NAME + and second_leaf.value == "def" + ) + + @property + def is_class_paren_empty(self) -> bool: + """Is this a class with no base classes but using parentheses? + + Those are unnecessary and should be removed. + """ + return ( + bool(self) + and len(self.leaves) == 4 + and self.is_class + and self.leaves[2].type == token.LPAR + and self.leaves[2].value == "(" + and self.leaves[3].type == token.RPAR + and self.leaves[3].value == ")" + ) + + @property + def is_triple_quoted_string(self) -> bool: + """Is the line a triple quoted string?""" + return ( + bool(self) + and self.leaves[0].type == token.STRING + and self.leaves[0].value.startswith(('"""', "'''")) + ) + + def contains_standalone_comments(self, depth_limit: int = sys.maxsize) -> bool: + """If so, needs to be split before emitting.""" + for leaf in self.leaves: + if leaf.type == STANDALONE_COMMENT and leaf.bracket_depth <= depth_limit: + return True + + return False + + def contains_uncollapsable_type_comments(self) -> bool: + ignored_ids = set() + try: + last_leaf = self.leaves[-1] + ignored_ids.add(id(last_leaf)) + if last_leaf.type == token.COMMA or ( + last_leaf.type == token.RPAR and not last_leaf.value + ): + # When trailing commas or optional parens are inserted by Black for + # consistency, comments after the previous last element are not moved + # (they don't have to, rendering will still be correct). So we ignore + # trailing commas and invisible. + last_leaf = self.leaves[-2] + ignored_ids.add(id(last_leaf)) + except IndexError: + return False + + # A type comment is uncollapsable if it is attached to a leaf + # that isn't at the end of the line (since that could cause it + # to get associated to a different argument) or if there are + # comments before it (since that could cause it to get hidden + # behind a comment. + comment_seen = False + for leaf_id, comments in self.comments.items(): + for comment in comments: + if is_type_comment(comment): + if comment_seen or ( + not is_type_comment(comment, " ignore") + and leaf_id not in ignored_ids + ): + return True + + comment_seen = True + + return False + + def contains_unsplittable_type_ignore(self) -> bool: + if not self.leaves: + return False + + # If a 'type: ignore' is attached to the end of a line, we + # can't split the line, because we can't know which of the + # subexpressions the ignore was meant to apply to. + # + # We only want this to apply to actual physical lines from the + # original source, though: we don't want the presence of a + # 'type: ignore' at the end of a multiline expression to + # justify pushing it all onto one line. Thus we + # (unfortunately) need to check the actual source lines and + # only report an unsplittable 'type: ignore' if this line was + # one line in the original code. + + # Grab the first and last line numbers, skipping generated leaves + first_line = next((leaf.lineno for leaf in self.leaves if leaf.lineno != 0), 0) + last_line = next( + (leaf.lineno for leaf in reversed(self.leaves) if leaf.lineno != 0), 0 + ) + + if first_line == last_line: + # We look at the last two leaves since a comma or an + # invisible paren could have been added at the end of the + # line. + for node in self.leaves[-2:]: + for comment in self.comments.get(id(node), []): + if is_type_comment(comment, " ignore"): + return True + + return False + + def contains_multiline_strings(self) -> bool: + return any(is_multiline_string(leaf) for leaf in self.leaves) + + def has_magic_trailing_comma( + self, closing: Leaf, ensure_removable: bool = False + ) -> bool: + """Return True if we have a magic trailing comma, that is when: + - there's a trailing comma here + - it's not a one-tuple + Additionally, if ensure_removable: + - it's not from square bracket indexing + """ + if not ( + closing.type in CLOSING_BRACKETS + and self.leaves + and self.leaves[-1].type == token.COMMA + ): + return False + + if closing.type == token.RBRACE: + return True + + if closing.type == token.RSQB: + if not ensure_removable: + return True + comma = self.leaves[-1] + return bool(comma.parent and comma.parent.type == syms.listmaker) + + if self.is_import: + return True + + if not is_one_tuple_between(closing.opening_bracket, closing, self.leaves): + return True + + return False + + def append_comment(self, comment: Leaf) -> bool: + """Add an inline or standalone comment to the line.""" + if ( + comment.type == STANDALONE_COMMENT + and self.bracket_tracker.any_open_brackets() + ): + comment.prefix = "" + return False + + if comment.type != token.COMMENT: + return False + + if not self.leaves: + comment.type = STANDALONE_COMMENT + comment.prefix = "" + return False + + last_leaf = self.leaves[-1] + if ( + last_leaf.type == token.RPAR + and not last_leaf.value + and last_leaf.parent + and len(list(last_leaf.parent.leaves())) <= 3 + and not is_type_comment(comment) + ): + # Comments on an optional parens wrapping a single leaf should belong to + # the wrapped node except if it's a type comment. Pinning the comment like + # this avoids unstable formatting caused by comment migration. + if len(self.leaves) < 2: + comment.type = STANDALONE_COMMENT + comment.prefix = "" + return False + + last_leaf = self.leaves[-2] + self.comments.setdefault(id(last_leaf), []).append(comment) + return True + + def comments_after(self, leaf: Leaf) -> List[Leaf]: + """Generate comments that should appear directly after `leaf`.""" + return self.comments.get(id(leaf), []) + + def remove_trailing_comma(self) -> None: + """Remove the trailing comma and moves the comments attached to it.""" + trailing_comma = self.leaves.pop() + trailing_comma_comments = self.comments.pop(id(trailing_comma), []) + self.comments.setdefault(id(self.leaves[-1]), []).extend( + trailing_comma_comments + ) + + def is_complex_subscript(self, leaf: Leaf) -> bool: + """Return True iff `leaf` is part of a slice with non-trivial exprs.""" + open_lsqb = self.bracket_tracker.get_open_lsqb() + if open_lsqb is None: + return False + + subscript_start = open_lsqb.next_sibling + + if isinstance(subscript_start, Node): + if subscript_start.type == syms.listmaker: + return False + + if subscript_start.type == syms.subscriptlist: + subscript_start = child_towards(subscript_start, leaf) + return subscript_start is not None and any( + n.type in TEST_DESCENDANTS for n in subscript_start.pre_order() + ) + + def enumerate_with_length( + self, reversed: bool = False + ) -> Iterator[Tuple[Index, Leaf, int]]: + """Return an enumeration of leaves with their length. + + Stops prematurely on multiline strings and standalone comments. + """ + op = cast( + Callable[[Sequence[Leaf]], Iterator[Tuple[Index, Leaf]]], + enumerate_reversed if reversed else enumerate, + ) + for index, leaf in op(self.leaves): + length = len(leaf.prefix) + len(leaf.value) + if "\n" in leaf.value: + return # Multiline strings, we can't continue. + + for comment in self.comments_after(leaf): + length += len(comment.value) + + yield index, leaf, length + + def clone(self) -> "Line": + return Line( + mode=self.mode, + depth=self.depth, + inside_brackets=self.inside_brackets, + should_split_rhs=self.should_split_rhs, + magic_trailing_comma=self.magic_trailing_comma, + ) + + def __str__(self) -> str: + """Render the line.""" + if not self: + return "\n" + + indent = " " * self.depth + leaves = iter(self.leaves) + first = next(leaves) + res = f"{first.prefix}{indent}{first.value}" + for leaf in leaves: + res += str(leaf) + for comment in itertools.chain.from_iterable(self.comments.values()): + res += str(comment) + + return res + "\n" + + def __bool__(self) -> bool: + """Return True if the line has leaves or comments.""" + return bool(self.leaves or self.comments) + + +@dataclass +class EmptyLineTracker: + """Provides a stateful method that returns the number of potential extra + empty lines needed before and after the currently processed line. + + Note: this tracker works on lines that haven't been split yet. It assumes + the prefix of the first leaf consists of optional newlines. Those newlines + are consumed by `maybe_empty_lines()` and included in the computation. + """ + + is_pyi: bool = False + previous_line: Optional[Line] = None + previous_after: int = 0 + previous_defs: List[int] = field(default_factory=list) + + def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]: + """Return the number of extra empty lines before and after the `current_line`. + + This is for separating `def`, `async def` and `class` with extra empty + lines (two on module-level). + """ + before, after = self._maybe_empty_lines(current_line) + before = ( + # Black should not insert empty lines at the beginning + # of the file + 0 + if self.previous_line is None + else before - self.previous_after + ) + self.previous_after = after + self.previous_line = current_line + return before, after + + def _maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]: + max_allowed = 1 + if current_line.depth == 0: + max_allowed = 1 if self.is_pyi else 2 + if current_line.leaves: + # Consume the first leaf's extra newlines. + first_leaf = current_line.leaves[0] + before = first_leaf.prefix.count("\n") + before = min(before, max_allowed) + first_leaf.prefix = "" + else: + before = 0 + depth = current_line.depth + while self.previous_defs and self.previous_defs[-1] >= depth: + self.previous_defs.pop() + if self.is_pyi: + before = 0 if depth else 1 + else: + before = 1 if depth else 2 + if current_line.is_decorator or current_line.is_def or current_line.is_class: + return self._maybe_empty_lines_for_class_or_def(current_line, before) + + if ( + self.previous_line + and self.previous_line.is_import + and not current_line.is_import + and depth == self.previous_line.depth + ): + return (before or 1), 0 + + if ( + self.previous_line + and self.previous_line.is_class + and current_line.is_triple_quoted_string + ): + return before, 1 + + return before, 0 + + def _maybe_empty_lines_for_class_or_def( + self, current_line: Line, before: int + ) -> Tuple[int, int]: + if not current_line.is_decorator: + self.previous_defs.append(current_line.depth) + if self.previous_line is None: + # Don't insert empty lines before the first line in the file. + return 0, 0 + + if self.previous_line.is_decorator: + if self.is_pyi and current_line.is_stub_class: + # Insert an empty line after a decorated stub class + return 0, 1 + + return 0, 0 + + if self.previous_line.depth < current_line.depth and ( + self.previous_line.is_class or self.previous_line.is_def + ): + return 0, 0 + + if ( + self.previous_line.is_comment + and self.previous_line.depth == current_line.depth + and before == 0 + ): + return 0, 0 + + if self.is_pyi: + if self.previous_line.depth > current_line.depth: + newlines = 1 + elif current_line.is_class or self.previous_line.is_class: + if current_line.is_stub_class and self.previous_line.is_stub_class: + # No blank line between classes with an empty body + newlines = 0 + else: + newlines = 1 + elif ( + current_line.is_def or current_line.is_decorator + ) and not self.previous_line.is_def: + # Blank line between a block of functions (maybe with preceding + # decorators) and a block of non-functions + newlines = 1 + else: + newlines = 0 + else: + newlines = 2 + if current_line.depth and newlines: + newlines -= 1 + return newlines, 0 + + +def enumerate_reversed(sequence: Sequence[T]) -> Iterator[Tuple[Index, T]]: + """Like `reversed(enumerate(sequence))` if that were possible.""" + index = len(sequence) - 1 + for element in reversed(sequence): + yield (index, element) + index -= 1 + + +def append_leaves( + new_line: Line, old_line: Line, leaves: List[Leaf], preformatted: bool = False +) -> None: + """ + Append leaves (taken from @old_line) to @new_line, making sure to fix the + underlying Node structure where appropriate. + + All of the leaves in @leaves are duplicated. The duplicates are then + appended to @new_line and used to replace their originals in the underlying + Node structure. Any comments attached to the old leaves are reattached to + the new leaves. + + Pre-conditions: + set(@leaves) is a subset of set(@old_line.leaves). + """ + for old_leaf in leaves: + new_leaf = Leaf(old_leaf.type, old_leaf.value) + replace_child(old_leaf, new_leaf) + new_line.append(new_leaf, preformatted=preformatted) + + for comment_leaf in old_line.comments_after(old_leaf): + new_line.append(comment_leaf, preformatted=True) + + +def is_line_short_enough(line: Line, *, line_length: int, line_str: str = "") -> bool: + """Return True if `line` is no longer than `line_length`. + + Uses the provided `line_str` rendering, if any, otherwise computes a new one. + """ + if not line_str: + line_str = line_to_string(line) + return ( + len(line_str) <= line_length + and "\n" not in line_str # multiline strings + and not line.contains_standalone_comments() + ) + + +def can_be_split(line: Line) -> bool: + """Return False if the line cannot be split *for sure*. + + This is not an exhaustive search but a cheap heuristic that we can use to + avoid some unfortunate formattings (mostly around wrapping unsplittable code + in unnecessary parentheses). + """ + leaves = line.leaves + if len(leaves) < 2: + return False + + if leaves[0].type == token.STRING and leaves[1].type == token.DOT: + call_count = 0 + dot_count = 0 + next = leaves[-1] + for leaf in leaves[-2::-1]: + if leaf.type in OPENING_BRACKETS: + if next.type not in CLOSING_BRACKETS: + return False + + call_count += 1 + elif leaf.type == token.DOT: + dot_count += 1 + elif leaf.type == token.NAME: + if not (next.type == token.DOT or next.type in OPENING_BRACKETS): + return False + + elif leaf.type not in CLOSING_BRACKETS: + return False + + if dot_count > 1 and call_count > 1: + return False + + return True + + +def can_omit_invisible_parens( + line: Line, + line_length: int, + omit_on_explode: Collection[LeafID] = (), +) -> bool: + """Does `line` have a shape safe to reformat without optional parens around it? + + Returns True for only a subset of potentially nice looking formattings but + the point is to not return false positives that end up producing lines that + are too long. + """ + bt = line.bracket_tracker + if not bt.delimiters: + # Without delimiters the optional parentheses are useless. + return True + + max_priority = bt.max_delimiter_priority() + if bt.delimiter_count_with_priority(max_priority) > 1: + # With more than one delimiter of a kind the optional parentheses read better. + return False + + if max_priority == DOT_PRIORITY: + # A single stranded method call doesn't require optional parentheses. + return True + + assert len(line.leaves) >= 2, "Stranded delimiter" + + # With a single delimiter, omit if the expression starts or ends with + # a bracket. + first = line.leaves[0] + second = line.leaves[1] + if first.type in OPENING_BRACKETS and second.type not in CLOSING_BRACKETS: + if _can_omit_opening_paren(line, first=first, line_length=line_length): + return True + + # Note: we are not returning False here because a line might have *both* + # a leading opening bracket and a trailing closing bracket. If the + # opening bracket doesn't match our rule, maybe the closing will. + + penultimate = line.leaves[-2] + last = line.leaves[-1] + if line.magic_trailing_comma: + try: + penultimate, last = last_two_except(line.leaves, omit=omit_on_explode) + except LookupError: + # Turns out we'd omit everything. We cannot skip the optional parentheses. + return False + + if ( + last.type == token.RPAR + or last.type == token.RBRACE + or ( + # don't use indexing for omitting optional parentheses; + # it looks weird + last.type == token.RSQB + and last.parent + and last.parent.type != syms.trailer + ) + ): + if penultimate.type in OPENING_BRACKETS: + # Empty brackets don't help. + return False + + if is_multiline_string(first): + # Additional wrapping of a multiline string in this situation is + # unnecessary. + return True + + if line.magic_trailing_comma and penultimate.type == token.COMMA: + # The rightmost non-omitted bracket pair is the one we want to explode on. + return True + + if _can_omit_closing_paren(line, last=last, line_length=line_length): + return True + + return False + + +def _can_omit_opening_paren(line: Line, *, first: Leaf, line_length: int) -> bool: + """See `can_omit_invisible_parens`.""" + remainder = False + length = 4 * line.depth + _index = -1 + for _index, leaf, leaf_length in line.enumerate_with_length(): + if leaf.type in CLOSING_BRACKETS and leaf.opening_bracket is first: + remainder = True + if remainder: + length += leaf_length + if length > line_length: + break + + if leaf.type in OPENING_BRACKETS: + # There are brackets we can further split on. + remainder = False + + else: + # checked the entire string and line length wasn't exceeded + if len(line.leaves) == _index + 1: + return True + + return False + + +def _can_omit_closing_paren(line: Line, *, last: Leaf, line_length: int) -> bool: + """See `can_omit_invisible_parens`.""" + length = 4 * line.depth + seen_other_brackets = False + for _index, leaf, leaf_length in line.enumerate_with_length(): + length += leaf_length + if leaf is last.opening_bracket: + if seen_other_brackets or length <= line_length: + return True + + elif leaf.type in OPENING_BRACKETS: + # There are brackets we can further split on. + seen_other_brackets = True + + return False + + +def line_to_string(line: Line) -> str: + """Returns the string representation of @line. + + WARNING: This is known to be computationally expensive. + """ + return str(line).strip("\n") diff --git a/.vim/bundle/black/src/black/mode.py b/.vim/bundle/black/src/black/mode.py new file mode 100644 index 0000000..0b7624e --- /dev/null +++ b/.vim/bundle/black/src/black/mode.py @@ -0,0 +1,125 @@ +"""Data structures configuring Black behavior. + +Mostly around Python language feature support per version and Black configuration +chosen by the user. +""" + +from dataclasses import dataclass, field +from enum import Enum +from typing import Dict, Set + +from black.const import DEFAULT_LINE_LENGTH + + +class TargetVersion(Enum): + PY27 = 2 + PY33 = 3 + PY34 = 4 + PY35 = 5 + PY36 = 6 + PY37 = 7 + PY38 = 8 + PY39 = 9 + + def is_python2(self) -> bool: + return self is TargetVersion.PY27 + + +class Feature(Enum): + # All string literals are unicode + UNICODE_LITERALS = 1 + F_STRINGS = 2 + NUMERIC_UNDERSCORES = 3 + TRAILING_COMMA_IN_CALL = 4 + TRAILING_COMMA_IN_DEF = 5 + # The following two feature-flags are mutually exclusive, and exactly one should be + # set for every version of python. + ASYNC_IDENTIFIERS = 6 + ASYNC_KEYWORDS = 7 + ASSIGNMENT_EXPRESSIONS = 8 + POS_ONLY_ARGUMENTS = 9 + RELAXED_DECORATORS = 10 + FORCE_OPTIONAL_PARENTHESES = 50 + + +VERSION_TO_FEATURES: Dict[TargetVersion, Set[Feature]] = { + TargetVersion.PY27: {Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY33: {Feature.UNICODE_LITERALS, Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY34: {Feature.UNICODE_LITERALS, Feature.ASYNC_IDENTIFIERS}, + TargetVersion.PY35: { + Feature.UNICODE_LITERALS, + Feature.TRAILING_COMMA_IN_CALL, + Feature.ASYNC_IDENTIFIERS, + }, + TargetVersion.PY36: { + Feature.UNICODE_LITERALS, + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_IDENTIFIERS, + }, + TargetVersion.PY37: { + Feature.UNICODE_LITERALS, + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + }, + TargetVersion.PY38: { + Feature.UNICODE_LITERALS, + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.POS_ONLY_ARGUMENTS, + }, + TargetVersion.PY39: { + Feature.UNICODE_LITERALS, + Feature.F_STRINGS, + Feature.NUMERIC_UNDERSCORES, + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.ASYNC_KEYWORDS, + Feature.ASSIGNMENT_EXPRESSIONS, + Feature.RELAXED_DECORATORS, + Feature.POS_ONLY_ARGUMENTS, + }, +} + + +def supports_feature(target_versions: Set[TargetVersion], feature: Feature) -> bool: + return all(feature in VERSION_TO_FEATURES[version] for version in target_versions) + + +@dataclass +class Mode: + target_versions: Set[TargetVersion] = field(default_factory=set) + line_length: int = DEFAULT_LINE_LENGTH + string_normalization: bool = True + is_pyi: bool = False + is_ipynb: bool = False + magic_trailing_comma: bool = True + experimental_string_processing: bool = False + + def get_cache_key(self) -> str: + if self.target_versions: + version_str = ",".join( + str(version.value) + for version in sorted(self.target_versions, key=lambda v: v.value) + ) + else: + version_str = "-" + parts = [ + version_str, + str(self.line_length), + str(int(self.string_normalization)), + str(int(self.is_pyi)), + str(int(self.is_ipynb)), + str(int(self.magic_trailing_comma)), + str(int(self.experimental_string_processing)), + ] + return ".".join(parts) diff --git a/.vim/bundle/black/src/black/nodes.py b/.vim/bundle/black/src/black/nodes.py new file mode 100644 index 0000000..8f2e15b --- /dev/null +++ b/.vim/bundle/black/src/black/nodes.py @@ -0,0 +1,845 @@ +""" +blib2to3 Node/Leaf transformation-related utility functions. +""" + +import sys +from typing import ( + Collection, + Generic, + Iterator, + List, + Optional, + Set, + Tuple, + TypeVar, + Union, +) + +if sys.version_info < (3, 8): + from typing_extensions import Final +else: + from typing import Final + +# lib2to3 fork +from blib2to3.pytree import Node, Leaf, type_repr +from blib2to3 import pygram +from blib2to3.pgen2 import token + +from black.cache import CACHE_DIR +from black.strings import has_triple_quotes + + +pygram.initialize(CACHE_DIR) +syms = pygram.python_symbols + + +# types +T = TypeVar("T") +LN = Union[Leaf, Node] +LeafID = int +NodeType = int + + +WHITESPACE: Final = {token.DEDENT, token.INDENT, token.NEWLINE} +STATEMENT: Final = { + syms.if_stmt, + syms.while_stmt, + syms.for_stmt, + syms.try_stmt, + syms.except_clause, + syms.with_stmt, + syms.funcdef, + syms.classdef, +} +STANDALONE_COMMENT: Final = 153 +token.tok_name[STANDALONE_COMMENT] = "STANDALONE_COMMENT" +LOGIC_OPERATORS: Final = {"and", "or"} +COMPARATORS: Final = { + token.LESS, + token.GREATER, + token.EQEQUAL, + token.NOTEQUAL, + token.LESSEQUAL, + token.GREATEREQUAL, +} +MATH_OPERATORS: Final = { + token.VBAR, + token.CIRCUMFLEX, + token.AMPER, + token.LEFTSHIFT, + token.RIGHTSHIFT, + token.PLUS, + token.MINUS, + token.STAR, + token.SLASH, + token.DOUBLESLASH, + token.PERCENT, + token.AT, + token.TILDE, + token.DOUBLESTAR, +} +STARS: Final = {token.STAR, token.DOUBLESTAR} +VARARGS_SPECIALS: Final = STARS | {token.SLASH} +VARARGS_PARENTS: Final = { + syms.arglist, + syms.argument, # double star in arglist + syms.trailer, # single argument to call + syms.typedargslist, + syms.varargslist, # lambdas +} +UNPACKING_PARENTS: Final = { + syms.atom, # single element of a list or set literal + syms.dictsetmaker, + syms.listmaker, + syms.testlist_gexp, + syms.testlist_star_expr, +} +TEST_DESCENDANTS: Final = { + syms.test, + syms.lambdef, + syms.or_test, + syms.and_test, + syms.not_test, + syms.comparison, + syms.star_expr, + syms.expr, + syms.xor_expr, + syms.and_expr, + syms.shift_expr, + syms.arith_expr, + syms.trailer, + syms.term, + syms.power, +} +ASSIGNMENTS: Final = { + "=", + "+=", + "-=", + "*=", + "@=", + "/=", + "%=", + "&=", + "|=", + "^=", + "<<=", + ">>=", + "**=", + "//=", +} + +IMPLICIT_TUPLE = {syms.testlist, syms.testlist_star_expr, syms.exprlist} +BRACKET = {token.LPAR: token.RPAR, token.LSQB: token.RSQB, token.LBRACE: token.RBRACE} +OPENING_BRACKETS = set(BRACKET.keys()) +CLOSING_BRACKETS = set(BRACKET.values()) +BRACKETS = OPENING_BRACKETS | CLOSING_BRACKETS +ALWAYS_NO_SPACE = CLOSING_BRACKETS | {token.COMMA, STANDALONE_COMMENT} + +RARROW = 55 + + +class Visitor(Generic[T]): + """Basic lib2to3 visitor that yields things of type `T` on `visit()`.""" + + def visit(self, node: LN) -> Iterator[T]: + """Main method to visit `node` and its children. + + It tries to find a `visit_*()` method for the given `node.type`, like + `visit_simple_stmt` for Node objects or `visit_INDENT` for Leaf objects. + If no dedicated `visit_*()` method is found, chooses `visit_default()` + instead. + + Then yields objects of type `T` from the selected visitor. + """ + if node.type < 256: + name = token.tok_name[node.type] + else: + name = str(type_repr(node.type)) + # We explicitly branch on whether a visitor exists (instead of + # using self.visit_default as the default arg to getattr) in order + # to save needing to create a bound method object and so mypyc can + # generate a native call to visit_default. + visitf = getattr(self, f"visit_{name}", None) + if visitf: + yield from visitf(node) + else: + yield from self.visit_default(node) + + def visit_default(self, node: LN) -> Iterator[T]: + """Default `visit_*()` implementation. Recurses to children of `node`.""" + if isinstance(node, Node): + for child in node.children: + yield from self.visit(child) + + +def whitespace(leaf: Leaf, *, complex_subscript: bool) -> str: # noqa: C901 + """Return whitespace prefix if needed for the given `leaf`. + + `complex_subscript` signals whether the given leaf is part of a subscription + which has non-trivial arguments, like arithmetic expressions or function calls. + """ + NO = "" + SPACE = " " + DOUBLESPACE = " " + t = leaf.type + p = leaf.parent + v = leaf.value + if t in ALWAYS_NO_SPACE: + return NO + + if t == token.COMMENT: + return DOUBLESPACE + + assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" + if t == token.COLON and p.type not in { + syms.subscript, + syms.subscriptlist, + syms.sliceop, + }: + return NO + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + return NO + + if t == token.COLON: + if prevp.type == token.COLON: + return NO + + elif prevp.type != token.COMMA and not complex_subscript: + return NO + + return SPACE + + if prevp.type == token.EQUAL: + if prevp.parent: + if prevp.parent.type in { + syms.arglist, + syms.argument, + syms.parameters, + syms.varargslist, + }: + return NO + + elif prevp.parent.type == syms.typedargslist: + # A bit hacky: if the equal sign has whitespace, it means we + # previously found it's a typed argument. So, we're using + # that, too. + return prevp.prefix + + elif prevp.type in VARARGS_SPECIALS: + if is_vararg(prevp, within=VARARGS_PARENTS | UNPACKING_PARENTS): + return NO + + elif prevp.type == token.COLON: + if prevp.parent and prevp.parent.type in {syms.subscript, syms.sliceop}: + return SPACE if complex_subscript else NO + + elif ( + prevp.parent + and prevp.parent.type == syms.factor + and prevp.type in MATH_OPERATORS + ): + return NO + + elif ( + prevp.type == token.RIGHTSHIFT + and prevp.parent + and prevp.parent.type == syms.shift_expr + and prevp.prev_sibling + and prevp.prev_sibling.type == token.NAME + and prevp.prev_sibling.value == "print" # type: ignore + ): + # Python 2 print chevron + return NO + elif prevp.type == token.AT and p.parent and p.parent.type == syms.decorator: + # no space in decorators + return NO + + elif prev.type in OPENING_BRACKETS: + return NO + + if p.type in {syms.parameters, syms.arglist}: + # untyped function signatures or calls + if not prev or prev.type != token.COMMA: + return NO + + elif p.type == syms.varargslist: + # lambdas + if prev and prev.type != token.COMMA: + return NO + + elif p.type == syms.typedargslist: + # typed function signatures + if not prev: + return NO + + if t == token.EQUAL: + if prev.type != syms.tname: + return NO + + elif prev.type == token.EQUAL: + # A bit hacky: if the equal sign has whitespace, it means we + # previously found it's a typed argument. So, we're using that, too. + return prev.prefix + + elif prev.type != token.COMMA: + return NO + + elif p.type == syms.tname: + # type names + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type != token.COMMA: + return NO + + elif p.type == syms.trailer: + # attributes and calls + if t == token.LPAR or t == token.RPAR: + return NO + + if not prev: + if t == token.DOT: + prevp = preceding_leaf(p) + if not prevp or prevp.type != token.NUMBER: + return NO + + elif t == token.LSQB: + return NO + + elif prev.type != token.COMMA: + return NO + + elif p.type == syms.argument: + # single argument + if t == token.EQUAL: + return NO + + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type == token.LPAR: + return NO + + elif prev.type in {token.EQUAL} | VARARGS_SPECIALS: + return NO + + elif p.type == syms.decorator: + # decorators + return NO + + elif p.type == syms.dotted_name: + if prev: + return NO + + prevp = preceding_leaf(p) + if not prevp or prevp.type == token.AT or prevp.type == token.DOT: + return NO + + elif p.type == syms.classdef: + if t == token.LPAR: + return NO + + if prev and prev.type == token.LPAR: + return NO + + elif p.type in {syms.subscript, syms.sliceop}: + # indexing + if not prev: + assert p.parent is not None, "subscripts are always parented" + if p.parent.type == syms.subscriptlist: + return SPACE + + return NO + + elif not complex_subscript: + return NO + + elif p.type == syms.atom: + if prev and t == token.DOT: + # dots, but not the first one. + return NO + + elif p.type == syms.dictsetmaker: + # dict unpacking + if prev and prev.type == token.DOUBLESTAR: + return NO + + elif p.type in {syms.factor, syms.star_expr}: + # unary ops + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + return NO + + prevp_parent = prevp.parent + assert prevp_parent is not None + if prevp.type == token.COLON and prevp_parent.type in { + syms.subscript, + syms.sliceop, + }: + return NO + + elif prevp.type == token.EQUAL and prevp_parent.type == syms.argument: + return NO + + elif t in {token.NAME, token.NUMBER, token.STRING}: + return NO + + elif p.type == syms.import_from: + if t == token.DOT: + if prev and prev.type == token.DOT: + return NO + + elif t == token.NAME: + if v == "import": + return SPACE + + if prev and prev.type == token.DOT: + return NO + + elif p.type == syms.sliceop: + return NO + + return SPACE + + +def preceding_leaf(node: Optional[LN]) -> Optional[Leaf]: + """Return the first leaf that precedes `node`, if any.""" + while node: + res = node.prev_sibling + if res: + if isinstance(res, Leaf): + return res + + try: + return list(res.leaves())[-1] + + except IndexError: + return None + + node = node.parent + return None + + +def prev_siblings_are(node: Optional[LN], tokens: List[Optional[NodeType]]) -> bool: + """Return if the `node` and its previous siblings match types against the provided + list of tokens; the provided `node`has its type matched against the last element in + the list. `None` can be used as the first element to declare that the start of the + list is anchored at the start of its parent's children.""" + if not tokens: + return True + if tokens[-1] is None: + return node is None + if not node: + return False + if node.type != tokens[-1]: + return False + return prev_siblings_are(node.prev_sibling, tokens[:-1]) + + +def last_two_except(leaves: List[Leaf], omit: Collection[LeafID]) -> Tuple[Leaf, Leaf]: + """Return (penultimate, last) leaves skipping brackets in `omit` and contents.""" + stop_after = None + last = None + for leaf in reversed(leaves): + if stop_after: + if leaf is stop_after: + stop_after = None + continue + + if last: + return leaf, last + + if id(leaf) in omit: + stop_after = leaf.opening_bracket + else: + last = leaf + else: + raise LookupError("Last two leaves were also skipped") + + +def parent_type(node: Optional[LN]) -> Optional[NodeType]: + """ + Returns: + @node.parent.type, if @node is not None and has a parent. + OR + None, otherwise. + """ + if node is None or node.parent is None: + return None + + return node.parent.type + + +def child_towards(ancestor: Node, descendant: LN) -> Optional[LN]: + """Return the child of `ancestor` that contains `descendant`.""" + node: Optional[LN] = descendant + while node and node.parent != ancestor: + node = node.parent + return node + + +def replace_child(old_child: LN, new_child: LN) -> None: + """ + Side Effects: + * If @old_child.parent is set, replace @old_child with @new_child in + @old_child's underlying Node structure. + OR + * Otherwise, this function does nothing. + """ + parent = old_child.parent + if not parent: + return + + child_idx = old_child.remove() + if child_idx is not None: + parent.insert_child(child_idx, new_child) + + +def container_of(leaf: Leaf) -> LN: + """Return `leaf` or one of its ancestors that is the topmost container of it. + + By "container" we mean a node where `leaf` is the very first child. + """ + same_prefix = leaf.prefix + container: LN = leaf + while container: + parent = container.parent + if parent is None: + break + + if parent.children[0].prefix != same_prefix: + break + + if parent.type == syms.file_input: + break + + if parent.prev_sibling is not None and parent.prev_sibling.type in BRACKETS: + break + + container = parent + return container + + +def first_leaf_column(node: Node) -> Optional[int]: + """Returns the column of the first leaf child of a node.""" + for child in node.children: + if isinstance(child, Leaf): + return child.column + return None + + +def first_child_is_arith(node: Node) -> bool: + """Whether first child is an arithmetic or a binary arithmetic expression""" + expr_types = { + syms.arith_expr, + syms.shift_expr, + syms.xor_expr, + syms.and_expr, + } + return bool(node.children and node.children[0].type in expr_types) + + +def is_docstring(leaf: Leaf) -> bool: + if prev_siblings_are( + leaf.parent, [None, token.NEWLINE, token.INDENT, syms.simple_stmt] + ): + return True + + # Multiline docstring on the same line as the `def`. + if prev_siblings_are(leaf.parent, [syms.parameters, token.COLON, syms.simple_stmt]): + # `syms.parameters` is only used in funcdefs and async_funcdefs in the Python + # grammar. We're safe to return True without further checks. + return True + + return False + + +def is_empty_tuple(node: LN) -> bool: + """Return True if `node` holds an empty tuple.""" + return ( + node.type == syms.atom + and len(node.children) == 2 + and node.children[0].type == token.LPAR + and node.children[1].type == token.RPAR + ) + + +def is_one_tuple(node: LN) -> bool: + """Return True if `node` holds a tuple with one element, with or without parens.""" + if node.type == syms.atom: + gexp = unwrap_singleton_parenthesis(node) + if gexp is None or gexp.type != syms.testlist_gexp: + return False + + return len(gexp.children) == 2 and gexp.children[1].type == token.COMMA + + return ( + node.type in IMPLICIT_TUPLE + and len(node.children) == 2 + and node.children[1].type == token.COMMA + ) + + +def is_one_tuple_between(opening: Leaf, closing: Leaf, leaves: List[Leaf]) -> bool: + """Return True if content between `opening` and `closing` looks like a one-tuple.""" + if opening.type != token.LPAR and closing.type != token.RPAR: + return False + + depth = closing.bracket_depth + 1 + for _opening_index, leaf in enumerate(leaves): + if leaf is opening: + break + + else: + raise LookupError("Opening paren not found in `leaves`") + + commas = 0 + _opening_index += 1 + for leaf in leaves[_opening_index:]: + if leaf is closing: + break + + bracket_depth = leaf.bracket_depth + if bracket_depth == depth and leaf.type == token.COMMA: + commas += 1 + if leaf.parent and leaf.parent.type in { + syms.arglist, + syms.typedargslist, + }: + commas += 1 + break + + return commas < 2 + + +def is_walrus_assignment(node: LN) -> bool: + """Return True iff `node` is of the shape ( test := test )""" + inner = unwrap_singleton_parenthesis(node) + return inner is not None and inner.type == syms.namedexpr_test + + +def is_simple_decorator_trailer(node: LN, last: bool = False) -> bool: + """Return True iff `node` is a trailer valid in a simple decorator""" + return node.type == syms.trailer and ( + ( + len(node.children) == 2 + and node.children[0].type == token.DOT + and node.children[1].type == token.NAME + ) + # last trailer can be an argument-less parentheses pair + or ( + last + and len(node.children) == 2 + and node.children[0].type == token.LPAR + and node.children[1].type == token.RPAR + ) + # last trailer can be arguments + or ( + last + and len(node.children) == 3 + and node.children[0].type == token.LPAR + # and node.children[1].type == syms.argument + and node.children[2].type == token.RPAR + ) + ) + + +def is_simple_decorator_expression(node: LN) -> bool: + """Return True iff `node` could be a 'dotted name' decorator + + This function takes the node of the 'namedexpr_test' of the new decorator + grammar and test if it would be valid under the old decorator grammar. + + The old grammar was: decorator: @ dotted_name [arguments] NEWLINE + The new grammar is : decorator: @ namedexpr_test NEWLINE + """ + if node.type == token.NAME: + return True + if node.type == syms.power: + if node.children: + return ( + node.children[0].type == token.NAME + and all(map(is_simple_decorator_trailer, node.children[1:-1])) + and ( + len(node.children) < 2 + or is_simple_decorator_trailer(node.children[-1], last=True) + ) + ) + return False + + +def is_yield(node: LN) -> bool: + """Return True if `node` holds a `yield` or `yield from` expression.""" + if node.type == syms.yield_expr: + return True + + if node.type == token.NAME and node.value == "yield": # type: ignore + return True + + if node.type != syms.atom: + return False + + if len(node.children) != 3: + return False + + lpar, expr, rpar = node.children + if lpar.type == token.LPAR and rpar.type == token.RPAR: + return is_yield(expr) + + return False + + +def is_vararg(leaf: Leaf, within: Set[NodeType]) -> bool: + """Return True if `leaf` is a star or double star in a vararg or kwarg. + + If `within` includes VARARGS_PARENTS, this applies to function signatures. + If `within` includes UNPACKING_PARENTS, it applies to right hand-side + extended iterable unpacking (PEP 3132) and additional unpacking + generalizations (PEP 448). + """ + if leaf.type not in VARARGS_SPECIALS or not leaf.parent: + return False + + p = leaf.parent + if p.type == syms.star_expr: + # Star expressions are also used as assignment targets in extended + # iterable unpacking (PEP 3132). See what its parent is instead. + if not p.parent: + return False + + p = p.parent + + return p.type in within + + +def is_multiline_string(leaf: Leaf) -> bool: + """Return True if `leaf` is a multiline string that actually spans many lines.""" + return has_triple_quotes(leaf.value) and "\n" in leaf.value + + +def is_stub_suite(node: Node) -> bool: + """Return True if `node` is a suite with a stub body.""" + if ( + len(node.children) != 4 + or node.children[0].type != token.NEWLINE + or node.children[1].type != token.INDENT + or node.children[3].type != token.DEDENT + ): + return False + + return is_stub_body(node.children[2]) + + +def is_stub_body(node: LN) -> bool: + """Return True if `node` is a simple statement containing an ellipsis.""" + if not isinstance(node, Node) or node.type != syms.simple_stmt: + return False + + if len(node.children) != 2: + return False + + child = node.children[0] + return ( + child.type == syms.atom + and len(child.children) == 3 + and all(leaf == Leaf(token.DOT, ".") for leaf in child.children) + ) + + +def is_atom_with_invisible_parens(node: LN) -> bool: + """Given a `LN`, determines whether it's an atom `node` with invisible + parens. Useful in dedupe-ing and normalizing parens. + """ + if isinstance(node, Leaf) or node.type != syms.atom: + return False + + first, last = node.children[0], node.children[-1] + return ( + isinstance(first, Leaf) + and first.type == token.LPAR + and first.value == "" + and isinstance(last, Leaf) + and last.type == token.RPAR + and last.value == "" + ) + + +def is_empty_par(leaf: Leaf) -> bool: + return is_empty_lpar(leaf) or is_empty_rpar(leaf) + + +def is_empty_lpar(leaf: Leaf) -> bool: + return leaf.type == token.LPAR and leaf.value == "" + + +def is_empty_rpar(leaf: Leaf) -> bool: + return leaf.type == token.RPAR and leaf.value == "" + + +def is_import(leaf: Leaf) -> bool: + """Return True if the given leaf starts an import statement.""" + p = leaf.parent + t = leaf.type + v = leaf.value + return bool( + t == token.NAME + and ( + (v == "import" and p and p.type == syms.import_name) + or (v == "from" and p and p.type == syms.import_from) + ) + ) + + +def is_type_comment(leaf: Leaf, suffix: str = "") -> bool: + """Return True if the given leaf is a special comment. + Only returns true for type comments for now.""" + t = leaf.type + v = leaf.value + return t in {token.COMMENT, STANDALONE_COMMENT} and v.startswith("# type:" + suffix) + + +def wrap_in_parentheses(parent: Node, child: LN, *, visible: bool = True) -> None: + """Wrap `child` in parentheses. + + This replaces `child` with an atom holding the parentheses and the old + child. That requires moving the prefix. + + If `visible` is False, the leaves will be valueless (and thus invisible). + """ + lpar = Leaf(token.LPAR, "(" if visible else "") + rpar = Leaf(token.RPAR, ")" if visible else "") + prefix = child.prefix + child.prefix = "" + index = child.remove() or 0 + new_child = Node(syms.atom, [lpar, child, rpar]) + new_child.prefix = prefix + parent.insert_child(index, new_child) + + +def unwrap_singleton_parenthesis(node: LN) -> Optional[LN]: + """Returns `wrapped` if `node` is of the shape ( wrapped ). + + Parenthesis can be optional. Returns None otherwise""" + if len(node.children) != 3: + return None + + lpar, wrapped, rpar = node.children + if not (lpar.type == token.LPAR and rpar.type == token.RPAR): + return None + + return wrapped + + +def ensure_visible(leaf: Leaf) -> None: + """Make sure parentheses are visible. + + They could be invisible as part of some statements (see + :func:`normalize_invisible_parens` and :func:`visit_import_from`). + """ + if leaf.type == token.LPAR: + leaf.value = "(" + elif leaf.type == token.RPAR: + leaf.value = ")" diff --git a/.vim/bundle/black/src/black/numerics.py b/.vim/bundle/black/src/black/numerics.py new file mode 100644 index 0000000..cb1c83e --- /dev/null +++ b/.vim/bundle/black/src/black/numerics.py @@ -0,0 +1,65 @@ +""" +Formatting numeric literals. +""" +from blib2to3.pytree import Leaf + + +def format_hex(text: str) -> str: + """ + Formats a hexadecimal string like "0x12B3" + """ + before, after = text[:2], text[2:] + return f"{before}{after.upper()}" + + +def format_scientific_notation(text: str) -> str: + """Formats a numeric string utilizing scentific notation""" + before, after = text.split("e") + sign = "" + if after.startswith("-"): + after = after[1:] + sign = "-" + elif after.startswith("+"): + after = after[1:] + before = format_float_or_int_string(before) + return f"{before}e{sign}{after}" + + +def format_long_or_complex_number(text: str) -> str: + """Formats a long or complex string like `10L` or `10j`""" + number = text[:-1] + suffix = text[-1] + # Capitalize in "2L" because "l" looks too similar to "1". + if suffix == "l": + suffix = "L" + return f"{format_float_or_int_string(number)}{suffix}" + + +def format_float_or_int_string(text: str) -> str: + """Formats a float string like "1.0".""" + if "." not in text: + return text + + before, after = text.split(".") + return f"{before or 0}.{after or 0}" + + +def normalize_numeric_literal(leaf: Leaf) -> None: + """Normalizes numeric (float, int, and complex) literals. + + All letters used in the representation are normalized to lowercase (except + in Python 2 long literals). + """ + text = leaf.value.lower() + if text.startswith(("0o", "0b")): + # Leave octal and binary literals alone. + pass + elif text.startswith("0x"): + text = format_hex(text) + elif "e" in text: + text = format_scientific_notation(text) + elif text.endswith(("j", "l")): + text = format_long_or_complex_number(text) + else: + text = format_float_or_int_string(text) + leaf.value = text diff --git a/.vim/bundle/black/src/black/output.py b/.vim/bundle/black/src/black/output.py new file mode 100644 index 0000000..fd3dbb3 --- /dev/null +++ b/.vim/bundle/black/src/black/output.py @@ -0,0 +1,102 @@ +"""Nice output for Black. + +The double calls are for patching purposes in tests. +""" + +import json +from typing import Any, Optional +from mypy_extensions import mypyc_attr +import tempfile + +from click import echo, style + + +def _out(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + if message is not None: + if "bold" not in styles: + styles["bold"] = True + message = style(message, **styles) + echo(message, nl=nl, err=True) + + +def _err(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + if message is not None: + if "fg" not in styles: + styles["fg"] = "red" + message = style(message, **styles) + echo(message, nl=nl, err=True) + + +def out(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + _out(message, nl=nl, **styles) + + +def err(message: Optional[str] = None, nl: bool = True, **styles: Any) -> None: + _err(message, nl=nl, **styles) + + +def ipynb_diff(a: str, b: str, a_name: str, b_name: str) -> str: + """Return a unified diff string between each cell in notebooks `a` and `b`.""" + a_nb = json.loads(a) + b_nb = json.loads(b) + diff_lines = [ + diff( + "".join(a_nb["cells"][cell_number]["source"]) + "\n", + "".join(b_nb["cells"][cell_number]["source"]) + "\n", + f"{a_name}:cell_{cell_number}", + f"{b_name}:cell_{cell_number}", + ) + for cell_number, cell in enumerate(a_nb["cells"]) + if cell["cell_type"] == "code" + ] + return "".join(diff_lines) + + +def diff(a: str, b: str, a_name: str, b_name: str) -> str: + """Return a unified diff string between strings `a` and `b`.""" + import difflib + + a_lines = [line for line in a.splitlines(keepends=True)] + b_lines = [line for line in b.splitlines(keepends=True)] + diff_lines = [] + for line in difflib.unified_diff( + a_lines, b_lines, fromfile=a_name, tofile=b_name, n=5 + ): + # Work around https://bugs.python.org/issue2142 + # See: + # https://www.gnu.org/software/diffutils/manual/html_node/Incomplete-Lines.html + if line[-1] == "\n": + diff_lines.append(line) + else: + diff_lines.append(line + "\n") + diff_lines.append("\\ No newline at end of file\n") + return "".join(diff_lines) + + +def color_diff(contents: str) -> str: + """Inject the ANSI color codes to the diff.""" + lines = contents.split("\n") + for i, line in enumerate(lines): + if line.startswith("+++") or line.startswith("---"): + line = "\033[1;37m" + line + "\033[0m" # bold white, reset + elif line.startswith("@@"): + line = "\033[36m" + line + "\033[0m" # cyan, reset + elif line.startswith("+"): + line = "\033[32m" + line + "\033[0m" # green, reset + elif line.startswith("-"): + line = "\033[31m" + line + "\033[0m" # red, reset + lines[i] = line + return "\n".join(lines) + + +@mypyc_attr(patchable=True) +def dump_to_file(*output: str, ensure_final_newline: bool = True) -> str: + """Dump `output` to a temporary file. Return path to the file.""" + with tempfile.NamedTemporaryFile( + mode="w", prefix="blk_", suffix=".log", delete=False, encoding="utf8" + ) as f: + for lines in output: + f.write(lines) + if ensure_final_newline and lines and lines[-1] != "\n": + f.write("\n") + return f.name diff --git a/.vim/bundle/black/src/black/parsing.py b/.vim/bundle/black/src/black/parsing.py new file mode 100644 index 0000000..0b8d984 --- /dev/null +++ b/.vim/bundle/black/src/black/parsing.py @@ -0,0 +1,223 @@ +""" +Parse Python code and perform AST validation. +""" +import ast +import sys +from typing import Iterable, Iterator, List, Set, Union, Tuple + +# lib2to3 fork +from blib2to3.pytree import Node, Leaf +from blib2to3 import pygram, pytree +from blib2to3.pgen2 import driver +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pgen2.parse import ParseError + +from black.mode import TargetVersion, Feature, supports_feature +from black.nodes import syms + +try: + from typed_ast import ast3, ast27 +except ImportError: + if sys.version_info < (3, 8): + print( + "The typed_ast package is required but not installed.\n" + "You can upgrade to Python 3.8+ or install typed_ast with\n" + "`python3 -m pip install typed-ast`.", + file=sys.stderr, + ) + sys.exit(1) + else: + ast3 = ast27 = ast + + +class InvalidInput(ValueError): + """Raised when input source code fails all parse attempts.""" + + +def get_grammars(target_versions: Set[TargetVersion]) -> List[Grammar]: + if not target_versions: + # No target_version specified, so try all grammars. + return [ + # Python 3.7+ + pygram.python_grammar_no_print_statement_no_exec_statement_async_keywords, + # Python 3.0-3.6 + pygram.python_grammar_no_print_statement_no_exec_statement, + # Python 2.7 with future print_function import + pygram.python_grammar_no_print_statement, + # Python 2.7 + pygram.python_grammar, + ] + + if all(version.is_python2() for version in target_versions): + # Python 2-only code, so try Python 2 grammars. + return [ + # Python 2.7 with future print_function import + pygram.python_grammar_no_print_statement, + # Python 2.7 + pygram.python_grammar, + ] + + # Python 3-compatible code, so only try Python 3 grammar. + grammars = [] + # If we have to parse both, try to parse async as a keyword first + if not supports_feature(target_versions, Feature.ASYNC_IDENTIFIERS): + # Python 3.7+ + grammars.append( + pygram.python_grammar_no_print_statement_no_exec_statement_async_keywords + ) + if not supports_feature(target_versions, Feature.ASYNC_KEYWORDS): + # Python 3.0-3.6 + grammars.append(pygram.python_grammar_no_print_statement_no_exec_statement) + # At least one of the above branches must have been taken, because every Python + # version has exactly one of the two 'ASYNC_*' flags + return grammars + + +def lib2to3_parse(src_txt: str, target_versions: Iterable[TargetVersion] = ()) -> Node: + """Given a string with source, return the lib2to3 Node.""" + if not src_txt.endswith("\n"): + src_txt += "\n" + + for grammar in get_grammars(set(target_versions)): + drv = driver.Driver(grammar, pytree.convert) + try: + result = drv.parse_string(src_txt, True) + break + + except ParseError as pe: + lineno, column = pe.context[1] + lines = src_txt.splitlines() + try: + faulty_line = lines[lineno - 1] + except IndexError: + faulty_line = "" + exc = InvalidInput(f"Cannot parse: {lineno}:{column}: {faulty_line}") + else: + raise exc from None + + if isinstance(result, Leaf): + result = Node(syms.file_input, [result]) + return result + + +def lib2to3_unparse(node: Node) -> str: + """Given a lib2to3 node, return its string representation.""" + code = str(node) + return code + + +def parse_single_version( + src: str, version: Tuple[int, int] +) -> Union[ast.AST, ast3.AST, ast27.AST]: + filename = "" + # typed_ast is needed because of feature version limitations in the builtin ast + if sys.version_info >= (3, 8) and version >= (3,): + return ast.parse(src, filename, feature_version=version) + elif version >= (3,): + return ast3.parse(src, filename, feature_version=version[1]) + elif version == (2, 7): + return ast27.parse(src) + raise AssertionError("INTERNAL ERROR: Tried parsing unsupported Python version!") + + +def parse_ast(src: str) -> Union[ast.AST, ast3.AST, ast27.AST]: + # TODO: support Python 4+ ;) + versions = [(3, minor) for minor in range(3, sys.version_info[1] + 1)] + + if ast27.__name__ != "ast": + versions.append((2, 7)) + + first_error = "" + for version in sorted(versions, reverse=True): + try: + return parse_single_version(src, version) + except SyntaxError as e: + if not first_error: + first_error = str(e) + + raise SyntaxError(first_error) + + +def stringify_ast( + node: Union[ast.AST, ast3.AST, ast27.AST], depth: int = 0 +) -> Iterator[str]: + """Simple visitor generating strings to compare ASTs by content.""" + + node = fixup_ast_constants(node) + + yield f"{' ' * depth}{node.__class__.__name__}(" + + for field in sorted(node._fields): # noqa: F402 + # TypeIgnore has only one field 'lineno' which breaks this comparison + type_ignore_classes = (ast3.TypeIgnore, ast27.TypeIgnore) + if sys.version_info >= (3, 8): + type_ignore_classes += (ast.TypeIgnore,) + if isinstance(node, type_ignore_classes): + break + + try: + value = getattr(node, field) + except AttributeError: + continue + + yield f"{' ' * (depth+1)}{field}=" + + if isinstance(value, list): + for item in value: + # Ignore nested tuples within del statements, because we may insert + # parentheses and they change the AST. + if ( + field == "targets" + and isinstance(node, (ast.Delete, ast3.Delete, ast27.Delete)) + and isinstance(item, (ast.Tuple, ast3.Tuple, ast27.Tuple)) + ): + for item in item.elts: + yield from stringify_ast(item, depth + 2) + + elif isinstance(item, (ast.AST, ast3.AST, ast27.AST)): + yield from stringify_ast(item, depth + 2) + + elif isinstance(value, (ast.AST, ast3.AST, ast27.AST)): + yield from stringify_ast(value, depth + 2) + + else: + # Constant strings may be indented across newlines, if they are + # docstrings; fold spaces after newlines when comparing. Similarly, + # trailing and leading space may be removed. + # Note that when formatting Python 2 code, at least with Windows + # line-endings, docstrings can end up here as bytes instead of + # str so make sure that we handle both cases. + if ( + isinstance(node, ast.Constant) + and field == "value" + and isinstance(value, (str, bytes)) + ): + lineend = "\n" if isinstance(value, str) else b"\n" + # To normalize, we strip any leading and trailing space from + # each line... + stripped = [line.strip() for line in value.splitlines()] + normalized = lineend.join(stripped) # type: ignore[attr-defined] + # ...and remove any blank lines at the beginning and end of + # the whole string + normalized = normalized.strip() + else: + normalized = value + yield f"{' ' * (depth+2)}{normalized!r}, # {value.__class__.__name__}" + + yield f"{' ' * depth}) # /{node.__class__.__name__}" + + +def fixup_ast_constants( + node: Union[ast.AST, ast3.AST, ast27.AST] +) -> Union[ast.AST, ast3.AST, ast27.AST]: + """Map ast nodes deprecated in 3.8 to Constant.""" + if isinstance(node, (ast.Str, ast3.Str, ast27.Str, ast.Bytes, ast3.Bytes)): + return ast.Constant(value=node.s) + + if isinstance(node, (ast.Num, ast3.Num, ast27.Num)): + return ast.Constant(value=node.n) + + if isinstance(node, (ast.NameConstant, ast3.NameConstant)): + return ast.Constant(value=node.value) + + return node diff --git a/.vim/bundle/black/src/black/py.typed b/.vim/bundle/black/src/black/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/src/black/report.py b/.vim/bundle/black/src/black/report.py new file mode 100644 index 0000000..7e1c8b4 --- /dev/null +++ b/.vim/bundle/black/src/black/report.py @@ -0,0 +1,104 @@ +""" +Summarize Black runs to users. +""" +from dataclasses import dataclass +from enum import Enum +from pathlib import Path + +from click import style + +from black.output import out, err + + +class Changed(Enum): + NO = 0 + CACHED = 1 + YES = 2 + + +class NothingChanged(UserWarning): + """Raised when reformatted code is the same as source.""" + + +@dataclass +class Report: + """Provides a reformatting counter. Can be rendered with `str(report)`.""" + + check: bool = False + diff: bool = False + quiet: bool = False + verbose: bool = False + change_count: int = 0 + same_count: int = 0 + failure_count: int = 0 + + def done(self, src: Path, changed: Changed) -> None: + """Increment the counter for successful reformatting. Write out a message.""" + if changed is Changed.YES: + reformatted = "would reformat" if self.check or self.diff else "reformatted" + if self.verbose or not self.quiet: + out(f"{reformatted} {src}") + self.change_count += 1 + else: + if self.verbose: + if changed is Changed.NO: + msg = f"{src} already well formatted, good job." + else: + msg = f"{src} wasn't modified on disk since last run." + out(msg, bold=False) + self.same_count += 1 + + def failed(self, src: Path, message: str) -> None: + """Increment the counter for failed reformatting. Write out a message.""" + err(f"error: cannot format {src}: {message}") + self.failure_count += 1 + + def path_ignored(self, path: Path, message: str) -> None: + if self.verbose: + out(f"{path} ignored: {message}", bold=False) + + @property + def return_code(self) -> int: + """Return the exit code that the app should use. + + This considers the current state of changed files and failures: + - if there were any failures, return 123; + - if any files were changed and --check is being used, return 1; + - otherwise return 0. + """ + # According to http://tldp.org/LDP/abs/html/exitcodes.html starting with + # 126 we have special return codes reserved by the shell. + if self.failure_count: + return 123 + + elif self.change_count and self.check: + return 1 + + return 0 + + def __str__(self) -> str: + """Render a color report of the current state. + + Use `click.unstyle` to remove colors. + """ + if self.check or self.diff: + reformatted = "would be reformatted" + unchanged = "would be left unchanged" + failed = "would fail to reformat" + else: + reformatted = "reformatted" + unchanged = "left unchanged" + failed = "failed to reformat" + report = [] + if self.change_count: + s = "s" if self.change_count > 1 else "" + report.append( + style(f"{self.change_count} file{s} {reformatted}", bold=True) + ) + if self.same_count: + s = "s" if self.same_count > 1 else "" + report.append(f"{self.same_count} file{s} {unchanged}") + if self.failure_count: + s = "s" if self.failure_count > 1 else "" + report.append(style(f"{self.failure_count} file{s} {failed}", fg="red")) + return ", ".join(report) + "." diff --git a/.vim/bundle/black/src/black/rusty.py b/.vim/bundle/black/src/black/rusty.py new file mode 100644 index 0000000..822e3d7 --- /dev/null +++ b/.vim/bundle/black/src/black/rusty.py @@ -0,0 +1,28 @@ +"""An error-handling model influenced by that used by the Rust programming language + +See https://doc.rust-lang.org/book/ch09-00-error-handling.html. +""" +from typing import Generic, TypeVar, Union + + +T = TypeVar("T") +E = TypeVar("E", bound=Exception) + + +class Ok(Generic[T]): + def __init__(self, value: T) -> None: + self._value = value + + def ok(self) -> T: + return self._value + + +class Err(Generic[E]): + def __init__(self, e: E) -> None: + self._e = e + + def err(self) -> E: + return self._e + + +Result = Union[Ok[T], Err[E]] diff --git a/.vim/bundle/black/src/black/strings.py b/.vim/bundle/black/src/black/strings.py new file mode 100644 index 0000000..d7b6c24 --- /dev/null +++ b/.vim/bundle/black/src/black/strings.py @@ -0,0 +1,216 @@ +""" +Simple formatting on strings. Further string formatting code is in trans.py. +""" + +import regex as re +import sys +from typing import List, Pattern + + +STRING_PREFIX_CHARS = "furbFURB" # All possible string prefix characters. + + +def sub_twice(regex: Pattern[str], replacement: str, original: str) -> str: + """Replace `regex` with `replacement` twice on `original`. + + This is used by string normalization to perform replaces on + overlapping matches. + """ + return regex.sub(replacement, regex.sub(replacement, original)) + + +def has_triple_quotes(string: str) -> bool: + """ + Returns: + True iff @string starts with three quotation characters. + """ + raw_string = string.lstrip(STRING_PREFIX_CHARS) + return raw_string[:3] in {'"""', "'''"} + + +def lines_with_leading_tabs_expanded(s: str) -> List[str]: + """ + Splits string into lines and expands only leading tabs (following the normal + Python rules) + """ + lines = [] + for line in s.splitlines(): + # Find the index of the first non-whitespace character after a string of + # whitespace that includes at least one tab + match = re.match(r"\s*\t+\s*(\S)", line) + if match: + first_non_whitespace_idx = match.start(1) + + lines.append( + line[:first_non_whitespace_idx].expandtabs() + + line[first_non_whitespace_idx:] + ) + else: + lines.append(line) + return lines + + +def fix_docstring(docstring: str, prefix: str) -> str: + # https://www.python.org/dev/peps/pep-0257/#handling-docstring-indentation + if not docstring: + return "" + lines = lines_with_leading_tabs_expanded(docstring) + # Determine minimum indentation (first line doesn't count): + indent = sys.maxsize + for line in lines[1:]: + stripped = line.lstrip() + if stripped: + indent = min(indent, len(line) - len(stripped)) + # Remove indentation (first line is special): + trimmed = [lines[0].strip()] + if indent < sys.maxsize: + last_line_idx = len(lines) - 2 + for i, line in enumerate(lines[1:]): + stripped_line = line[indent:].rstrip() + if stripped_line or i == last_line_idx: + trimmed.append(prefix + stripped_line) + else: + trimmed.append("") + return "\n".join(trimmed) + + +def get_string_prefix(string: str) -> str: + """ + Pre-conditions: + * assert_is_leaf_string(@string) + + Returns: + @string's prefix (e.g. '', 'r', 'f', or 'rf'). + """ + assert_is_leaf_string(string) + + prefix = "" + prefix_idx = 0 + while string[prefix_idx] in STRING_PREFIX_CHARS: + prefix += string[prefix_idx] + prefix_idx += 1 + + return prefix + + +def assert_is_leaf_string(string: str) -> None: + """ + Checks the pre-condition that @string has the format that you would expect + of `leaf.value` where `leaf` is some Leaf such that `leaf.type == + token.STRING`. A more precise description of the pre-conditions that are + checked are listed below. + + Pre-conditions: + * @string starts with either ', ", ', or " where + `set()` is some subset of `set(STRING_PREFIX_CHARS)`. + * @string ends with a quote character (' or "). + + Raises: + AssertionError(...) if the pre-conditions listed above are not + satisfied. + """ + dquote_idx = string.find('"') + squote_idx = string.find("'") + if -1 in [dquote_idx, squote_idx]: + quote_idx = max(dquote_idx, squote_idx) + else: + quote_idx = min(squote_idx, dquote_idx) + + assert ( + 0 <= quote_idx < len(string) - 1 + ), f"{string!r} is missing a starting quote character (' or \")." + assert string[-1] in ( + "'", + '"', + ), f"{string!r} is missing an ending quote character (' or \")." + assert set(string[:quote_idx]).issubset( + set(STRING_PREFIX_CHARS) + ), f"{set(string[:quote_idx])} is NOT a subset of {set(STRING_PREFIX_CHARS)}." + + +def normalize_string_prefix(s: str, remove_u_prefix: bool = False) -> str: + """Make all string prefixes lowercase. + + If remove_u_prefix is given, also removes any u prefix from the string. + """ + match = re.match(r"^([" + STRING_PREFIX_CHARS + r"]*)(.*)$", s, re.DOTALL) + assert match is not None, f"failed to match string {s!r}" + orig_prefix = match.group(1) + new_prefix = orig_prefix.replace("F", "f").replace("B", "b").replace("U", "u") + if remove_u_prefix: + new_prefix = new_prefix.replace("u", "") + return f"{new_prefix}{match.group(2)}" + + +def normalize_string_quotes(s: str) -> str: + """Prefer double quotes but only if it doesn't cause more escaping. + + Adds or removes backslashes as appropriate. Doesn't parse and fix + strings nested in f-strings. + """ + value = s.lstrip(STRING_PREFIX_CHARS) + if value[:3] == '"""': + return s + + elif value[:3] == "'''": + orig_quote = "'''" + new_quote = '"""' + elif value[0] == '"': + orig_quote = '"' + new_quote = "'" + else: + orig_quote = "'" + new_quote = '"' + first_quote_pos = s.find(orig_quote) + if first_quote_pos == -1: + return s # There's an internal error + + prefix = s[:first_quote_pos] + unescaped_new_quote = re.compile(rf"(([^\\]|^)(\\\\)*){new_quote}") + escaped_new_quote = re.compile(rf"([^\\]|^)\\((?:\\\\)*){new_quote}") + escaped_orig_quote = re.compile(rf"([^\\]|^)\\((?:\\\\)*){orig_quote}") + body = s[first_quote_pos + len(orig_quote) : -len(orig_quote)] + if "r" in prefix.casefold(): + if unescaped_new_quote.search(body): + # There's at least one unescaped new_quote in this raw string + # so converting is impossible + return s + + # Do not introduce or remove backslashes in raw strings + new_body = body + else: + # remove unnecessary escapes + new_body = sub_twice(escaped_new_quote, rf"\1\2{new_quote}", body) + if body != new_body: + # Consider the string without unnecessary escapes as the original + body = new_body + s = f"{prefix}{orig_quote}{body}{orig_quote}" + new_body = sub_twice(escaped_orig_quote, rf"\1\2{orig_quote}", new_body) + new_body = sub_twice(unescaped_new_quote, rf"\1\\{new_quote}", new_body) + if "f" in prefix.casefold(): + matches = re.findall( + r""" + (?:(? orig_escape_count: + return s # Do not introduce more escaping + + if new_escape_count == orig_escape_count and orig_quote == '"': + return s # Prefer double quotes + + return f"{prefix}{new_quote}{new_body}{new_quote}" diff --git a/.vim/bundle/black/src/black/trans.py b/.vim/bundle/black/src/black/trans.py new file mode 100644 index 0000000..023dcd3 --- /dev/null +++ b/.vim/bundle/black/src/black/trans.py @@ -0,0 +1,2011 @@ +""" +String transformers that can split and merge strings. +""" +from abc import ABC, abstractmethod +from collections import defaultdict +from dataclasses import dataclass +import regex as re +from typing import ( + Any, + Callable, + Collection, + Dict, + Iterable, + Iterator, + List, + Optional, + Sequence, + Set, + Tuple, + TypeVar, + Union, +) + +from black.rusty import Result, Ok, Err + +from black.mode import Feature +from black.nodes import syms, replace_child, parent_type +from black.nodes import is_empty_par, is_empty_lpar, is_empty_rpar +from black.nodes import OPENING_BRACKETS, CLOSING_BRACKETS, STANDALONE_COMMENT +from black.lines import Line, append_leaves +from black.brackets import BracketMatchError +from black.comments import contains_pragma_comment +from black.strings import has_triple_quotes, get_string_prefix, assert_is_leaf_string +from black.strings import normalize_string_quotes + +from blib2to3.pytree import Leaf, Node +from blib2to3.pgen2 import token + + +class CannotTransform(Exception): + """Base class for errors raised by Transformers.""" + + +# types +T = TypeVar("T") +LN = Union[Leaf, Node] +Transformer = Callable[[Line, Collection[Feature]], Iterator[Line]] +Index = int +NodeType = int +ParserState = int +StringID = int +TResult = Result[T, CannotTransform] # (T)ransform Result +TMatchResult = TResult[Index] + + +def TErr(err_msg: str) -> Err[CannotTransform]: + """(T)ransform Err + + Convenience function used when working with the TResult type. + """ + cant_transform = CannotTransform(err_msg) + return Err(cant_transform) + + +@dataclass # type: ignore +class StringTransformer(ABC): + """ + An implementation of the Transformer protocol that relies on its + subclasses overriding the template methods `do_match(...)` and + `do_transform(...)`. + + This Transformer works exclusively on strings (for example, by merging + or splitting them). + + The following sections can be found among the docstrings of each concrete + StringTransformer subclass. + + Requirements: + Which requirements must be met of the given Line for this + StringTransformer to be applied? + + Transformations: + If the given Line meets all of the above requirements, which string + transformations can you expect to be applied to it by this + StringTransformer? + + Collaborations: + What contractual agreements does this StringTransformer have with other + StringTransfomers? Such collaborations should be eliminated/minimized + as much as possible. + """ + + line_length: int + normalize_strings: bool + __name__ = "StringTransformer" + + @abstractmethod + def do_match(self, line: Line) -> TMatchResult: + """ + Returns: + * Ok(string_idx) such that `line.leaves[string_idx]` is our target + string, if a match was able to be made. + OR + * Err(CannotTransform), if a match was not able to be made. + """ + + @abstractmethod + def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]: + """ + Yields: + * Ok(new_line) where new_line is the new transformed line. + OR + * Err(CannotTransform) if the transformation failed for some reason. The + `do_match(...)` template method should usually be used to reject + the form of the given Line, but in some cases it is difficult to + know whether or not a Line meets the StringTransformer's + requirements until the transformation is already midway. + + Side Effects: + This method should NOT mutate @line directly, but it MAY mutate the + Line's underlying Node structure. (WARNING: If the underlying Node + structure IS altered, then this method should NOT be allowed to + yield an CannotTransform after that point.) + """ + + def __call__(self, line: Line, _features: Collection[Feature]) -> Iterator[Line]: + """ + StringTransformer instances have a call signature that mirrors that of + the Transformer type. + + Raises: + CannotTransform(...) if the concrete StringTransformer class is unable + to transform @line. + """ + # Optimization to avoid calling `self.do_match(...)` when the line does + # not contain any string. + if not any(leaf.type == token.STRING for leaf in line.leaves): + raise CannotTransform("There are no strings in this line.") + + match_result = self.do_match(line) + + if isinstance(match_result, Err): + cant_transform = match_result.err() + raise CannotTransform( + f"The string transformer {self.__class__.__name__} does not recognize" + " this line as one that it can transform." + ) from cant_transform + + string_idx = match_result.ok() + + for line_result in self.do_transform(line, string_idx): + if isinstance(line_result, Err): + cant_transform = line_result.err() + raise CannotTransform( + "StringTransformer failed while attempting to transform string." + ) from cant_transform + line = line_result.ok() + yield line + + +@dataclass +class CustomSplit: + """A custom (i.e. manual) string split. + + A single CustomSplit instance represents a single substring. + + Examples: + Consider the following string: + ``` + "Hi there friend." + " This is a custom" + f" string {split}." + ``` + + This string will correspond to the following three CustomSplit instances: + ``` + CustomSplit(False, 16) + CustomSplit(False, 17) + CustomSplit(True, 16) + ``` + """ + + has_prefix: bool + break_idx: int + + +class CustomSplitMapMixin: + """ + This mixin class is used to map merged strings to a sequence of + CustomSplits, which will then be used to re-split the strings iff none of + the resultant substrings go over the configured max line length. + """ + + _Key = Tuple[StringID, str] + _CUSTOM_SPLIT_MAP: Dict[_Key, Tuple[CustomSplit, ...]] = defaultdict(tuple) + + @staticmethod + def _get_key(string: str) -> "CustomSplitMapMixin._Key": + """ + Returns: + A unique identifier that is used internally to map @string to a + group of custom splits. + """ + return (id(string), string) + + def add_custom_splits( + self, string: str, custom_splits: Iterable[CustomSplit] + ) -> None: + """Custom Split Map Setter Method + + Side Effects: + Adds a mapping from @string to the custom splits @custom_splits. + """ + key = self._get_key(string) + self._CUSTOM_SPLIT_MAP[key] = tuple(custom_splits) + + def pop_custom_splits(self, string: str) -> List[CustomSplit]: + """Custom Split Map Getter Method + + Returns: + * A list of the custom splits that are mapped to @string, if any + exist. + OR + * [], otherwise. + + Side Effects: + Deletes the mapping between @string and its associated custom + splits (which are returned to the caller). + """ + key = self._get_key(string) + + custom_splits = self._CUSTOM_SPLIT_MAP[key] + del self._CUSTOM_SPLIT_MAP[key] + + return list(custom_splits) + + def has_custom_splits(self, string: str) -> bool: + """ + Returns: + True iff @string is associated with a set of custom splits. + """ + key = self._get_key(string) + return key in self._CUSTOM_SPLIT_MAP + + +class StringMerger(CustomSplitMapMixin, StringTransformer): + """StringTransformer that merges strings together. + + Requirements: + (A) The line contains adjacent strings such that ALL of the validation checks + listed in StringMerger.__validate_msg(...)'s docstring pass. + OR + (B) The line contains a string which uses line continuation backslashes. + + Transformations: + Depending on which of the two requirements above where met, either: + + (A) The string group associated with the target string is merged. + OR + (B) All line-continuation backslashes are removed from the target string. + + Collaborations: + StringMerger provides custom split information to StringSplitter. + """ + + def do_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + for (i, leaf) in enumerate(LL): + if ( + leaf.type == token.STRING + and is_valid_index(i + 1) + and LL[i + 1].type == token.STRING + ): + return Ok(i) + + if leaf.type == token.STRING and "\\\n" in leaf.value: + return Ok(i) + + return TErr("This line has no strings that need merging.") + + def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]: + new_line = line + rblc_result = self._remove_backslash_line_continuation_chars( + new_line, string_idx + ) + if isinstance(rblc_result, Ok): + new_line = rblc_result.ok() + + msg_result = self._merge_string_group(new_line, string_idx) + if isinstance(msg_result, Ok): + new_line = msg_result.ok() + + if isinstance(rblc_result, Err) and isinstance(msg_result, Err): + msg_cant_transform = msg_result.err() + rblc_cant_transform = rblc_result.err() + cant_transform = CannotTransform( + "StringMerger failed to merge any strings in this line." + ) + + # Chain the errors together using `__cause__`. + msg_cant_transform.__cause__ = rblc_cant_transform + cant_transform.__cause__ = msg_cant_transform + + yield Err(cant_transform) + else: + yield Ok(new_line) + + @staticmethod + def _remove_backslash_line_continuation_chars( + line: Line, string_idx: int + ) -> TResult[Line]: + """ + Merge strings that were split across multiple lines using + line-continuation backslashes. + + Returns: + Ok(new_line), if @line contains backslash line-continuation + characters. + OR + Err(CannotTransform), otherwise. + """ + LL = line.leaves + + string_leaf = LL[string_idx] + if not ( + string_leaf.type == token.STRING + and "\\\n" in string_leaf.value + and not has_triple_quotes(string_leaf.value) + ): + return TErr( + f"String leaf {string_leaf} does not contain any backslash line" + " continuation characters." + ) + + new_line = line.clone() + new_line.comments = line.comments.copy() + append_leaves(new_line, line, LL) + + new_string_leaf = new_line.leaves[string_idx] + new_string_leaf.value = new_string_leaf.value.replace("\\\n", "") + + return Ok(new_line) + + def _merge_string_group(self, line: Line, string_idx: int) -> TResult[Line]: + """ + Merges string group (i.e. set of adjacent strings) where the first + string in the group is `line.leaves[string_idx]`. + + Returns: + Ok(new_line), if ALL of the validation checks found in + __validate_msg(...) pass. + OR + Err(CannotTransform), otherwise. + """ + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + vresult = self._validate_msg(line, string_idx) + if isinstance(vresult, Err): + return vresult + + # If the string group is wrapped inside an Atom node, we must make sure + # to later replace that Atom with our new (merged) string leaf. + atom_node = LL[string_idx].parent + + # We will place BREAK_MARK in between every two substrings that we + # merge. We will then later go through our final result and use the + # various instances of BREAK_MARK we find to add the right values to + # the custom split map. + BREAK_MARK = "@@@@@ BLACK BREAKPOINT MARKER @@@@@" + + QUOTE = LL[string_idx].value[-1] + + def make_naked(string: str, string_prefix: str) -> str: + """Strip @string (i.e. make it a "naked" string) + + Pre-conditions: + * assert_is_leaf_string(@string) + + Returns: + A string that is identical to @string except that + @string_prefix has been stripped, the surrounding QUOTE + characters have been removed, and any remaining QUOTE + characters have been escaped. + """ + assert_is_leaf_string(string) + + RE_EVEN_BACKSLASHES = r"(?:(?= 0 + ), "Logic error while filling the custom string breakpoint cache." + + temp_string = temp_string[mark_idx + len(BREAK_MARK) :] + breakpoint_idx = mark_idx + (len(prefix) if has_prefix else 0) + 1 + custom_splits.append(CustomSplit(has_prefix, breakpoint_idx)) + + string_leaf = Leaf(token.STRING, S_leaf.value.replace(BREAK_MARK, "")) + + if atom_node is not None: + replace_child(atom_node, string_leaf) + + # Build the final line ('new_line') that this method will later return. + new_line = line.clone() + for (i, leaf) in enumerate(LL): + if i == string_idx: + new_line.append(string_leaf) + + if string_idx <= i < string_idx + num_of_strings: + for comment_leaf in line.comments_after(LL[i]): + new_line.append(comment_leaf, preformatted=True) + continue + + append_leaves(new_line, line, [leaf]) + + self.add_custom_splits(string_leaf.value, custom_splits) + return Ok(new_line) + + @staticmethod + def _validate_msg(line: Line, string_idx: int) -> TResult[None]: + """Validate (M)erge (S)tring (G)roup + + Transform-time string validation logic for __merge_string_group(...). + + Returns: + * Ok(None), if ALL validation checks (listed below) pass. + OR + * Err(CannotTransform), if any of the following are true: + - The target string group does not contain ANY stand-alone comments. + - The target string is not in a string group (i.e. it has no + adjacent strings). + - The string group has more than one inline comment. + - The string group has an inline comment that appears to be a pragma. + - The set of all string prefixes in the string group is of + length greater than one and is not equal to {"", "f"}. + - The string group consists of raw strings. + """ + # We first check for "inner" stand-alone comments (i.e. stand-alone + # comments that have a string leaf before them AND after them). + for inc in [1, -1]: + i = string_idx + found_sa_comment = False + is_valid_index = is_valid_index_factory(line.leaves) + while is_valid_index(i) and line.leaves[i].type in [ + token.STRING, + STANDALONE_COMMENT, + ]: + if line.leaves[i].type == STANDALONE_COMMENT: + found_sa_comment = True + elif found_sa_comment: + return TErr( + "StringMerger does NOT merge string groups which contain " + "stand-alone comments." + ) + + i += inc + + num_of_inline_string_comments = 0 + set_of_prefixes = set() + num_of_strings = 0 + for leaf in line.leaves[string_idx:]: + if leaf.type != token.STRING: + # If the string group is trailed by a comma, we count the + # comments trailing the comma to be one of the string group's + # comments. + if leaf.type == token.COMMA and id(leaf) in line.comments: + num_of_inline_string_comments += 1 + break + + if has_triple_quotes(leaf.value): + return TErr("StringMerger does NOT merge multiline strings.") + + num_of_strings += 1 + prefix = get_string_prefix(leaf.value).lower() + if "r" in prefix: + return TErr("StringMerger does NOT merge raw strings.") + + set_of_prefixes.add(prefix) + + if id(leaf) in line.comments: + num_of_inline_string_comments += 1 + if contains_pragma_comment(line.comments[id(leaf)]): + return TErr("Cannot merge strings which have pragma comments.") + + if num_of_strings < 2: + return TErr( + f"Not enough strings to merge (num_of_strings={num_of_strings})." + ) + + if num_of_inline_string_comments > 1: + return TErr( + f"Too many inline string comments ({num_of_inline_string_comments})." + ) + + if len(set_of_prefixes) > 1 and set_of_prefixes != {"", "f"}: + return TErr(f"Too many different prefixes ({set_of_prefixes}).") + + return Ok(None) + + +class StringParenStripper(StringTransformer): + """StringTransformer that strips surrounding parentheses from strings. + + Requirements: + The line contains a string which is surrounded by parentheses and: + - The target string is NOT the only argument to a function call. + - The target string is NOT a "pointless" string. + - If the target string contains a PERCENT, the brackets are not + preceded or followed by an operator with higher precedence than + PERCENT. + + Transformations: + The parentheses mentioned in the 'Requirements' section are stripped. + + Collaborations: + StringParenStripper has its own inherent usefulness, but it is also + relied on to clean up the parentheses created by StringParenWrapper (in + the event that they are no longer needed). + """ + + def do_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + for (idx, leaf) in enumerate(LL): + # Should be a string... + if leaf.type != token.STRING: + continue + + # If this is a "pointless" string... + if ( + leaf.parent + and leaf.parent.parent + and leaf.parent.parent.type == syms.simple_stmt + ): + continue + + # Should be preceded by a non-empty LPAR... + if ( + not is_valid_index(idx - 1) + or LL[idx - 1].type != token.LPAR + or is_empty_lpar(LL[idx - 1]) + ): + continue + + # That LPAR should NOT be preceded by a function name or a closing + # bracket (which could be a function which returns a function or a + # list/dictionary that contains a function)... + if is_valid_index(idx - 2) and ( + LL[idx - 2].type == token.NAME or LL[idx - 2].type in CLOSING_BRACKETS + ): + continue + + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + next_idx = string_parser.parse(LL, string_idx) + + # if the leaves in the parsed string include a PERCENT, we need to + # make sure the initial LPAR is NOT preceded by an operator with + # higher or equal precedence to PERCENT + if is_valid_index(idx - 2): + # mypy can't quite follow unless we name this + before_lpar = LL[idx - 2] + if token.PERCENT in {leaf.type for leaf in LL[idx - 1 : next_idx]} and ( + ( + before_lpar.type + in { + token.STAR, + token.AT, + token.SLASH, + token.DOUBLESLASH, + token.PERCENT, + token.TILDE, + token.DOUBLESTAR, + token.AWAIT, + token.LSQB, + token.LPAR, + } + ) + or ( + # only unary PLUS/MINUS + before_lpar.parent + and before_lpar.parent.type == syms.factor + and (before_lpar.type in {token.PLUS, token.MINUS}) + ) + ): + continue + + # Should be followed by a non-empty RPAR... + if ( + is_valid_index(next_idx) + and LL[next_idx].type == token.RPAR + and not is_empty_rpar(LL[next_idx]) + ): + # That RPAR should NOT be followed by anything with higher + # precedence than PERCENT + if is_valid_index(next_idx + 1) and LL[next_idx + 1].type in { + token.DOUBLESTAR, + token.LSQB, + token.LPAR, + token.DOT, + }: + continue + + return Ok(string_idx) + + return TErr("This line has no strings wrapped in parens.") + + def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]: + LL = line.leaves + + string_parser = StringParser() + rpar_idx = string_parser.parse(LL, string_idx) + + for leaf in (LL[string_idx - 1], LL[rpar_idx]): + if line.comments_after(leaf): + yield TErr( + "Will not strip parentheses which have comments attached to them." + ) + return + + new_line = line.clone() + new_line.comments = line.comments.copy() + try: + append_leaves(new_line, line, LL[: string_idx - 1]) + except BracketMatchError: + # HACK: I believe there is currently a bug somewhere in + # right_hand_split() that is causing brackets to not be tracked + # properly by a shared BracketTracker. + append_leaves(new_line, line, LL[: string_idx - 1], preformatted=True) + + string_leaf = Leaf(token.STRING, LL[string_idx].value) + LL[string_idx - 1].remove() + replace_child(LL[string_idx], string_leaf) + new_line.append(string_leaf) + + append_leaves( + new_line, line, LL[string_idx + 1 : rpar_idx] + LL[rpar_idx + 1 :] + ) + + LL[rpar_idx].remove() + + yield Ok(new_line) + + +class BaseStringSplitter(StringTransformer): + """ + Abstract class for StringTransformers which transform a Line's strings by splitting + them or placing them on their own lines where necessary to avoid going over + the configured line length. + + Requirements: + * The target string value is responsible for the line going over the + line length limit. It follows that after all of black's other line + split methods have been exhausted, this line (or one of the resulting + lines after all line splits are performed) would still be over the + line_length limit unless we split this string. + AND + * The target string is NOT a "pointless" string (i.e. a string that has + no parent or siblings). + AND + * The target string is not followed by an inline comment that appears + to be a pragma. + AND + * The target string is not a multiline (i.e. triple-quote) string. + """ + + STRING_OPERATORS = [ + token.EQEQUAL, + token.GREATER, + token.GREATEREQUAL, + token.LESS, + token.LESSEQUAL, + token.NOTEQUAL, + token.PERCENT, + token.PLUS, + token.STAR, + ] + + @abstractmethod + def do_splitter_match(self, line: Line) -> TMatchResult: + """ + BaseStringSplitter asks its clients to override this method instead of + `StringTransformer.do_match(...)`. + + Follows the same protocol as `StringTransformer.do_match(...)`. + + Refer to `help(StringTransformer.do_match)` for more information. + """ + + def do_match(self, line: Line) -> TMatchResult: + match_result = self.do_splitter_match(line) + if isinstance(match_result, Err): + return match_result + + string_idx = match_result.ok() + vresult = self._validate(line, string_idx) + if isinstance(vresult, Err): + return vresult + + return match_result + + def _validate(self, line: Line, string_idx: int) -> TResult[None]: + """ + Checks that @line meets all of the requirements listed in this classes' + docstring. Refer to `help(BaseStringSplitter)` for a detailed + description of those requirements. + + Returns: + * Ok(None), if ALL of the requirements are met. + OR + * Err(CannotTransform), if ANY of the requirements are NOT met. + """ + LL = line.leaves + + string_leaf = LL[string_idx] + + max_string_length = self._get_max_string_length(line, string_idx) + if len(string_leaf.value) <= max_string_length: + return TErr( + "The string itself is not what is causing this line to be too long." + ) + + if not string_leaf.parent or [L.type for L in string_leaf.parent.children] == [ + token.STRING, + token.NEWLINE, + ]: + return TErr( + f"This string ({string_leaf.value}) appears to be pointless (i.e. has" + " no parent)." + ) + + if id(line.leaves[string_idx]) in line.comments and contains_pragma_comment( + line.comments[id(line.leaves[string_idx])] + ): + return TErr( + "Line appears to end with an inline pragma comment. Splitting the line" + " could modify the pragma's behavior." + ) + + if has_triple_quotes(string_leaf.value): + return TErr("We cannot split multiline strings.") + + return Ok(None) + + def _get_max_string_length(self, line: Line, string_idx: int) -> int: + """ + Calculates the max string length used when attempting to determine + whether or not the target string is responsible for causing the line to + go over the line length limit. + + WARNING: This method is tightly coupled to both StringSplitter and + (especially) StringParenWrapper. There is probably a better way to + accomplish what is being done here. + + Returns: + max_string_length: such that `line.leaves[string_idx].value > + max_string_length` implies that the target string IS responsible + for causing this line to exceed the line length limit. + """ + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + # We use the shorthand "WMA4" in comments to abbreviate "We must + # account for". When giving examples, we use STRING to mean some/any + # valid string. + # + # Finally, we use the following convenience variables: + # + # P: The leaf that is before the target string leaf. + # N: The leaf that is after the target string leaf. + # NN: The leaf that is after N. + + # WMA4 the whitespace at the beginning of the line. + offset = line.depth * 4 + + if is_valid_index(string_idx - 1): + p_idx = string_idx - 1 + if ( + LL[string_idx - 1].type == token.LPAR + and LL[string_idx - 1].value == "" + and string_idx >= 2 + ): + # If the previous leaf is an empty LPAR placeholder, we should skip it. + p_idx -= 1 + + P = LL[p_idx] + if P.type in self.STRING_OPERATORS: + # WMA4 a space and a string operator (e.g. `+ STRING` or `== STRING`). + offset += len(str(P)) + 1 + + if P.type == token.COMMA: + # WMA4 a space, a comma, and a closing bracket [e.g. `), STRING`]. + offset += 3 + + if P.type in [token.COLON, token.EQUAL, token.PLUSEQUAL, token.NAME]: + # This conditional branch is meant to handle dictionary keys, + # variable assignments, 'return STRING' statement lines, and + # 'else STRING' ternary expression lines. + + # WMA4 a single space. + offset += 1 + + # WMA4 the lengths of any leaves that came before that space, + # but after any closing bracket before that space. + for leaf in reversed(LL[: p_idx + 1]): + offset += len(str(leaf)) + if leaf.type in CLOSING_BRACKETS: + break + + if is_valid_index(string_idx + 1): + N = LL[string_idx + 1] + if N.type == token.RPAR and N.value == "" and len(LL) > string_idx + 2: + # If the next leaf is an empty RPAR placeholder, we should skip it. + N = LL[string_idx + 2] + + if N.type == token.COMMA: + # WMA4 a single comma at the end of the string (e.g `STRING,`). + offset += 1 + + if is_valid_index(string_idx + 2): + NN = LL[string_idx + 2] + + if N.type == token.DOT and NN.type == token.NAME: + # This conditional branch is meant to handle method calls invoked + # off of a string literal up to and including the LPAR character. + + # WMA4 the '.' character. + offset += 1 + + if ( + is_valid_index(string_idx + 3) + and LL[string_idx + 3].type == token.LPAR + ): + # WMA4 the left parenthesis character. + offset += 1 + + # WMA4 the length of the method's name. + offset += len(NN.value) + + has_comments = False + for comment_leaf in line.comments_after(LL[string_idx]): + if not has_comments: + has_comments = True + # WMA4 two spaces before the '#' character. + offset += 2 + + # WMA4 the length of the inline comment. + offset += len(comment_leaf.value) + + max_string_length = self.line_length - offset + return max_string_length + + +class StringSplitter(CustomSplitMapMixin, BaseStringSplitter): + """ + StringTransformer that splits "atom" strings (i.e. strings which exist on + lines by themselves). + + Requirements: + * The line consists ONLY of a single string (possibly prefixed by a + string operator [e.g. '+' or '==']), MAYBE a string trailer, and MAYBE + a trailing comma. + AND + * All of the requirements listed in BaseStringSplitter's docstring. + + Transformations: + The string mentioned in the 'Requirements' section is split into as + many substrings as necessary to adhere to the configured line length. + + In the final set of substrings, no substring should be smaller than + MIN_SUBSTR_SIZE characters. + + The string will ONLY be split on spaces (i.e. each new substring should + start with a space). Note that the string will NOT be split on a space + which is escaped with a backslash. + + If the string is an f-string, it will NOT be split in the middle of an + f-expression (e.g. in f"FooBar: {foo() if x else bar()}", {foo() if x + else bar()} is an f-expression). + + If the string that is being split has an associated set of custom split + records and those custom splits will NOT result in any line going over + the configured line length, those custom splits are used. Otherwise the + string is split as late as possible (from left-to-right) while still + adhering to the transformation rules listed above. + + Collaborations: + StringSplitter relies on StringMerger to construct the appropriate + CustomSplit objects and add them to the custom split map. + """ + + MIN_SUBSTR_SIZE = 6 + # Matches an "f-expression" (e.g. {var}) that might be found in an f-string. + RE_FEXPR = r""" + (? TMatchResult: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + + idx = 0 + + # The first two leaves MAY be the 'not in' keywords... + if ( + is_valid_index(idx) + and is_valid_index(idx + 1) + and [LL[idx].type, LL[idx + 1].type] == [token.NAME, token.NAME] + and str(LL[idx]) + str(LL[idx + 1]) == "not in" + ): + idx += 2 + # Else the first leaf MAY be a string operator symbol or the 'in' keyword... + elif is_valid_index(idx) and ( + LL[idx].type in self.STRING_OPERATORS + or LL[idx].type == token.NAME + and str(LL[idx]) == "in" + ): + idx += 1 + + # The next/first leaf MAY be an empty LPAR... + if is_valid_index(idx) and is_empty_lpar(LL[idx]): + idx += 1 + + # The next/first leaf MUST be a string... + if not is_valid_index(idx) or LL[idx].type != token.STRING: + return TErr("Line does not start with a string.") + + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # That string MAY be followed by an empty RPAR... + if is_valid_index(idx) and is_empty_rpar(LL[idx]): + idx += 1 + + # That string / empty RPAR leaf MAY be followed by a comma... + if is_valid_index(idx) and LL[idx].type == token.COMMA: + idx += 1 + + # But no more leaves are allowed... + if is_valid_index(idx): + return TErr("This line does not end with a string.") + + return Ok(string_idx) + + def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]: + LL = line.leaves + + QUOTE = LL[string_idx].value[-1] + + is_valid_index = is_valid_index_factory(LL) + insert_str_child = insert_str_child_factory(LL[string_idx]) + + prefix = get_string_prefix(LL[string_idx].value).lower() + + # We MAY choose to drop the 'f' prefix from substrings that don't + # contain any f-expressions, but ONLY if the original f-string + # contains at least one f-expression. Otherwise, we will alter the AST + # of the program. + drop_pointless_f_prefix = ("f" in prefix) and re.search( + self.RE_FEXPR, LL[string_idx].value, re.VERBOSE + ) + + first_string_line = True + + string_op_leaves = self._get_string_operator_leaves(LL) + string_op_leaves_length = ( + sum([len(str(prefix_leaf)) for prefix_leaf in string_op_leaves]) + 1 + if string_op_leaves + else 0 + ) + + def maybe_append_string_operators(new_line: Line) -> None: + """ + Side Effects: + If @line starts with a string operator and this is the first + line we are constructing, this function appends the string + operator to @new_line and replaces the old string operator leaf + in the node structure. Otherwise this function does nothing. + """ + maybe_prefix_leaves = string_op_leaves if first_string_line else [] + for i, prefix_leaf in enumerate(maybe_prefix_leaves): + replace_child(LL[i], prefix_leaf) + new_line.append(prefix_leaf) + + ends_with_comma = ( + is_valid_index(string_idx + 1) and LL[string_idx + 1].type == token.COMMA + ) + + def max_last_string() -> int: + """ + Returns: + The max allowed length of the string value used for the last + line we will construct. + """ + result = self.line_length + result -= line.depth * 4 + result -= 1 if ends_with_comma else 0 + result -= string_op_leaves_length + return result + + # --- Calculate Max Break Index (for string value) + # We start with the line length limit + max_break_idx = self.line_length + # The last index of a string of length N is N-1. + max_break_idx -= 1 + # Leading whitespace is not present in the string value (e.g. Leaf.value). + max_break_idx -= line.depth * 4 + if max_break_idx < 0: + yield TErr( + f"Unable to split {LL[string_idx].value} at such high of a line depth:" + f" {line.depth}" + ) + return + + # Check if StringMerger registered any custom splits. + custom_splits = self.pop_custom_splits(LL[string_idx].value) + # We use them ONLY if none of them would produce lines that exceed the + # line limit. + use_custom_breakpoints = bool( + custom_splits + and all(csplit.break_idx <= max_break_idx for csplit in custom_splits) + ) + + # Temporary storage for the remaining chunk of the string line that + # can't fit onto the line currently being constructed. + rest_value = LL[string_idx].value + + def more_splits_should_be_made() -> bool: + """ + Returns: + True iff `rest_value` (the remaining string value from the last + split), should be split again. + """ + if use_custom_breakpoints: + return len(custom_splits) > 1 + else: + return len(rest_value) > max_last_string() + + string_line_results: List[Ok[Line]] = [] + while more_splits_should_be_made(): + if use_custom_breakpoints: + # Custom User Split (manual) + csplit = custom_splits.pop(0) + break_idx = csplit.break_idx + else: + # Algorithmic Split (automatic) + max_bidx = max_break_idx - string_op_leaves_length + maybe_break_idx = self._get_break_idx(rest_value, max_bidx) + if maybe_break_idx is None: + # If we are unable to algorithmically determine a good split + # and this string has custom splits registered to it, we + # fall back to using them--which means we have to start + # over from the beginning. + if custom_splits: + rest_value = LL[string_idx].value + string_line_results = [] + first_string_line = True + use_custom_breakpoints = True + continue + + # Otherwise, we stop splitting here. + break + + break_idx = maybe_break_idx + + # --- Construct `next_value` + next_value = rest_value[:break_idx] + QUOTE + + # HACK: The following 'if' statement is a hack to fix the custom + # breakpoint index in the case of either: (a) substrings that were + # f-strings but will have the 'f' prefix removed OR (b) substrings + # that were not f-strings but will now become f-strings because of + # redundant use of the 'f' prefix (i.e. none of the substrings + # contain f-expressions but one or more of them had the 'f' prefix + # anyway; in which case, we will prepend 'f' to _all_ substrings). + # + # There is probably a better way to accomplish what is being done + # here... + # + # If this substring is an f-string, we _could_ remove the 'f' + # prefix, and the current custom split did NOT originally use a + # prefix... + if ( + next_value != self._normalize_f_string(next_value, prefix) + and use_custom_breakpoints + and not csplit.has_prefix + ): + # Then `csplit.break_idx` will be off by one after removing + # the 'f' prefix. + break_idx += 1 + next_value = rest_value[:break_idx] + QUOTE + + if drop_pointless_f_prefix: + next_value = self._normalize_f_string(next_value, prefix) + + # --- Construct `next_leaf` + next_leaf = Leaf(token.STRING, next_value) + insert_str_child(next_leaf) + self._maybe_normalize_string_quotes(next_leaf) + + # --- Construct `next_line` + next_line = line.clone() + maybe_append_string_operators(next_line) + next_line.append(next_leaf) + string_line_results.append(Ok(next_line)) + + rest_value = prefix + QUOTE + rest_value[break_idx:] + first_string_line = False + + yield from string_line_results + + if drop_pointless_f_prefix: + rest_value = self._normalize_f_string(rest_value, prefix) + + rest_leaf = Leaf(token.STRING, rest_value) + insert_str_child(rest_leaf) + + # NOTE: I could not find a test case that verifies that the following + # line is actually necessary, but it seems to be. Otherwise we risk + # not normalizing the last substring, right? + self._maybe_normalize_string_quotes(rest_leaf) + + last_line = line.clone() + maybe_append_string_operators(last_line) + + # If there are any leaves to the right of the target string... + if is_valid_index(string_idx + 1): + # We use `temp_value` here to determine how long the last line + # would be if we were to append all the leaves to the right of the + # target string to the last string line. + temp_value = rest_value + for leaf in LL[string_idx + 1 :]: + temp_value += str(leaf) + if leaf.type == token.LPAR: + break + + # Try to fit them all on the same line with the last substring... + if ( + len(temp_value) <= max_last_string() + or LL[string_idx + 1].type == token.COMMA + ): + last_line.append(rest_leaf) + append_leaves(last_line, line, LL[string_idx + 1 :]) + yield Ok(last_line) + # Otherwise, place the last substring on one line and everything + # else on a line below that... + else: + last_line.append(rest_leaf) + yield Ok(last_line) + + non_string_line = line.clone() + append_leaves(non_string_line, line, LL[string_idx + 1 :]) + yield Ok(non_string_line) + # Else the target string was the last leaf... + else: + last_line.append(rest_leaf) + last_line.comments = line.comments.copy() + yield Ok(last_line) + + def _iter_nameescape_slices(self, string: str) -> Iterator[Tuple[Index, Index]]: + """ + Yields: + All ranges of @string which, if @string were to be split there, + would result in the splitting of an \\N{...} expression (which is NOT + allowed). + """ + # True - the previous backslash was unescaped + # False - the previous backslash was escaped *or* there was no backslash + previous_was_unescaped_backslash = False + it = iter(enumerate(string)) + for idx, c in it: + if c == "\\": + previous_was_unescaped_backslash = not previous_was_unescaped_backslash + continue + if not previous_was_unescaped_backslash or c != "N": + previous_was_unescaped_backslash = False + continue + previous_was_unescaped_backslash = False + + begin = idx - 1 # the position of backslash before \N{...} + for idx, c in it: + if c == "}": + end = idx + break + else: + # malformed nameescape expression? + # should have been detected by AST parsing earlier... + raise RuntimeError(f"{self.__class__.__name__} LOGIC ERROR!") + yield begin, end + + def _iter_fexpr_slices(self, string: str) -> Iterator[Tuple[Index, Index]]: + """ + Yields: + All ranges of @string which, if @string were to be split there, + would result in the splitting of an f-expression (which is NOT + allowed). + """ + if "f" not in get_string_prefix(string).lower(): + return + + for match in re.finditer(self.RE_FEXPR, string, re.VERBOSE): + yield match.span() + + def _get_illegal_split_indices(self, string: str) -> Set[Index]: + illegal_indices: Set[Index] = set() + iterators = [ + self._iter_fexpr_slices(string), + self._iter_nameescape_slices(string), + ] + for it in iterators: + for begin, end in it: + illegal_indices.update(range(begin, end + 1)) + return illegal_indices + + def _get_break_idx(self, string: str, max_break_idx: int) -> Optional[int]: + """ + This method contains the algorithm that StringSplitter uses to + determine which character to split each string at. + + Args: + @string: The substring that we are attempting to split. + @max_break_idx: The ideal break index. We will return this value if it + meets all the necessary conditions. In the likely event that it + doesn't we will try to find the closest index BELOW @max_break_idx + that does. If that fails, we will expand our search by also + considering all valid indices ABOVE @max_break_idx. + + Pre-Conditions: + * assert_is_leaf_string(@string) + * 0 <= @max_break_idx < len(@string) + + Returns: + break_idx, if an index is able to be found that meets all of the + conditions listed in the 'Transformations' section of this classes' + docstring. + OR + None, otherwise. + """ + is_valid_index = is_valid_index_factory(string) + + assert is_valid_index(max_break_idx) + assert_is_leaf_string(string) + + _illegal_split_indices = self._get_illegal_split_indices(string) + + def breaks_unsplittable_expression(i: Index) -> bool: + """ + Returns: + True iff returning @i would result in the splitting of an + unsplittable expression (which is NOT allowed). + """ + return i in _illegal_split_indices + + def passes_all_checks(i: Index) -> bool: + """ + Returns: + True iff ALL of the conditions listed in the 'Transformations' + section of this classes' docstring would be be met by returning @i. + """ + is_space = string[i] == " " + + is_not_escaped = True + j = i - 1 + while is_valid_index(j) and string[j] == "\\": + is_not_escaped = not is_not_escaped + j -= 1 + + is_big_enough = ( + len(string[i:]) >= self.MIN_SUBSTR_SIZE + and len(string[:i]) >= self.MIN_SUBSTR_SIZE + ) + return ( + is_space + and is_not_escaped + and is_big_enough + and not breaks_unsplittable_expression(i) + ) + + # First, we check all indices BELOW @max_break_idx. + break_idx = max_break_idx + while is_valid_index(break_idx - 1) and not passes_all_checks(break_idx): + break_idx -= 1 + + if not passes_all_checks(break_idx): + # If that fails, we check all indices ABOVE @max_break_idx. + # + # If we are able to find a valid index here, the next line is going + # to be longer than the specified line length, but it's probably + # better than doing nothing at all. + break_idx = max_break_idx + 1 + while is_valid_index(break_idx + 1) and not passes_all_checks(break_idx): + break_idx += 1 + + if not is_valid_index(break_idx) or not passes_all_checks(break_idx): + return None + + return break_idx + + def _maybe_normalize_string_quotes(self, leaf: Leaf) -> None: + if self.normalize_strings: + leaf.value = normalize_string_quotes(leaf.value) + + def _normalize_f_string(self, string: str, prefix: str) -> str: + """ + Pre-Conditions: + * assert_is_leaf_string(@string) + + Returns: + * If @string is an f-string that contains no f-expressions, we + return a string identical to @string except that the 'f' prefix + has been stripped and all double braces (i.e. '{{' or '}}') have + been normalized (i.e. turned into '{' or '}'). + OR + * Otherwise, we return @string. + """ + assert_is_leaf_string(string) + + if "f" in prefix and not re.search(self.RE_FEXPR, string, re.VERBOSE): + new_prefix = prefix.replace("f", "") + + temp = string[len(prefix) :] + temp = re.sub(r"\{\{", "{", temp) + temp = re.sub(r"\}\}", "}", temp) + new_string = temp + + return f"{new_prefix}{new_string}" + else: + return string + + def _get_string_operator_leaves(self, leaves: Iterable[Leaf]) -> List[Leaf]: + LL = list(leaves) + + string_op_leaves = [] + i = 0 + while LL[i].type in self.STRING_OPERATORS + [token.NAME]: + prefix_leaf = Leaf(LL[i].type, str(LL[i]).strip()) + string_op_leaves.append(prefix_leaf) + i += 1 + return string_op_leaves + + +class StringParenWrapper(CustomSplitMapMixin, BaseStringSplitter): + """ + StringTransformer that splits non-"atom" strings (i.e. strings that do not + exist on lines by themselves). + + Requirements: + All of the requirements listed in BaseStringSplitter's docstring in + addition to the requirements listed below: + + * The line is a return/yield statement, which returns/yields a string. + OR + * The line is part of a ternary expression (e.g. `x = y if cond else + z`) such that the line starts with `else `, where is + some string. + OR + * The line is an assert statement, which ends with a string. + OR + * The line is an assignment statement (e.g. `x = ` or `x += + `) such that the variable is being assigned the value of some + string. + OR + * The line is a dictionary key assignment where some valid key is being + assigned the value of some string. + + Transformations: + The chosen string is wrapped in parentheses and then split at the LPAR. + + We then have one line which ends with an LPAR and another line that + starts with the chosen string. The latter line is then split again at + the RPAR. This results in the RPAR (and possibly a trailing comma) + being placed on its own line. + + NOTE: If any leaves exist to the right of the chosen string (except + for a trailing comma, which would be placed after the RPAR), those + leaves are placed inside the parentheses. In effect, the chosen + string is not necessarily being "wrapped" by parentheses. We can, + however, count on the LPAR being placed directly before the chosen + string. + + In other words, StringParenWrapper creates "atom" strings. These + can then be split again by StringSplitter, if necessary. + + Collaborations: + In the event that a string line split by StringParenWrapper is + changed such that it no longer needs to be given its own line, + StringParenWrapper relies on StringParenStripper to clean up the + parentheses it created. + """ + + def do_splitter_match(self, line: Line) -> TMatchResult: + LL = line.leaves + + if line.leaves[-1].type in OPENING_BRACKETS: + return TErr( + "Cannot wrap parens around a line that ends in an opening bracket." + ) + + string_idx = ( + self._return_match(LL) + or self._else_match(LL) + or self._assert_match(LL) + or self._assign_match(LL) + or self._dict_match(LL) + ) + + if string_idx is not None: + string_value = line.leaves[string_idx].value + # If the string has no spaces... + if " " not in string_value: + # And will still violate the line length limit when split... + max_string_length = self.line_length - ((line.depth + 1) * 4) + if len(string_value) > max_string_length: + # And has no associated custom splits... + if not self.has_custom_splits(string_value): + # Then we should NOT put this string on its own line. + return TErr( + "We do not wrap long strings in parentheses when the" + " resultant line would still be over the specified line" + " length and can't be split further by StringSplitter." + ) + return Ok(string_idx) + + return TErr("This line does not contain any non-atomic strings.") + + @staticmethod + def _return_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the return/yield statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is apart of a return/yield statement and the first leaf + # contains either the "return" or "yield" keywords... + if parent_type(LL[0]) in [syms.return_stmt, syms.yield_expr] and LL[ + 0 + ].value in ["return", "yield"]: + is_valid_index = is_valid_index_factory(LL) + + idx = 2 if is_valid_index(1) and is_empty_par(LL[1]) else 1 + # The next visible leaf MUST contain a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + return idx + + return None + + @staticmethod + def _else_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the ternary expression + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is apart of a ternary expression and the first leaf + # contains the "else" keyword... + if ( + parent_type(LL[0]) == syms.test + and LL[0].type == token.NAME + and LL[0].value == "else" + ): + is_valid_index = is_valid_index_factory(LL) + + idx = 2 if is_valid_index(1) and is_empty_par(LL[1]) else 1 + # The next visible leaf MUST contain a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + return idx + + return None + + @staticmethod + def _assert_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the assert statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is apart of an assert statement and the first leaf + # contains the "assert" keyword... + if parent_type(LL[0]) == syms.assert_stmt and LL[0].value == "assert": + is_valid_index = is_valid_index_factory(LL) + + for (i, leaf) in enumerate(LL): + # We MUST find a comma... + if leaf.type == token.COMMA: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That comma MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + @staticmethod + def _assign_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the assignment statement + requirements listed in the 'Requirements' section of this classes' + docstring. + OR + None, otherwise. + """ + # If this line is apart of an expression statement or is a function + # argument AND the first leaf contains a variable name... + if ( + parent_type(LL[0]) in [syms.expr_stmt, syms.argument, syms.power] + and LL[0].type == token.NAME + ): + is_valid_index = is_valid_index_factory(LL) + + for (i, leaf) in enumerate(LL): + # We MUST find either an '=' or '+=' symbol... + if leaf.type in [token.EQUAL, token.PLUSEQUAL]: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That symbol MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # The next leaf MAY be a comma iff this line is apart + # of a function argument... + if ( + parent_type(LL[0]) == syms.argument + and is_valid_index(idx) + and LL[idx].type == token.COMMA + ): + idx += 1 + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + @staticmethod + def _dict_match(LL: List[Leaf]) -> Optional[int]: + """ + Returns: + string_idx such that @LL[string_idx] is equal to our target (i.e. + matched) string, if this line matches the dictionary key assignment + statement requirements listed in the 'Requirements' section of this + classes' docstring. + OR + None, otherwise. + """ + # If this line is apart of a dictionary key assignment... + if syms.dictsetmaker in [parent_type(LL[0]), parent_type(LL[0].parent)]: + is_valid_index = is_valid_index_factory(LL) + + for (i, leaf) in enumerate(LL): + # We MUST find a colon... + if leaf.type == token.COLON: + idx = i + 2 if is_empty_par(LL[i + 1]) else i + 1 + + # That colon MUST be followed by a string... + if is_valid_index(idx) and LL[idx].type == token.STRING: + string_idx = idx + + # Skip the string trailer, if one exists. + string_parser = StringParser() + idx = string_parser.parse(LL, string_idx) + + # That string MAY be followed by a comma... + if is_valid_index(idx) and LL[idx].type == token.COMMA: + idx += 1 + + # But no more leaves are allowed... + if not is_valid_index(idx): + return string_idx + + return None + + def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]: + LL = line.leaves + + is_valid_index = is_valid_index_factory(LL) + insert_str_child = insert_str_child_factory(LL[string_idx]) + + comma_idx = -1 + ends_with_comma = False + if LL[comma_idx].type == token.COMMA: + ends_with_comma = True + + leaves_to_steal_comments_from = [LL[string_idx]] + if ends_with_comma: + leaves_to_steal_comments_from.append(LL[comma_idx]) + + # --- First Line + first_line = line.clone() + left_leaves = LL[:string_idx] + + # We have to remember to account for (possibly invisible) LPAR and RPAR + # leaves that already wrapped the target string. If these leaves do + # exist, we will replace them with our own LPAR and RPAR leaves. + old_parens_exist = False + if left_leaves and left_leaves[-1].type == token.LPAR: + old_parens_exist = True + leaves_to_steal_comments_from.append(left_leaves[-1]) + left_leaves.pop() + + append_leaves(first_line, line, left_leaves) + + lpar_leaf = Leaf(token.LPAR, "(") + if old_parens_exist: + replace_child(LL[string_idx - 1], lpar_leaf) + else: + insert_str_child(lpar_leaf) + first_line.append(lpar_leaf) + + # We throw inline comments that were originally to the right of the + # target string to the top line. They will now be shown to the right of + # the LPAR. + for leaf in leaves_to_steal_comments_from: + for comment_leaf in line.comments_after(leaf): + first_line.append(comment_leaf, preformatted=True) + + yield Ok(first_line) + + # --- Middle (String) Line + # We only need to yield one (possibly too long) string line, since the + # `StringSplitter` will break it down further if necessary. + string_value = LL[string_idx].value + string_line = Line( + mode=line.mode, + depth=line.depth + 1, + inside_brackets=True, + should_split_rhs=line.should_split_rhs, + magic_trailing_comma=line.magic_trailing_comma, + ) + string_leaf = Leaf(token.STRING, string_value) + insert_str_child(string_leaf) + string_line.append(string_leaf) + + old_rpar_leaf = None + if is_valid_index(string_idx + 1): + right_leaves = LL[string_idx + 1 :] + if ends_with_comma: + right_leaves.pop() + + if old_parens_exist: + assert right_leaves and right_leaves[-1].type == token.RPAR, ( + "Apparently, old parentheses do NOT exist?!" + f" (left_leaves={left_leaves}, right_leaves={right_leaves})" + ) + old_rpar_leaf = right_leaves.pop() + + append_leaves(string_line, line, right_leaves) + + yield Ok(string_line) + + # --- Last Line + last_line = line.clone() + last_line.bracket_tracker = first_line.bracket_tracker + + new_rpar_leaf = Leaf(token.RPAR, ")") + if old_rpar_leaf is not None: + replace_child(old_rpar_leaf, new_rpar_leaf) + else: + insert_str_child(new_rpar_leaf) + last_line.append(new_rpar_leaf) + + # If the target string ended with a comma, we place this comma to the + # right of the RPAR on the last line. + if ends_with_comma: + comma_leaf = Leaf(token.COMMA, ",") + replace_child(LL[comma_idx], comma_leaf) + last_line.append(comma_leaf) + + yield Ok(last_line) + + +class StringParser: + """ + A state machine that aids in parsing a string's "trailer", which can be + either non-existent, an old-style formatting sequence (e.g. `% varX` or `% + (varX, varY)`), or a method-call / attribute access (e.g. `.format(varX, + varY)`). + + NOTE: A new StringParser object MUST be instantiated for each string + trailer we need to parse. + + Examples: + We shall assume that `line` equals the `Line` object that corresponds + to the following line of python code: + ``` + x = "Some {}.".format("String") + some_other_string + ``` + + Furthermore, we will assume that `string_idx` is some index such that: + ``` + assert line.leaves[string_idx].value == "Some {}." + ``` + + The following code snippet then holds: + ``` + string_parser = StringParser() + idx = string_parser.parse(line.leaves, string_idx) + assert line.leaves[idx].type == token.PLUS + ``` + """ + + DEFAULT_TOKEN = -1 + + # String Parser States + START = 1 + DOT = 2 + NAME = 3 + PERCENT = 4 + SINGLE_FMT_ARG = 5 + LPAR = 6 + RPAR = 7 + DONE = 8 + + # Lookup Table for Next State + _goto: Dict[Tuple[ParserState, NodeType], ParserState] = { + # A string trailer may start with '.' OR '%'. + (START, token.DOT): DOT, + (START, token.PERCENT): PERCENT, + (START, DEFAULT_TOKEN): DONE, + # A '.' MUST be followed by an attribute or method name. + (DOT, token.NAME): NAME, + # A method name MUST be followed by an '(', whereas an attribute name + # is the last symbol in the string trailer. + (NAME, token.LPAR): LPAR, + (NAME, DEFAULT_TOKEN): DONE, + # A '%' symbol can be followed by an '(' or a single argument (e.g. a + # string or variable name). + (PERCENT, token.LPAR): LPAR, + (PERCENT, DEFAULT_TOKEN): SINGLE_FMT_ARG, + # If a '%' symbol is followed by a single argument, that argument is + # the last leaf in the string trailer. + (SINGLE_FMT_ARG, DEFAULT_TOKEN): DONE, + # If present, a ')' symbol is the last symbol in a string trailer. + # (NOTE: LPARS and nested RPARS are not included in this lookup table, + # since they are treated as a special case by the parsing logic in this + # classes' implementation.) + (RPAR, DEFAULT_TOKEN): DONE, + } + + def __init__(self) -> None: + self._state = self.START + self._unmatched_lpars = 0 + + def parse(self, leaves: List[Leaf], string_idx: int) -> int: + """ + Pre-conditions: + * @leaves[@string_idx].type == token.STRING + + Returns: + The index directly after the last leaf which is apart of the string + trailer, if a "trailer" exists. + OR + @string_idx + 1, if no string "trailer" exists. + """ + assert leaves[string_idx].type == token.STRING + + idx = string_idx + 1 + while idx < len(leaves) and self._next_state(leaves[idx]): + idx += 1 + return idx + + def _next_state(self, leaf: Leaf) -> bool: + """ + Pre-conditions: + * On the first call to this function, @leaf MUST be the leaf that + was directly after the string leaf in question (e.g. if our target + string is `line.leaves[i]` then the first call to this method must + be `line.leaves[i + 1]`). + * On the next call to this function, the leaf parameter passed in + MUST be the leaf directly following @leaf. + + Returns: + True iff @leaf is apart of the string's trailer. + """ + # We ignore empty LPAR or RPAR leaves. + if is_empty_par(leaf): + return True + + next_token = leaf.type + if next_token == token.LPAR: + self._unmatched_lpars += 1 + + current_state = self._state + + # The LPAR parser state is a special case. We will return True until we + # find the matching RPAR token. + if current_state == self.LPAR: + if next_token == token.RPAR: + self._unmatched_lpars -= 1 + if self._unmatched_lpars == 0: + self._state = self.RPAR + # Otherwise, we use a lookup table to determine the next state. + else: + # If the lookup table matches the current state to the next + # token, we use the lookup table. + if (current_state, next_token) in self._goto: + self._state = self._goto[current_state, next_token] + else: + # Otherwise, we check if a the current state was assigned a + # default. + if (current_state, self.DEFAULT_TOKEN) in self._goto: + self._state = self._goto[current_state, self.DEFAULT_TOKEN] + # If no default has been assigned, then this parser has a logic + # error. + else: + raise RuntimeError(f"{self.__class__.__name__} LOGIC ERROR!") + + if self._state == self.DONE: + return False + + return True + + +def insert_str_child_factory(string_leaf: Leaf) -> Callable[[LN], None]: + """ + Factory for a convenience function that is used to orphan @string_leaf + and then insert multiple new leaves into the same part of the node + structure that @string_leaf had originally occupied. + + Examples: + Let `string_leaf = Leaf(token.STRING, '"foo"')` and `N = + string_leaf.parent`. Assume the node `N` has the following + original structure: + + Node( + expr_stmt, [ + Leaf(NAME, 'x'), + Leaf(EQUAL, '='), + Leaf(STRING, '"foo"'), + ] + ) + + We then run the code snippet shown below. + ``` + insert_str_child = insert_str_child_factory(string_leaf) + + lpar = Leaf(token.LPAR, '(') + insert_str_child(lpar) + + bar = Leaf(token.STRING, '"bar"') + insert_str_child(bar) + + rpar = Leaf(token.RPAR, ')') + insert_str_child(rpar) + ``` + + After which point, it follows that `string_leaf.parent is None` and + the node `N` now has the following structure: + + Node( + expr_stmt, [ + Leaf(NAME, 'x'), + Leaf(EQUAL, '='), + Leaf(LPAR, '('), + Leaf(STRING, '"bar"'), + Leaf(RPAR, ')'), + ] + ) + """ + string_parent = string_leaf.parent + string_child_idx = string_leaf.remove() + + def insert_str_child(child: LN) -> None: + nonlocal string_child_idx + + assert string_parent is not None + assert string_child_idx is not None + + string_parent.insert_child(string_child_idx, child) + string_child_idx += 1 + + return insert_str_child + + +def is_valid_index_factory(seq: Sequence[Any]) -> Callable[[int], bool]: + """ + Examples: + ``` + my_list = [1, 2, 3] + + is_valid_index = is_valid_index_factory(my_list) + + assert is_valid_index(0) + assert is_valid_index(2) + + assert not is_valid_index(3) + assert not is_valid_index(-1) + ``` + """ + + def is_valid_index(idx: int) -> bool: + """ + Returns: + True iff @idx is positive AND seq[@idx] does NOT raise an + IndexError. + """ + return 0 <= idx < len(seq) + + return is_valid_index diff --git a/.vim/bundle/black/src/black_primer/__init__.py b/.vim/bundle/black/src/black_primer/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/src/black_primer/cli.py b/.vim/bundle/black/src/black_primer/cli.py new file mode 100644 index 0000000..8360fc3 --- /dev/null +++ b/.vim/bundle/black/src/black_primer/cli.py @@ -0,0 +1,155 @@ +# coding=utf8 + +import asyncio +import logging +import sys +from datetime import datetime +from pathlib import Path +from shutil import rmtree, which +from tempfile import gettempdir +from typing import Any, Union, Optional + +import click + +from black_primer import lib + +# If our environment has uvloop installed lets use it +try: + import uvloop + + uvloop.install() +except ImportError: + pass + + +DEFAULT_CONFIG = Path(__file__).parent / "primer.json" +_timestamp = datetime.now().strftime("%Y%m%d%H%M%S") +DEFAULT_WORKDIR = Path(gettempdir()) / f"primer.{_timestamp}" +LOG = logging.getLogger(__name__) + + +def _handle_debug( + ctx: Optional[click.core.Context], + param: Optional[Union[click.core.Option, click.core.Parameter]], + debug: Union[bool, int, str], +) -> Union[bool, int, str]: + """Turn on debugging if asked otherwise INFO default""" + log_level = logging.DEBUG if debug else logging.INFO + logging.basicConfig( + format="[%(asctime)s] %(levelname)s: %(message)s (%(filename)s:%(lineno)d)", + level=log_level, + ) + return debug + + +async def async_main( + config: str, + debug: bool, + keep: bool, + long_checkouts: bool, + no_diff: bool, + rebase: bool, + workdir: str, + workers: int, +) -> int: + work_path = Path(workdir) + if not work_path.exists(): + LOG.debug(f"Creating {work_path}") + work_path.mkdir() + + if not which("black"): + LOG.error("Can not find 'black' executable in PATH. No point in running") + return -1 + + try: + ret_val = await lib.process_queue( + config, + work_path, + workers, + keep, + long_checkouts, + rebase, + no_diff, + ) + return int(ret_val) + finally: + if not keep and work_path.exists(): + LOG.debug(f"Removing {work_path}") + rmtree(work_path, onerror=lib.handle_PermissionError) + + return -2 + + +@click.command(context_settings={"help_option_names": ["-h", "--help"]}) +@click.option( + "-c", + "--config", + default=str(DEFAULT_CONFIG), + type=click.Path(exists=True), + show_default=True, + help="JSON config file path", +) +@click.option( + "--debug", + is_flag=True, + callback=_handle_debug, + show_default=True, + help="Turn on debug logging", +) +@click.option( + "-k", + "--keep", + is_flag=True, + show_default=True, + help="Keep workdir + repos post run", +) +@click.option( + "-L", + "--long-checkouts", + is_flag=True, + show_default=True, + help="Pull big projects to test", +) +@click.option( + "--no-diff", + is_flag=True, + show_default=True, + help="Disable showing source file changes in black output", +) +@click.option( + "-R", + "--rebase", + is_flag=True, + show_default=True, + help="Rebase project if already checked out", +) +@click.option( + "-w", + "--workdir", + default=str(DEFAULT_WORKDIR), + type=click.Path(exists=False), + show_default=True, + help="Directory path for repo checkouts", +) +@click.option( + "-W", + "--workers", + default=2, + type=int, + show_default=True, + help="Number of parallel worker coroutines", +) +@click.pass_context +def main(ctx: click.core.Context, **kwargs: Any) -> None: + """primer - prime projects for blackening... 🏴""" + LOG.debug(f"Starting {sys.argv[0]}") + # TODO: Change to asyncio.run when Black >= 3.7 only + loop = asyncio.get_event_loop() + try: + ctx.exit(loop.run_until_complete(async_main(**kwargs))) + finally: + loop.close() + + +if __name__ == "__main__": # pragma: nocover + main() diff --git a/.vim/bundle/black/src/black_primer/lib.py b/.vim/bundle/black/src/black_primer/lib.py new file mode 100644 index 0000000..7494ae6 --- /dev/null +++ b/.vim/bundle/black/src/black_primer/lib.py @@ -0,0 +1,418 @@ +import asyncio +import errno +import json +import logging +import os +import stat +import sys +from functools import partial +from pathlib import Path +from platform import system +from shutil import rmtree, which +from subprocess import CalledProcessError +from sys import version_info +from tempfile import TemporaryDirectory +from typing import ( + Any, + Callable, + Dict, + List, + NamedTuple, + Optional, + Sequence, + Tuple, + Union, +) +from urllib.parse import urlparse + +import click + + +TEN_MINUTES_SECONDS = 600 +WINDOWS = system() == "Windows" +BLACK_BINARY = "black.exe" if WINDOWS else "black" +GIT_BINARY = "git.exe" if WINDOWS else "git" +LOG = logging.getLogger(__name__) + + +# Windows needs a ProactorEventLoop if you want to exec subprocesses +# Starting with 3.8 this is the default - can remove when Black >= 3.8 +# mypy only respects sys.platform if directly in the evaluation +# https://mypy.readthedocs.io/en/latest/common_issues.html#python-version-and-system-platform-checks # noqa: B950 +if sys.platform == "win32": + asyncio.set_event_loop(asyncio.ProactorEventLoop()) + + +class Results(NamedTuple): + stats: Dict[str, int] = {} + failed_projects: Dict[str, CalledProcessError] = {} + + +async def _gen_check_output( + cmd: Sequence[str], + timeout: float = TEN_MINUTES_SECONDS, + env: Optional[Dict[str, str]] = None, + cwd: Optional[Path] = None, + stdin: Optional[bytes] = None, +) -> Tuple[bytes, bytes]: + process = await asyncio.create_subprocess_exec( + *cmd, + stdin=asyncio.subprocess.PIPE, + stdout=asyncio.subprocess.PIPE, + stderr=asyncio.subprocess.STDOUT, + env=env, + cwd=cwd, + ) + try: + (stdout, stderr) = await asyncio.wait_for(process.communicate(stdin), timeout) + except asyncio.TimeoutError: + process.kill() + await process.wait() + raise + + # A non-optional timeout was supplied to asyncio.wait_for, guaranteeing + # a timeout or completed process. A terminated Python process will have a + # non-empty returncode value. + assert process.returncode is not None + + if process.returncode != 0: + cmd_str = " ".join(cmd) + raise CalledProcessError( + process.returncode, cmd_str, output=stdout, stderr=stderr + ) + + return (stdout, stderr) + + +def analyze_results(project_count: int, results: Results) -> int: + failed_pct = round(((results.stats["failed"] / project_count) * 100), 2) + success_pct = round(((results.stats["success"] / project_count) * 100), 2) + + click.secho("-- primer results 📊 --\n", bold=True) + click.secho( + f"{results.stats['success']} / {project_count} succeeded ({success_pct}%) ✅", + bold=True, + fg="green", + ) + click.secho( + f"{results.stats['failed']} / {project_count} FAILED ({failed_pct}%) 💩", + bold=bool(results.stats["failed"]), + fg="red", + ) + s = "" if results.stats["disabled"] == 1 else "s" + click.echo(f" - {results.stats['disabled']} project{s} disabled by config") + s = "" if results.stats["wrong_py_ver"] == 1 else "s" + click.echo( + f" - {results.stats['wrong_py_ver']} project{s} skipped due to Python version" + ) + click.echo( + f" - {results.stats['skipped_long_checkout']} skipped due to long checkout" + ) + + if results.failed_projects: + click.secho("\nFailed projects:\n", bold=True) + + for project_name, project_cpe in results.failed_projects.items(): + print(f"## {project_name}:") + print(f" - Returned {project_cpe.returncode}") + if project_cpe.stderr: + print(f" - stderr:\n{project_cpe.stderr.decode('utf8')}") + if project_cpe.stdout: + print(f" - stdout:\n{project_cpe.stdout.decode('utf8')}") + print("") + + return results.stats["failed"] + + +def _flatten_cli_args(cli_args: List[Union[Sequence[str], str]]) -> List[str]: + """Allow a user to put long arguments into a list of strs + to make the JSON human readable""" + flat_args = [] + for arg in cli_args: + if isinstance(arg, str): + flat_args.append(arg) + continue + + args_as_str = "".join(arg) + flat_args.append(args_as_str) + + return flat_args + + +async def black_run( + project_name: str, + repo_path: Optional[Path], + project_config: Dict[str, Any], + results: Results, + no_diff: bool = False, +) -> None: + """Run Black and record failures""" + if not repo_path: + results.stats["failed"] += 1 + results.failed_projects[project_name] = CalledProcessError( + 69, [], f"{project_name} has no repo_path: {repo_path}".encode(), b"" + ) + return + + stdin_test = project_name.upper() == "STDIN" + cmd = [str(which(BLACK_BINARY))] + if "cli_arguments" in project_config and project_config["cli_arguments"]: + cmd.extend(_flatten_cli_args(project_config["cli_arguments"])) + cmd.append("--check") + if not no_diff: + cmd.append("--diff") + + # Workout if we should read in a python file or search from cwd + stdin = None + if stdin_test: + cmd.append("-") + stdin = repo_path.read_bytes() + elif "base_path" in project_config: + cmd.append(project_config["base_path"]) + else: + cmd.append(".") + + timeout = ( + project_config["timeout_seconds"] + if "timeout_seconds" in project_config + else TEN_MINUTES_SECONDS + ) + with TemporaryDirectory() as tmp_path: + # Prevent reading top-level user configs by manipulating environment variables + env = { + **os.environ, + "XDG_CONFIG_HOME": tmp_path, # Unix-like + "USERPROFILE": tmp_path, # Windows (changes `Path.home()` output) + } + + cwd_path = repo_path.parent if stdin_test else repo_path + try: + LOG.debug(f"Running black for {project_name}: {' '.join(cmd)}") + _stdout, _stderr = await _gen_check_output( + cmd, cwd=cwd_path, env=env, stdin=stdin, timeout=timeout + ) + except asyncio.TimeoutError: + results.stats["failed"] += 1 + LOG.error(f"Running black for {repo_path} timed out ({cmd})") + except CalledProcessError as cpe: + # TODO: Tune for smarter for higher signal + # If any other return value than 1 we raise - can disable project in config + if cpe.returncode == 1: + if not project_config["expect_formatting_changes"]: + results.stats["failed"] += 1 + results.failed_projects[repo_path.name] = cpe + else: + results.stats["success"] += 1 + return + elif cpe.returncode > 1: + results.stats["failed"] += 1 + results.failed_projects[repo_path.name] = cpe + return + + LOG.error(f"Unknown error with {repo_path}") + raise + + # If we get here and expect formatting changes something is up + if project_config["expect_formatting_changes"]: + results.stats["failed"] += 1 + results.failed_projects[repo_path.name] = CalledProcessError( + 0, cmd, b"Expected formatting changes but didn't get any!", b"" + ) + return + + results.stats["success"] += 1 + + +async def git_checkout_or_rebase( + work_path: Path, + project_config: Dict[str, Any], + rebase: bool = False, + *, + depth: int = 1, +) -> Optional[Path]: + """git Clone project or rebase""" + git_bin = str(which(GIT_BINARY)) + if not git_bin: + LOG.error("No git binary found") + return None + + repo_url_parts = urlparse(project_config["git_clone_url"]) + path_parts = repo_url_parts.path[1:].split("/", maxsplit=1) + + repo_path: Path = work_path / path_parts[1].replace(".git", "") + cmd = [git_bin, "clone", "--depth", str(depth), project_config["git_clone_url"]] + cwd = work_path + if repo_path.exists() and rebase: + cmd = [git_bin, "pull", "--rebase"] + cwd = repo_path + elif repo_path.exists(): + return repo_path + + try: + _stdout, _stderr = await _gen_check_output(cmd, cwd=cwd) + except (asyncio.TimeoutError, CalledProcessError) as e: + LOG.error(f"Unable to git clone / pull {project_config['git_clone_url']}: {e}") + return None + + return repo_path + + +def handle_PermissionError( + func: Callable, path: Path, exc: Tuple[Any, Any, Any] +) -> None: + """ + Handle PermissionError during shutil.rmtree. + + This checks if the erroring function is either 'os.rmdir' or 'os.unlink', and that + the error was EACCES (i.e. Permission denied). If true, the path is set writable, + readable, and executable by everyone. Finally, it tries the error causing delete + operation again. + + If the check is false, then the original error will be reraised as this function + can't handle it. + """ + excvalue = exc[1] + LOG.debug(f"Handling {excvalue} from {func.__name__}... ") + if func in (os.rmdir, os.unlink) and excvalue.errno == errno.EACCES: + LOG.debug(f"Setting {path} writable, readable, and executable by everyone... ") + os.chmod(path, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) # chmod 0777 + func(path) # Try the error causing delete operation again + else: + raise + + +async def load_projects_queue( + config_path: Path, +) -> Tuple[Dict[str, Any], asyncio.Queue]: + """Load project config and fill queue with all the project names""" + with config_path.open("r") as cfp: + config = json.load(cfp) + + # TODO: Offer more options here + # e.g. Run on X random packages or specific sub list etc. + project_names = sorted(config["projects"].keys()) + queue: asyncio.Queue = asyncio.Queue(maxsize=len(project_names)) + for project in project_names: + await queue.put(project) + + return config, queue + + +async def project_runner( + idx: int, + config: Dict[str, Any], + queue: asyncio.Queue, + work_path: Path, + results: Results, + long_checkouts: bool = False, + rebase: bool = False, + keep: bool = False, + no_diff: bool = False, +) -> None: + """Check out project and run Black on it + record result""" + loop = asyncio.get_event_loop() + py_version = f"{version_info[0]}.{version_info[1]}" + while True: + try: + project_name = queue.get_nowait() + except asyncio.QueueEmpty: + LOG.debug(f"project_runner {idx} exiting") + return + LOG.debug(f"worker {idx} working on {project_name}") + + project_config = config["projects"][project_name] + + # Check if disabled by config + if "disabled" in project_config and project_config["disabled"]: + results.stats["disabled"] += 1 + LOG.info(f"Skipping {project_name} as it's disabled via config") + continue + + # Check if we should run on this version of Python + if ( + "all" not in project_config["py_versions"] + and py_version not in project_config["py_versions"] + ): + results.stats["wrong_py_ver"] += 1 + LOG.debug(f"Skipping {project_name} as it's not enabled for {py_version}") + continue + + # Check if we're doing big projects / long checkouts + if not long_checkouts and project_config["long_checkout"]: + results.stats["skipped_long_checkout"] += 1 + LOG.debug(f"Skipping {project_name} as it's configured as a long checkout") + continue + + repo_path: Optional[Path] = Path(__file__) + stdin_project = project_name.upper() == "STDIN" + if not stdin_project: + repo_path = await git_checkout_or_rebase(work_path, project_config, rebase) + if not repo_path: + continue + await black_run(project_name, repo_path, project_config, results, no_diff) + + if not keep and not stdin_project: + LOG.debug(f"Removing {repo_path}") + rmtree_partial = partial( + rmtree, path=repo_path, onerror=handle_PermissionError + ) + await loop.run_in_executor(None, rmtree_partial) + + LOG.info(f"Finished {project_name}") + + +async def process_queue( + config_file: str, + work_path: Path, + workers: int, + keep: bool = False, + long_checkouts: bool = False, + rebase: bool = False, + no_diff: bool = False, +) -> int: + """ + Process the queue with X workers and evaluate results + - Success is guaged via the config "expect_formatting_changes" + + Integer return equals the number of failed projects + """ + results = Results() + results.stats["disabled"] = 0 + results.stats["failed"] = 0 + results.stats["skipped_long_checkout"] = 0 + results.stats["success"] = 0 + results.stats["wrong_py_ver"] = 0 + + config, queue = await load_projects_queue(Path(config_file)) + project_count = queue.qsize() + s = "" if project_count == 1 else "s" + LOG.info(f"{project_count} project{s} to run Black over") + if project_count < 1: + return -1 + + s = "" if workers == 1 else "s" + LOG.debug(f"Using {workers} parallel worker{s} to run Black") + # Wait until we finish running all the projects before analyzing + await asyncio.gather( + *[ + project_runner( + i, + config, + queue, + work_path, + results, + long_checkouts, + rebase, + keep, + no_diff, + ) + for i in range(workers) + ] + ) + + LOG.info("Analyzing results") + return analyze_results(project_count, results) + + +if __name__ == "__main__": # pragma: nocover + raise NotImplementedError("lib is a library, funnily enough.") diff --git a/.vim/bundle/black/src/black_primer/primer.json b/.vim/bundle/black/src/black_primer/primer.json new file mode 100644 index 0000000..0d1018f --- /dev/null +++ b/.vim/bundle/black/src/black_primer/primer.json @@ -0,0 +1,188 @@ +{ + "configuration_format_version": 20210815, + "projects": { + "STDIN": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": false, + "git_clone_url": "", + "long_checkout": false, + "py_versions": ["all"] + }, + "aioexabgp": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": false, + "git_clone_url": "https://github.com/cooperlees/aioexabgp.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "attrs": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/python-attrs/attrs.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "bandersnatch": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/pypa/bandersnatch.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "channels": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/django/channels.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "cpython": { + "disabled": true, + "disabled_reason": "To big / slow for GitHub Actions but handy to keep config to use manually or in some other CI in the future", + "base_path": "Lib", + "cli_arguments": [ + "--experimental-string-processing", + "--extend-exclude", + [ + "Lib/lib2to3/tests/data/different_encoding.py", + "|Lib/lib2to3/tests/data/false_encoding.py", + "|Lib/lib2to3/tests/data/py2_test_grammar.py", + "|Lib/test/bad_coding.py", + "|Lib/test/bad_coding2.py", + "|Lib/test/badsyntax_3131.py", + "|Lib/test/badsyntax_pep3120.py", + "|Lib/test/test_base64.py", + "|Lib/test/test_exceptions.py", + "|Lib/test/test_grammar.py", + "|Lib/test/test_named_expressions.py", + "|Lib/test/test_patma.py", + "|Lib/test/test_tokenize.py", + "|Lib/test/test_xml_etree.py", + "|Lib/traceback.py" + ] + ], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/python/cpython.git", + "long_checkout": false, + "py_versions": ["3.9", "3.10"], + "timeout_seconds": 900 + }, + "django": { + "cli_arguments": [ + "--experimental-string-processing", + "--skip-string-normalization", + "--extend-exclude", + "/((docs|scripts)/|django/forms/models.py|tests/gis_tests/test_spatialrefsys.py|tests/test_runner_apps/tagged/tests_syntax_error.py)" + ], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/django/django.git", + "long_checkout": false, + "py_versions": ["3.8", "3.9"] + }, + "flake8-bugbear": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": false, + "git_clone_url": "https://github.com/PyCQA/flake8-bugbear.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "hypothesis": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/HypothesisWorks/hypothesis.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "pandas": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/pandas-dev/pandas.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "pillow": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/python-pillow/Pillow.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "poetry": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/python-poetry/poetry.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "pyanalyze": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": false, + "git_clone_url": "https://github.com/quora/pyanalyze.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "pyramid": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/Pylons/pyramid.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "ptr": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": false, + "git_clone_url": "https://github.com/facebookincubator/ptr.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "pytest": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/pytest-dev/pytest.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "scikit-lego": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/koaning/scikit-lego", + "long_checkout": false, + "py_versions": ["all"] + }, + "sqlalchemy": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/sqlalchemy/sqlalchemy.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "tox": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/tox-dev/tox.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "typeshed": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/python/typeshed.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "virtualenv": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/pypa/virtualenv.git", + "long_checkout": false, + "py_versions": ["all"] + }, + "warehouse": { + "cli_arguments": ["--experimental-string-processing"], + "expect_formatting_changes": true, + "git_clone_url": "https://github.com/pypa/warehouse.git", + "long_checkout": false, + "py_versions": ["all"] + } + } +} diff --git a/.vim/bundle/black/src/blackd/__init__.py b/.vim/bundle/black/src/blackd/__init__.py new file mode 100644 index 0000000..cc96640 --- /dev/null +++ b/.vim/bundle/black/src/blackd/__init__.py @@ -0,0 +1,201 @@ +import asyncio +import logging +from concurrent.futures import Executor, ProcessPoolExecutor +from datetime import datetime +from functools import partial +from multiprocessing import freeze_support +from typing import Set, Tuple + +try: + from aiohttp import web + from .middlewares import cors +except ImportError as ie: + raise ImportError( + f"aiohttp dependency is not installed: {ie}. " + + "Please re-install black with the '[d]' extra install " + + "to obtain aiohttp_cors: `pip install black[d]`" + ) from None + +import black +from black.concurrency import maybe_install_uvloop +import click + +from _black_version import version as __version__ + +# This is used internally by tests to shut down the server prematurely +_stop_signal = asyncio.Event() + +# Request headers +PROTOCOL_VERSION_HEADER = "X-Protocol-Version" +LINE_LENGTH_HEADER = "X-Line-Length" +PYTHON_VARIANT_HEADER = "X-Python-Variant" +SKIP_STRING_NORMALIZATION_HEADER = "X-Skip-String-Normalization" +SKIP_MAGIC_TRAILING_COMMA = "X-Skip-Magic-Trailing-Comma" +FAST_OR_SAFE_HEADER = "X-Fast-Or-Safe" +DIFF_HEADER = "X-Diff" + +BLACK_HEADERS = [ + PROTOCOL_VERSION_HEADER, + LINE_LENGTH_HEADER, + PYTHON_VARIANT_HEADER, + SKIP_STRING_NORMALIZATION_HEADER, + SKIP_MAGIC_TRAILING_COMMA, + FAST_OR_SAFE_HEADER, + DIFF_HEADER, +] + +# Response headers +BLACK_VERSION_HEADER = "X-Black-Version" + + +class InvalidVariantHeader(Exception): + pass + + +@click.command(context_settings={"help_option_names": ["-h", "--help"]}) +@click.option( + "--bind-host", type=str, help="Address to bind the server to.", default="localhost" +) +@click.option("--bind-port", type=int, help="Port to listen on", default=45484) +@click.version_option(version=black.__version__) +def main(bind_host: str, bind_port: int) -> None: + logging.basicConfig(level=logging.INFO) + app = make_app() + ver = black.__version__ + black.out(f"blackd version {ver} listening on {bind_host} port {bind_port}") + web.run_app(app, host=bind_host, port=bind_port, handle_signals=True, print=None) + + +def make_app() -> web.Application: + app = web.Application( + middlewares=[cors(allow_headers=(*BLACK_HEADERS, "Content-Type"))] + ) + executor = ProcessPoolExecutor() + app.add_routes([web.post("/", partial(handle, executor=executor))]) + return app + + +async def handle(request: web.Request, executor: Executor) -> web.Response: + headers = {BLACK_VERSION_HEADER: __version__} + try: + if request.headers.get(PROTOCOL_VERSION_HEADER, "1") != "1": + return web.Response( + status=501, text="This server only supports protocol version 1" + ) + try: + line_length = int( + request.headers.get(LINE_LENGTH_HEADER, black.DEFAULT_LINE_LENGTH) + ) + except ValueError: + return web.Response(status=400, text="Invalid line length header value") + + if PYTHON_VARIANT_HEADER in request.headers: + value = request.headers[PYTHON_VARIANT_HEADER] + try: + pyi, versions = parse_python_variant_header(value) + except InvalidVariantHeader as e: + return web.Response( + status=400, + text=f"Invalid value for {PYTHON_VARIANT_HEADER}: {e.args[0]}", + ) + else: + pyi = False + versions = set() + + skip_string_normalization = bool( + request.headers.get(SKIP_STRING_NORMALIZATION_HEADER, False) + ) + skip_magic_trailing_comma = bool( + request.headers.get(SKIP_MAGIC_TRAILING_COMMA, False) + ) + fast = False + if request.headers.get(FAST_OR_SAFE_HEADER, "safe") == "fast": + fast = True + mode = black.FileMode( + target_versions=versions, + is_pyi=pyi, + line_length=line_length, + string_normalization=not skip_string_normalization, + magic_trailing_comma=not skip_magic_trailing_comma, + ) + req_bytes = await request.content.read() + charset = request.charset if request.charset is not None else "utf8" + req_str = req_bytes.decode(charset) + then = datetime.utcnow() + + loop = asyncio.get_event_loop() + formatted_str = await loop.run_in_executor( + executor, partial(black.format_file_contents, req_str, fast=fast, mode=mode) + ) + + # Only output the diff in the HTTP response + only_diff = bool(request.headers.get(DIFF_HEADER, False)) + if only_diff: + now = datetime.utcnow() + src_name = f"In\t{then} +0000" + dst_name = f"Out\t{now} +0000" + loop = asyncio.get_event_loop() + formatted_str = await loop.run_in_executor( + executor, + partial(black.diff, req_str, formatted_str, src_name, dst_name), + ) + + return web.Response( + content_type=request.content_type, + charset=charset, + headers=headers, + text=formatted_str, + ) + except black.NothingChanged: + return web.Response(status=204, headers=headers) + except black.InvalidInput as e: + return web.Response(status=400, headers=headers, text=str(e)) + except Exception as e: + logging.exception("Exception during handling a request") + return web.Response(status=500, headers=headers, text=str(e)) + + +def parse_python_variant_header(value: str) -> Tuple[bool, Set[black.TargetVersion]]: + if value == "pyi": + return True, set() + else: + versions = set() + for version in value.split(","): + if version.startswith("py"): + version = version[len("py") :] + if "." in version: + major_str, *rest = version.split(".") + else: + major_str = version[0] + rest = [version[1:]] if len(version) > 1 else [] + try: + major = int(major_str) + if major not in (2, 3): + raise InvalidVariantHeader("major version must be 2 or 3") + if len(rest) > 0: + minor = int(rest[0]) + if major == 2 and minor != 7: + raise InvalidVariantHeader( + "minor version must be 7 for Python 2" + ) + else: + # Default to lowest supported minor version. + minor = 7 if major == 2 else 3 + version_str = f"PY{major}{minor}" + if major == 3 and not hasattr(black.TargetVersion, version_str): + raise InvalidVariantHeader(f"3.{minor} is not supported") + versions.add(black.TargetVersion[version_str]) + except (KeyError, ValueError): + raise InvalidVariantHeader("expected e.g. '3.7', 'py3.5'") from None + return False, versions + + +def patched_main() -> None: + maybe_install_uvloop() + freeze_support() + black.patch_click() + main() + + +if __name__ == "__main__": + patched_main() diff --git a/.vim/bundle/black/src/blackd/middlewares.py b/.vim/bundle/black/src/blackd/middlewares.py new file mode 100644 index 0000000..97994ec --- /dev/null +++ b/.vim/bundle/black/src/blackd/middlewares.py @@ -0,0 +1,34 @@ +from typing import Iterable, Awaitable, Callable +from aiohttp.web_response import StreamResponse +from aiohttp.web_request import Request +from aiohttp.web_middlewares import middleware + +Handler = Callable[[Request], Awaitable[StreamResponse]] +Middleware = Callable[[Request, Handler], Awaitable[StreamResponse]] + + +def cors(allow_headers: Iterable[str]) -> Middleware: + @middleware + async def impl(request: Request, handler: Handler) -> StreamResponse: + is_options = request.method == "OPTIONS" + is_preflight = is_options and "Access-Control-Request-Method" in request.headers + if is_preflight: + resp = StreamResponse() + else: + resp = await handler(request) + + origin = request.headers.get("Origin") + if not origin: + return resp + + resp.headers["Access-Control-Allow-Origin"] = "*" + resp.headers["Access-Control-Expose-Headers"] = "*" + if is_options: + resp.headers["Access-Control-Allow-Headers"] = ", ".join(allow_headers) + resp.headers["Access-Control-Allow-Methods"] = ", ".join( + ("OPTIONS", "POST") + ) + + return resp + + return impl # type: ignore diff --git a/.vim/bundle/black/src/blib2to3/Grammar.txt b/.vim/bundle/black/src/blib2to3/Grammar.txt new file mode 100644 index 0000000..ac8a067 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/Grammar.txt @@ -0,0 +1,215 @@ +# Grammar for 2to3. This grammar supports Python 2.x and 3.x. + +# NOTE WELL: You should also follow all the steps listed at +# https://devguide.python.org/grammar/ + +# Start symbols for the grammar: +# file_input is a module or sequence of commands read from an input file; +# single_input is a single interactive statement; +# eval_input is the input for the eval() and input() functions. +# NB: compound_stmt in single_input is followed by extra NEWLINE! +file_input: (NEWLINE | stmt)* ENDMARKER +single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE +eval_input: testlist NEWLINE* ENDMARKER + +decorator: '@' namedexpr_test NEWLINE +decorators: decorator+ +decorated: decorators (classdef | funcdef | async_funcdef) +async_funcdef: ASYNC funcdef +funcdef: 'def' NAME parameters ['->' test] ':' suite +parameters: '(' [typedargslist] ')' + +# The following definition for typedarglist is equivalent to this set of rules: +# +# arguments = argument (',' argument)* +# argument = tfpdef ['=' test] +# kwargs = '**' tname [','] +# args = '*' [tname] +# kwonly_kwargs = (',' argument)* [',' [kwargs]] +# args_kwonly_kwargs = args kwonly_kwargs | kwargs +# poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]] +# typedargslist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs +# typedarglist = arguments ',' '/' [',' [typedargslist_no_posonly]])|(typedargslist_no_posonly)" +# +# It needs to be fully expanded to allow our LL(1) parser to work on it. + +typedargslist: tfpdef ['=' test] (',' tfpdef ['=' test])* ',' '/' [ + ',' [((tfpdef ['=' test] ',')* ('*' [tname] (',' tname ['=' test])* + [',' ['**' tname [',']]] | '**' tname [',']) + | tfpdef ['=' test] (',' tfpdef ['=' test])* [','])] + ] | ((tfpdef ['=' test] ',')* ('*' [tname] (',' tname ['=' test])* + [',' ['**' tname [',']]] | '**' tname [',']) + | tfpdef ['=' test] (',' tfpdef ['=' test])* [',']) + +tname: NAME [':' test] +tfpdef: tname | '(' tfplist ')' +tfplist: tfpdef (',' tfpdef)* [','] + +# The following definition for varargslist is equivalent to this set of rules: +# +# arguments = argument (',' argument )* +# argument = vfpdef ['=' test] +# kwargs = '**' vname [','] +# args = '*' [vname] +# kwonly_kwargs = (',' argument )* [',' [kwargs]] +# args_kwonly_kwargs = args kwonly_kwargs | kwargs +# poskeyword_args_kwonly_kwargs = arguments [',' [args_kwonly_kwargs]] +# vararglist_no_posonly = poskeyword_args_kwonly_kwargs | args_kwonly_kwargs +# varargslist = arguments ',' '/' [','[(vararglist_no_posonly)]] | (vararglist_no_posonly) +# +# It needs to be fully expanded to allow our LL(1) parser to work on it. + +varargslist: vfpdef ['=' test ](',' vfpdef ['=' test])* ',' '/' [',' [ + ((vfpdef ['=' test] ',')* ('*' [vname] (',' vname ['=' test])* + [',' ['**' vname [',']]] | '**' vname [',']) + | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) + ]] | ((vfpdef ['=' test] ',')* + ('*' [vname] (',' vname ['=' test])* [',' ['**' vname [',']]]| '**' vname [',']) + | vfpdef ['=' test] (',' vfpdef ['=' test])* [',']) + +vname: NAME +vfpdef: vname | '(' vfplist ')' +vfplist: vfpdef (',' vfpdef)* [','] + +stmt: simple_stmt | compound_stmt +simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE +small_stmt: (expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | + import_stmt | global_stmt | exec_stmt | assert_stmt) +expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) | + ('=' (yield_expr|testlist_star_expr))*) +annassign: ':' test ['=' (yield_expr|testlist_star_expr)] +testlist_star_expr: (test|star_expr) (',' (test|star_expr))* [','] +augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' | + '<<=' | '>>=' | '**=' | '//=') +# For normal and annotated assignments, additional restrictions enforced by the interpreter +print_stmt: 'print' ( [ test (',' test)* [','] ] | + '>>' test [ (',' test)+ [','] ] ) +del_stmt: 'del' exprlist +pass_stmt: 'pass' +flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt +break_stmt: 'break' +continue_stmt: 'continue' +return_stmt: 'return' [testlist_star_expr] +yield_stmt: yield_expr +raise_stmt: 'raise' [test ['from' test | ',' test [',' test]]] +import_stmt: import_name | import_from +import_name: 'import' dotted_as_names +import_from: ('from' ('.'* dotted_name | '.'+) + 'import' ('*' | '(' import_as_names ')' | import_as_names)) +import_as_name: NAME ['as' NAME] +dotted_as_name: dotted_name ['as' NAME] +import_as_names: import_as_name (',' import_as_name)* [','] +dotted_as_names: dotted_as_name (',' dotted_as_name)* +dotted_name: NAME ('.' NAME)* +global_stmt: ('global' | 'nonlocal') NAME (',' NAME)* +exec_stmt: 'exec' expr ['in' test [',' test]] +assert_stmt: 'assert' test [',' test] + +compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated | async_stmt +async_stmt: ASYNC (funcdef | with_stmt | for_stmt) +if_stmt: 'if' namedexpr_test ':' suite ('elif' namedexpr_test ':' suite)* ['else' ':' suite] +while_stmt: 'while' namedexpr_test ':' suite ['else' ':' suite] +for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite] +try_stmt: ('try' ':' suite + ((except_clause ':' suite)+ + ['else' ':' suite] + ['finally' ':' suite] | + 'finally' ':' suite)) +with_stmt: 'with' with_item (',' with_item)* ':' suite +with_item: test ['as' expr] +with_var: 'as' expr +# NB compile.c makes sure that the default except clause is last +except_clause: 'except' [test [(',' | 'as') test]] +suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT + +# Backward compatibility cruft to support: +# [ x for x in lambda: True, lambda: False if x() ] +# even while also allowing: +# lambda x: 5 if x else 2 +# (But not a mix of the two) +testlist_safe: old_test [(',' old_test)+ [',']] +old_test: or_test | old_lambdef +old_lambdef: 'lambda' [varargslist] ':' old_test + +namedexpr_test: test [':=' test] +test: or_test ['if' or_test 'else' test] | lambdef +or_test: and_test ('or' and_test)* +and_test: not_test ('and' not_test)* +not_test: 'not' not_test | comparison +comparison: expr (comp_op expr)* +comp_op: '<'|'>'|'=='|'>='|'<='|'<>'|'!='|'in'|'not' 'in'|'is'|'is' 'not' +star_expr: '*' expr +expr: xor_expr ('|' xor_expr)* +xor_expr: and_expr ('^' and_expr)* +and_expr: shift_expr ('&' shift_expr)* +shift_expr: arith_expr (('<<'|'>>') arith_expr)* +arith_expr: term (('+'|'-') term)* +term: factor (('*'|'@'|'/'|'%'|'//') factor)* +factor: ('+'|'-'|'~') factor | power +power: [AWAIT] atom trailer* ['**' factor] +atom: ('(' [yield_expr|testlist_gexp] ')' | + '[' [listmaker] ']' | + '{' [dictsetmaker] '}' | + '`' testlist1 '`' | + NAME | NUMBER | STRING+ | '.' '.' '.') +listmaker: (namedexpr_test|star_expr) ( old_comp_for | (',' (namedexpr_test|star_expr))* [','] ) +testlist_gexp: (namedexpr_test|star_expr) ( old_comp_for | (',' (namedexpr_test|star_expr))* [','] ) +lambdef: 'lambda' [varargslist] ':' test +trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME +subscriptlist: subscript (',' subscript)* [','] +subscript: test [':=' test] | [test] ':' [test] [sliceop] +sliceop: ':' [test] +exprlist: (expr|star_expr) (',' (expr|star_expr))* [','] +testlist: test (',' test)* [','] +dictsetmaker: ( ((test ':' test | '**' expr) + (comp_for | (',' (test ':' test | '**' expr))* [','])) | + ((test [':=' test] | star_expr) + (comp_for | (',' (test [':=' test] | star_expr))* [','])) ) + +classdef: 'class' NAME ['(' [arglist] ')'] ':' suite + +arglist: argument (',' argument)* [','] + +# "test '=' test" is really "keyword '=' test", but we have no such token. +# These need to be in a single rule to avoid grammar that is ambiguous +# to our LL(1) parser. Even though 'test' includes '*expr' in star_expr, +# we explicitly match '*' here, too, to give it proper precedence. +# Illegal combinations and orderings are blocked in ast.c: +# multiple (test comp_for) arguments are blocked; keyword unpackings +# that precede iterable unpackings are blocked; etc. +argument: ( test [comp_for] | + test ':=' test | + test '=' test | + '**' test | + '*' test ) + +comp_iter: comp_for | comp_if +comp_for: [ASYNC] 'for' exprlist 'in' or_test [comp_iter] +comp_if: 'if' old_test [comp_iter] + +# As noted above, testlist_safe extends the syntax allowed in list +# comprehensions and generators. We can't use it indiscriminately in all +# derivations using a comp_for-like pattern because the testlist_safe derivation +# contains comma which clashes with trailing comma in arglist. +# +# This was an issue because the parser would not follow the correct derivation +# when parsing syntactically valid Python code. Since testlist_safe was created +# specifically to handle list comprehensions and generator expressions enclosed +# with parentheses, it's safe to only use it in those. That avoids the issue; we +# can parse code like set(x for x in [],). +# +# The syntax supported by this set of rules is not a valid Python 3 syntax, +# hence the prefix "old". +# +# See https://bugs.python.org/issue27494 +old_comp_iter: old_comp_for | old_comp_if +old_comp_for: [ASYNC] 'for' exprlist 'in' testlist_safe [old_comp_iter] +old_comp_if: 'if' old_test [old_comp_iter] + +testlist1: test (',' test)* + +# not used in grammar, but may appear in "node" passed from Parser to Compiler +encoding_decl: NAME + +yield_expr: 'yield' [yield_arg] +yield_arg: 'from' test | testlist_star_expr diff --git a/.vim/bundle/black/src/blib2to3/LICENSE b/.vim/bundle/black/src/blib2to3/LICENSE new file mode 100644 index 0000000..ef8df06 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/LICENSE @@ -0,0 +1,254 @@ +A. HISTORY OF THE SOFTWARE +========================== + +Python was created in the early 1990s by Guido van Rossum at Stichting +Mathematisch Centrum (CWI, see https://www.cwi.nl) in the Netherlands +as a successor of a language called ABC. Guido remains Python's +principal author, although it includes many contributions from others. + +In 1995, Guido continued his work on Python at the Corporation for +National Research Initiatives (CNRI, see https://www.cnri.reston.va.us) +in Reston, Virginia where he released several versions of the +software. + +In May 2000, Guido and the Python core development team moved to +BeOpen.com to form the BeOpen PythonLabs team. In October of the same +year, the PythonLabs team moved to Digital Creations, which became +Zope Corporation. In 2001, the Python Software Foundation (PSF, see +https://www.python.org/psf/) was formed, a non-profit organization +created specifically to own Python-related Intellectual Property. +Zope Corporation was a sponsoring member of the PSF. + +All Python releases are Open Source (see https://opensource.org for +the Open Source Definition). Historically, most, but not all, Python +releases have also been GPL-compatible; the table below summarizes +the various releases. + + Release Derived Year Owner GPL- + from compatible? (1) + + 0.9.0 thru 1.2 1991-1995 CWI yes + 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes + 1.6 1.5.2 2000 CNRI no + 2.0 1.6 2000 BeOpen.com no + 1.6.1 1.6 2001 CNRI yes (2) + 2.1 2.0+1.6.1 2001 PSF no + 2.0.1 2.0+1.6.1 2001 PSF yes + 2.1.1 2.1+2.0.1 2001 PSF yes + 2.1.2 2.1.1 2002 PSF yes + 2.1.3 2.1.2 2002 PSF yes + 2.2 and above 2.1.1 2001-now PSF yes + +Footnotes: + +(1) GPL-compatible doesn't mean that we're distributing Python under + the GPL. All Python licenses, unlike the GPL, let you distribute + a modified version without making your changes open source. The + GPL-compatible licenses make it possible to combine Python with + other software that is released under the GPL; the others don't. + +(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, + because its license has a choice of law clause. According to + CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 + is "not incompatible" with the GPL. + +Thanks to the many outside volunteers who have worked under Guido's +direction to make these releases possible. + + +B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON +=============================================================== + +PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 +-------------------------------------------- + +1. This LICENSE AGREEMENT is between the Python Software Foundation +("PSF"), and the Individual or Organization ("Licensee") accessing and +otherwise using this software ("Python") in source or binary form and +its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, PSF hereby +grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, +analyze, test, perform and/or display publicly, prepare derivative works, +distribute, and otherwise use Python alone or in any derivative version, +provided, however, that PSF's License Agreement and PSF's notice of copyright, +i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, +2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 Python Software Foundation; All +Rights Reserved" are retained in Python alone or in any derivative version +prepared by Licensee. + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python. + +4. PSF is making Python available to Licensee on an "AS IS" +basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. + +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 +------------------------------------------- + +BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 + +1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an +office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the +Individual or Organization ("Licensee") accessing and otherwise using +this software in source or binary form and its associated +documentation ("the Software"). + +2. Subject to the terms and conditions of this BeOpen Python License +Agreement, BeOpen hereby grants Licensee a non-exclusive, +royalty-free, world-wide license to reproduce, analyze, test, perform +and/or display publicly, prepare derivative works, distribute, and +otherwise use the Software alone or in any derivative version, +provided, however, that the BeOpen Python License is retained in the +Software, alone or in any derivative version prepared by Licensee. + +3. BeOpen is making the Software available to Licensee on an "AS IS" +basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE +SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS +AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY +DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +5. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +6. This License Agreement shall be governed by and interpreted in all +respects by the law of the State of California, excluding conflict of +law provisions. Nothing in this License Agreement shall be deemed to +create any relationship of agency, partnership, or joint venture +between BeOpen and Licensee. This License Agreement does not grant +permission to use BeOpen trademarks or trade names in a trademark +sense to endorse or promote products or services of Licensee, or any +third party. As an exception, the "BeOpen Python" logos available at +http://www.pythonlabs.com/logos.html may be used according to the +permissions granted on that web page. + +7. By copying, installing or otherwise using the software, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. + + +CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 +--------------------------------------- + +1. This LICENSE AGREEMENT is between the Corporation for National +Research Initiatives, having an office at 1895 Preston White Drive, +Reston, VA 20191 ("CNRI"), and the Individual or Organization +("Licensee") accessing and otherwise using Python 1.6.1 software in +source or binary form and its associated documentation. + +2. Subject to the terms and conditions of this License Agreement, CNRI +hereby grants Licensee a nonexclusive, royalty-free, world-wide +license to reproduce, analyze, test, perform and/or display publicly, +prepare derivative works, distribute, and otherwise use Python 1.6.1 +alone or in any derivative version, provided, however, that CNRI's +License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) +1995-2001 Corporation for National Research Initiatives; All Rights +Reserved" are retained in Python 1.6.1 alone or in any derivative +version prepared by Licensee. Alternately, in lieu of CNRI's License +Agreement, Licensee may substitute the following text (omitting the +quotes): "Python 1.6.1 is made available subject to the terms and +conditions in CNRI's License Agreement. This Agreement together with +Python 1.6.1 may be located on the Internet using the following +unique, persistent identifier (known as a handle): 1895.22/1013. This +Agreement may also be obtained from a proxy server on the Internet +using the following URL: http://hdl.handle.net/1895.22/1013". + +3. In the event Licensee prepares a derivative work that is based on +or incorporates Python 1.6.1 or any part thereof, and wants to make +the derivative work available to others as provided herein, then +Licensee hereby agrees to include in any such work a brief summary of +the changes made to Python 1.6.1. + +4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" +basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR +IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND +DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS +FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT +INFRINGE ANY THIRD PARTY RIGHTS. + +5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON +1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS +A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, +OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. + +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. + +7. This License Agreement shall be governed by the federal +intellectual property law of the United States, including without +limitation the federal copyright law, and, to the extent such +U.S. federal law does not apply, by the law of the Commonwealth of +Virginia, excluding Virginia's conflict of law provisions. +Notwithstanding the foregoing, with regard to derivative works based +on Python 1.6.1 that incorporate non-separable material that was +previously distributed under the GNU General Public License (GPL), the +law of the Commonwealth of Virginia shall govern this License +Agreement only as to issues arising under or with respect to +Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this +License Agreement shall be deemed to create any relationship of +agency, partnership, or joint venture between CNRI and Licensee. This +License Agreement does not grant permission to use CNRI trademarks or +trade name in a trademark sense to endorse or promote products or +services of Licensee, or any third party. + +8. By clicking on the "ACCEPT" button where indicated, or by copying, +installing or otherwise using Python 1.6.1, Licensee agrees to be +bound by the terms and conditions of this License Agreement. + + ACCEPT + + +CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 +-------------------------------------------------- + +Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, +The Netherlands. All rights reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Stichting Mathematisch +Centrum or CWI not be used in advertising or publicity pertaining to +distribution of the software without specific, written prior +permission. + +STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO +THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE +FOR ANY SPECIAL, 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/.vim/bundle/black/src/blib2to3/PatternGrammar.txt b/.vim/bundle/black/src/blib2to3/PatternGrammar.txt new file mode 100644 index 0000000..36bf814 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/PatternGrammar.txt @@ -0,0 +1,28 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# A grammar to describe tree matching patterns. +# Not shown here: +# - 'TOKEN' stands for any token (leaf node) +# - 'any' stands for any node (leaf or interior) +# With 'any' we can still specify the sub-structure. + +# The start symbol is 'Matcher'. + +Matcher: Alternatives ENDMARKER + +Alternatives: Alternative ('|' Alternative)* + +Alternative: (Unit | NegatedUnit)+ + +Unit: [NAME '='] ( STRING [Repeater] + | NAME [Details] [Repeater] + | '(' Alternatives ')' [Repeater] + | '[' Alternatives ']' + ) + +NegatedUnit: 'not' (STRING | NAME [Details] | '(' Alternatives ')') + +Repeater: '*' | '+' | '{' NUMBER [',' NUMBER] '}' + +Details: '<' Alternatives '>' diff --git a/.vim/bundle/black/src/blib2to3/README b/.vim/bundle/black/src/blib2to3/README new file mode 100644 index 0000000..ccad283 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/README @@ -0,0 +1,21 @@ +A subset of lib2to3 taken from Python 3.7.0b2. +Commit hash: 9c17e3a1987004b8bcfbe423953aad84493a7984 + +Reasons for forking: +- consistent handling of f-strings for users of Python < 3.6.2 +- backport of BPO-33064 that fixes parsing files with trailing commas after + *args and **kwargs +- backport of GH-6143 that restores the ability to reformat legacy usage of + `async` +- support all types of string literals +- better ability to debug (better reprs) +- INDENT and DEDENT don't hold whitespace and comment prefixes +- ability to Cythonize + +Change Log: +- Changes default logger used by Driver +- Backported the following upstream parser changes: + - "bpo-42381: Allow walrus in set literals and set comprehensions (GH-23332)" + https://github.com/python/cpython/commit/cae60187cf7a7b26281d012e1952fafe4e2e97e9 + - "bpo-42316: Allow unparenthesized walrus operator in indexes (GH-23317)" + https://github.com/python/cpython/commit/b0aba1fcdc3da952698d99aec2334faa79a8b68c diff --git a/.vim/bundle/black/src/blib2to3/__init__.py b/.vim/bundle/black/src/blib2to3/__init__.py new file mode 100644 index 0000000..1bb8bf6 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/__init__.py @@ -0,0 +1 @@ +# empty diff --git a/.vim/bundle/black/src/blib2to3/pgen2/__init__.py b/.vim/bundle/black/src/blib2to3/pgen2/__init__.py new file mode 100644 index 0000000..af39048 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""The pgen2 package.""" diff --git a/.vim/bundle/black/src/blib2to3/pgen2/conv.py b/.vim/bundle/black/src/blib2to3/pgen2/conv.py new file mode 100644 index 0000000..7816521 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/conv.py @@ -0,0 +1,256 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# mypy: ignore-errors + +"""Convert graminit.[ch] spit out by pgen to Python code. + +Pgen is the Python parser generator. It is useful to quickly create a +parser from a grammar file in Python's grammar notation. But I don't +want my parsers to be written in C (yet), so I'm translating the +parsing tables to Python data structures and writing a Python parse +engine. + +Note that the token numbers are constants determined by the standard +Python tokenizer. The standard token module defines these numbers and +their names (the names are not used much). The token numbers are +hardcoded into the Python tokenizer and into pgen. A Python +implementation of the Python tokenizer is also available, in the +standard tokenize module. + +On the other hand, symbol numbers (representing the grammar's +non-terminals) are assigned by pgen based on the actual grammar +input. + +Note: this module is pretty much obsolete; the pgen module generates +equivalent grammar tables directly from the Grammar.txt input file +without having to invoke the Python pgen C program. + +""" + +# Python imports +import regex as re + +# Local imports +from pgen2 import grammar, token + + +class Converter(grammar.Grammar): + """Grammar subclass that reads classic pgen output files. + + The run() method reads the tables as produced by the pgen parser + generator, typically contained in two C files, graminit.h and + graminit.c. The other methods are for internal use only. + + See the base class for more documentation. + + """ + + def run(self, graminit_h, graminit_c): + """Load the grammar tables from the text files written by pgen.""" + self.parse_graminit_h(graminit_h) + self.parse_graminit_c(graminit_c) + self.finish_off() + + def parse_graminit_h(self, filename): + """Parse the .h file written by pgen. (Internal) + + This file is a sequence of #define statements defining the + nonterminals of the grammar as numbers. We build two tables + mapping the numbers to names and back. + + """ + try: + f = open(filename) + except OSError as err: + print("Can't open %s: %s" % (filename, err)) + return False + self.symbol2number = {} + self.number2symbol = {} + lineno = 0 + for line in f: + lineno += 1 + mo = re.match(r"^#define\s+(\w+)\s+(\d+)$", line) + if not mo and line.strip(): + print("%s(%s): can't parse %s" % (filename, lineno, line.strip())) + else: + symbol, number = mo.groups() + number = int(number) + assert symbol not in self.symbol2number + assert number not in self.number2symbol + self.symbol2number[symbol] = number + self.number2symbol[number] = symbol + return True + + def parse_graminit_c(self, filename): + """Parse the .c file written by pgen. (Internal) + + The file looks as follows. The first two lines are always this: + + #include "pgenheaders.h" + #include "grammar.h" + + After that come four blocks: + + 1) one or more state definitions + 2) a table defining dfas + 3) a table defining labels + 4) a struct defining the grammar + + A state definition has the following form: + - one or more arc arrays, each of the form: + static arc arcs__[] = { + {, }, + ... + }; + - followed by a state array, of the form: + static state states_[] = { + {, arcs__}, + ... + }; + + """ + try: + f = open(filename) + except OSError as err: + print("Can't open %s: %s" % (filename, err)) + return False + # The code below essentially uses f's iterator-ness! + lineno = 0 + + # Expect the two #include lines + lineno, line = lineno + 1, next(f) + assert line == '#include "pgenheaders.h"\n', (lineno, line) + lineno, line = lineno + 1, next(f) + assert line == '#include "grammar.h"\n', (lineno, line) + + # Parse the state definitions + lineno, line = lineno + 1, next(f) + allarcs = {} + states = [] + while line.startswith("static arc "): + while line.startswith("static arc "): + mo = re.match(r"static arc arcs_(\d+)_(\d+)\[(\d+)\] = {$", line) + assert mo, (lineno, line) + n, m, k = list(map(int, mo.groups())) + arcs = [] + for _ in range(k): + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), (\d+)},$", line) + assert mo, (lineno, line) + i, j = list(map(int, mo.groups())) + arcs.append((i, j)) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + allarcs[(n, m)] = arcs + lineno, line = lineno + 1, next(f) + mo = re.match(r"static state states_(\d+)\[(\d+)\] = {$", line) + assert mo, (lineno, line) + s, t = list(map(int, mo.groups())) + assert s == len(states), (lineno, line) + state = [] + for _ in range(t): + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), arcs_(\d+)_(\d+)},$", line) + assert mo, (lineno, line) + k, n, m = list(map(int, mo.groups())) + arcs = allarcs[n, m] + assert k == len(arcs), (lineno, line) + state.append(arcs) + states.append(state) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + lineno, line = lineno + 1, next(f) + self.states = states + + # Parse the dfas + dfas = {} + mo = re.match(r"static dfa dfas\[(\d+)\] = {$", line) + assert mo, (lineno, line) + ndfas = int(mo.group(1)) + for i in range(ndfas): + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+{(\d+), "(\w+)", (\d+), (\d+), states_(\d+),$', line) + assert mo, (lineno, line) + symbol = mo.group(2) + number, x, y, z = list(map(int, mo.group(1, 3, 4, 5))) + assert self.symbol2number[symbol] == number, (lineno, line) + assert self.number2symbol[number] == symbol, (lineno, line) + assert x == 0, (lineno, line) + state = states[z] + assert y == len(state), (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+("(?:\\\d\d\d)*")},$', line) + assert mo, (lineno, line) + first = {} + rawbitset = eval(mo.group(1)) + for i, c in enumerate(rawbitset): + byte = ord(c) + for j in range(8): + if byte & (1 << j): + first[i * 8 + j] = 1 + dfas[number] = (state, first) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + self.dfas = dfas + + # Parse the labels + labels = [] + lineno, line = lineno + 1, next(f) + mo = re.match(r"static label labels\[(\d+)\] = {$", line) + assert mo, (lineno, line) + nlabels = int(mo.group(1)) + for i in range(nlabels): + lineno, line = lineno + 1, next(f) + mo = re.match(r'\s+{(\d+), (0|"\w+")},$', line) + assert mo, (lineno, line) + x, y = mo.groups() + x = int(x) + if y == "0": + y = None + else: + y = eval(y) + labels.append((x, y)) + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + self.labels = labels + + # Parse the grammar struct + lineno, line = lineno + 1, next(f) + assert line == "grammar _PyParser_Grammar = {\n", (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+(\d+),$", line) + assert mo, (lineno, line) + ndfas = int(mo.group(1)) + assert ndfas == len(self.dfas) + lineno, line = lineno + 1, next(f) + assert line == "\tdfas,\n", (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+{(\d+), labels},$", line) + assert mo, (lineno, line) + nlabels = int(mo.group(1)) + assert nlabels == len(self.labels), (lineno, line) + lineno, line = lineno + 1, next(f) + mo = re.match(r"\s+(\d+)$", line) + assert mo, (lineno, line) + start = int(mo.group(1)) + assert start in self.number2symbol, (lineno, line) + self.start = start + lineno, line = lineno + 1, next(f) + assert line == "};\n", (lineno, line) + try: + lineno, line = lineno + 1, next(f) + except StopIteration: + pass + else: + assert 0, (lineno, line) + + def finish_off(self): + """Create additional useful structures. (Internal).""" + self.keywords = {} # map from keyword strings to arc labels + self.tokens = {} # map from numeric token values to arc labels + for ilabel, (type, value) in enumerate(self.labels): + if type == token.NAME and value is not None: + self.keywords[value] = ilabel + elif value is None: + self.tokens[type] = ilabel diff --git a/.vim/bundle/black/src/blib2to3/pgen2/driver.py b/.vim/bundle/black/src/blib2to3/pgen2/driver.py new file mode 100644 index 0000000..af1dc6b --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/driver.py @@ -0,0 +1,253 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# Modifications: +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Parser driver. + +This provides a high-level interface to parse a file into a syntax tree. + +""" + +__author__ = "Guido van Rossum " + +__all__ = ["Driver", "load_grammar"] + +# Python imports +import io +import os +import logging +import pkgutil +import sys +from typing import ( + Any, + IO, + Iterable, + List, + Optional, + Text, + Tuple, + Union, +) + +# Pgen imports +from . import grammar, parse, token, tokenize, pgen +from logging import Logger +from blib2to3.pytree import _Convert, NL +from blib2to3.pgen2.grammar import Grammar + +Path = Union[str, "os.PathLike[str]"] + + +class Driver(object): + def __init__( + self, + grammar: Grammar, + convert: Optional[_Convert] = None, + logger: Optional[Logger] = None, + ) -> None: + self.grammar = grammar + if logger is None: + logger = logging.getLogger(__name__) + self.logger = logger + self.convert = convert + + def parse_tokens(self, tokens: Iterable[Any], debug: bool = False) -> NL: + """Parse a series of tokens and return the syntax tree.""" + # XXX Move the prefix computation into a wrapper around tokenize. + p = parse.Parser(self.grammar, self.convert) + p.setup() + lineno = 1 + column = 0 + indent_columns = [] + type = value = start = end = line_text = None + prefix = "" + for quintuple in tokens: + type, value, start, end, line_text = quintuple + if start != (lineno, column): + assert (lineno, column) <= start, ((lineno, column), start) + s_lineno, s_column = start + if lineno < s_lineno: + prefix += "\n" * (s_lineno - lineno) + lineno = s_lineno + column = 0 + if column < s_column: + prefix += line_text[column:s_column] + column = s_column + if type in (tokenize.COMMENT, tokenize.NL): + prefix += value + lineno, column = end + if value.endswith("\n"): + lineno += 1 + column = 0 + continue + if type == token.OP: + type = grammar.opmap[value] + if debug: + self.logger.debug( + "%s %r (prefix=%r)", token.tok_name[type], value, prefix + ) + if type == token.INDENT: + indent_columns.append(len(value)) + _prefix = prefix + value + prefix = "" + value = "" + elif type == token.DEDENT: + _indent_col = indent_columns.pop() + prefix, _prefix = self._partially_consume_prefix(prefix, _indent_col) + if p.addtoken(type, value, (prefix, start)): + if debug: + self.logger.debug("Stop.") + break + prefix = "" + if type in {token.INDENT, token.DEDENT}: + prefix = _prefix + lineno, column = end + if value.endswith("\n"): + lineno += 1 + column = 0 + else: + # We never broke out -- EOF is too soon (how can this happen???) + assert start is not None + raise parse.ParseError("incomplete input", type, value, (prefix, start)) + assert p.rootnode is not None + return p.rootnode + + def parse_stream_raw(self, stream: IO[Text], debug: bool = False) -> NL: + """Parse a stream and return the syntax tree.""" + tokens = tokenize.generate_tokens(stream.readline, grammar=self.grammar) + return self.parse_tokens(tokens, debug) + + def parse_stream(self, stream: IO[Text], debug: bool = False) -> NL: + """Parse a stream and return the syntax tree.""" + return self.parse_stream_raw(stream, debug) + + def parse_file( + self, filename: Path, encoding: Optional[Text] = None, debug: bool = False + ) -> NL: + """Parse a file and return the syntax tree.""" + with io.open(filename, "r", encoding=encoding) as stream: + return self.parse_stream(stream, debug) + + def parse_string(self, text: Text, debug: bool = False) -> NL: + """Parse a string and return the syntax tree.""" + tokens = tokenize.generate_tokens( + io.StringIO(text).readline, grammar=self.grammar + ) + return self.parse_tokens(tokens, debug) + + def _partially_consume_prefix(self, prefix: Text, column: int) -> Tuple[Text, Text]: + lines: List[str] = [] + current_line = "" + current_column = 0 + wait_for_nl = False + for char in prefix: + current_line += char + if wait_for_nl: + if char == "\n": + if current_line.strip() and current_column < column: + res = "".join(lines) + return res, prefix[len(res) :] + + lines.append(current_line) + current_line = "" + current_column = 0 + wait_for_nl = False + elif char in " \t": + current_column += 1 + elif char == "\n": + # unexpected empty line + current_column = 0 + else: + # indent is finished + wait_for_nl = True + return "".join(lines), current_line + + +def _generate_pickle_name(gt: Path, cache_dir: Optional[Path] = None) -> Text: + head, tail = os.path.splitext(gt) + if tail == ".txt": + tail = "" + name = head + tail + ".".join(map(str, sys.version_info)) + ".pickle" + if cache_dir: + return os.path.join(cache_dir, os.path.basename(name)) + else: + return name + + +def load_grammar( + gt: Text = "Grammar.txt", + gp: Optional[Text] = None, + save: bool = True, + force: bool = False, + logger: Optional[Logger] = None, +) -> Grammar: + """Load the grammar (maybe from a pickle).""" + if logger is None: + logger = logging.getLogger(__name__) + gp = _generate_pickle_name(gt) if gp is None else gp + if force or not _newer(gp, gt): + logger.info("Generating grammar tables from %s", gt) + g: grammar.Grammar = pgen.generate_grammar(gt) + if save: + logger.info("Writing grammar tables to %s", gp) + try: + g.dump(gp) + except OSError as e: + logger.info("Writing failed: %s", e) + else: + g = grammar.Grammar() + g.load(gp) + return g + + +def _newer(a: Text, b: Text) -> bool: + """Inquire whether file a was written since file b.""" + if not os.path.exists(a): + return False + if not os.path.exists(b): + return True + return os.path.getmtime(a) >= os.path.getmtime(b) + + +def load_packaged_grammar( + package: str, grammar_source: Text, cache_dir: Optional[Path] = None +) -> grammar.Grammar: + """Normally, loads a pickled grammar by doing + pkgutil.get_data(package, pickled_grammar) + where *pickled_grammar* is computed from *grammar_source* by adding the + Python version and using a ``.pickle`` extension. + + However, if *grammar_source* is an extant file, load_grammar(grammar_source) + is called instead. This facilitates using a packaged grammar file when needed + but preserves load_grammar's automatic regeneration behavior when possible. + + """ + if os.path.isfile(grammar_source): + gp = _generate_pickle_name(grammar_source, cache_dir) if cache_dir else None + return load_grammar(grammar_source, gp=gp) + pickled_name = _generate_pickle_name(os.path.basename(grammar_source), cache_dir) + data = pkgutil.get_data(package, pickled_name) + assert data is not None + g = grammar.Grammar() + g.loads(data) + return g + + +def main(*args: Text) -> bool: + """Main program, when run as a script: produce grammar pickle files. + + Calls load_grammar for each argument, a path to a grammar text file. + """ + if not args: + args = tuple(sys.argv[1:]) + logging.basicConfig(level=logging.INFO, stream=sys.stdout, format="%(message)s") + for gt in args: + load_grammar(gt, save=True, force=True) + return True + + +if __name__ == "__main__": + sys.exit(int(not main())) diff --git a/.vim/bundle/black/src/blib2to3/pgen2/grammar.py b/.vim/bundle/black/src/blib2to3/pgen2/grammar.py new file mode 100644 index 0000000..2882cda --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/grammar.py @@ -0,0 +1,223 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""This module defines the data structures used to represent a grammar. + +These are a bit arcane because they are derived from the data +structures used by Python's 'pgen' parser generator. + +There's also a table here mapping operators to their names in the +token module; the Python tokenize module reports all operators as the +fallback token code OP, but the parser needs the actual token code. + +""" + +# Python imports +import os +import pickle +import tempfile +from typing import Any, Dict, List, Optional, Text, Tuple, TypeVar, Union + +# Local imports +from . import token + +_P = TypeVar("_P", bound="Grammar") +Label = Tuple[int, Optional[Text]] +DFA = List[List[Tuple[int, int]]] +DFAS = Tuple[DFA, Dict[int, int]] +Path = Union[str, "os.PathLike[str]"] + + +class Grammar(object): + """Pgen parsing tables conversion class. + + Once initialized, this class supplies the grammar tables for the + parsing engine implemented by parse.py. The parsing engine + accesses the instance variables directly. The class here does not + provide initialization of the tables; several subclasses exist to + do this (see the conv and pgen modules). + + The load() method reads the tables from a pickle file, which is + much faster than the other ways offered by subclasses. The pickle + file is written by calling dump() (after loading the grammar + tables using a subclass). The report() method prints a readable + representation of the tables to stdout, for debugging. + + The instance variables are as follows: + + symbol2number -- a dict mapping symbol names to numbers. Symbol + numbers are always 256 or higher, to distinguish + them from token numbers, which are between 0 and + 255 (inclusive). + + number2symbol -- a dict mapping numbers to symbol names; + these two are each other's inverse. + + states -- a list of DFAs, where each DFA is a list of + states, each state is a list of arcs, and each + arc is a (i, j) pair where i is a label and j is + a state number. The DFA number is the index into + this list. (This name is slightly confusing.) + Final states are represented by a special arc of + the form (0, j) where j is its own state number. + + dfas -- a dict mapping symbol numbers to (DFA, first) + pairs, where DFA is an item from the states list + above, and first is a set of tokens that can + begin this grammar rule (represented by a dict + whose values are always 1). + + labels -- a list of (x, y) pairs where x is either a token + number or a symbol number, and y is either None + or a string; the strings are keywords. The label + number is the index in this list; label numbers + are used to mark state transitions (arcs) in the + DFAs. + + start -- the number of the grammar's start symbol. + + keywords -- a dict mapping keyword strings to arc labels. + + tokens -- a dict mapping token numbers to arc labels. + + """ + + def __init__(self) -> None: + self.symbol2number: Dict[str, int] = {} + self.number2symbol: Dict[int, str] = {} + self.states: List[DFA] = [] + self.dfas: Dict[int, DFAS] = {} + self.labels: List[Label] = [(0, "EMPTY")] + self.keywords: Dict[str, int] = {} + self.tokens: Dict[int, int] = {} + self.symbol2label: Dict[str, int] = {} + self.start = 256 + # Python 3.7+ parses async as a keyword, not an identifier + self.async_keywords = False + + def dump(self, filename: Path) -> None: + """Dump the grammar tables to a pickle file.""" + + # mypyc generates objects that don't have a __dict__, but they + # do have __getstate__ methods that will return an equivalent + # dictionary + if hasattr(self, "__dict__"): + d = self.__dict__ + else: + d = self.__getstate__() # type: ignore + + with tempfile.NamedTemporaryFile( + dir=os.path.dirname(filename), delete=False + ) as f: + pickle.dump(d, f, pickle.HIGHEST_PROTOCOL) + os.replace(f.name, filename) + + def _update(self, attrs: Dict[str, Any]) -> None: + for k, v in attrs.items(): + setattr(self, k, v) + + def load(self, filename: Path) -> None: + """Load the grammar tables from a pickle file.""" + with open(filename, "rb") as f: + d = pickle.load(f) + self._update(d) + + def loads(self, pkl: bytes) -> None: + """Load the grammar tables from a pickle bytes object.""" + self._update(pickle.loads(pkl)) + + def copy(self: _P) -> _P: + """ + Copy the grammar. + """ + new = self.__class__() + for dict_attr in ( + "symbol2number", + "number2symbol", + "dfas", + "keywords", + "tokens", + "symbol2label", + ): + setattr(new, dict_attr, getattr(self, dict_attr).copy()) + new.labels = self.labels[:] + new.states = self.states[:] + new.start = self.start + new.async_keywords = self.async_keywords + return new + + def report(self) -> None: + """Dump the grammar tables to standard output, for debugging.""" + from pprint import pprint + + print("s2n") + pprint(self.symbol2number) + print("n2s") + pprint(self.number2symbol) + print("states") + pprint(self.states) + print("dfas") + pprint(self.dfas) + print("labels") + pprint(self.labels) + print("start", self.start) + + +# Map from operator to number (since tokenize doesn't do this) + +opmap_raw = """ +( LPAR +) RPAR +[ LSQB +] RSQB +: COLON +, COMMA +; SEMI ++ PLUS +- MINUS +* STAR +/ SLASH +| VBAR +& AMPER +< LESS +> GREATER += EQUAL +. DOT +% PERCENT +` BACKQUOTE +{ LBRACE +} RBRACE +@ AT +@= ATEQUAL +== EQEQUAL +!= NOTEQUAL +<> NOTEQUAL +<= LESSEQUAL +>= GREATEREQUAL +~ TILDE +^ CIRCUMFLEX +<< LEFTSHIFT +>> RIGHTSHIFT +** DOUBLESTAR ++= PLUSEQUAL +-= MINEQUAL +*= STAREQUAL +/= SLASHEQUAL +%= PERCENTEQUAL +&= AMPEREQUAL +|= VBAREQUAL +^= CIRCUMFLEXEQUAL +<<= LEFTSHIFTEQUAL +>>= RIGHTSHIFTEQUAL +**= DOUBLESTAREQUAL +// DOUBLESLASH +//= DOUBLESLASHEQUAL +-> RARROW +:= COLONEQUAL +""" + +opmap = {} +for line in opmap_raw.splitlines(): + if line: + op, name = line.split() + opmap[op] = getattr(token, name) diff --git a/.vim/bundle/black/src/blib2to3/pgen2/literals.py b/.vim/bundle/black/src/blib2to3/pgen2/literals.py new file mode 100644 index 0000000..b5fe428 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/literals.py @@ -0,0 +1,68 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Safely evaluate Python string literals without using eval().""" + +import re + +from typing import Dict, Match, Text + + +simple_escapes: Dict[Text, Text] = { + "a": "\a", + "b": "\b", + "f": "\f", + "n": "\n", + "r": "\r", + "t": "\t", + "v": "\v", + "'": "'", + '"': '"', + "\\": "\\", +} + + +def escape(m: Match[Text]) -> Text: + all, tail = m.group(0, 1) + assert all.startswith("\\") + esc = simple_escapes.get(tail) + if esc is not None: + return esc + if tail.startswith("x"): + hexes = tail[1:] + if len(hexes) < 2: + raise ValueError("invalid hex string escape ('\\%s')" % tail) + try: + i = int(hexes, 16) + except ValueError: + raise ValueError("invalid hex string escape ('\\%s')" % tail) from None + else: + try: + i = int(tail, 8) + except ValueError: + raise ValueError("invalid octal string escape ('\\%s')" % tail) from None + return chr(i) + + +def evalString(s: Text) -> Text: + assert s.startswith("'") or s.startswith('"'), repr(s[:1]) + q = s[0] + if s[:3] == q * 3: + q = q * 3 + assert s.endswith(q), repr(s[-len(q) :]) + assert len(s) >= 2 * len(q) + s = s[len(q) : -len(q)] + return re.sub(r"\\(\'|\"|\\|[abfnrtv]|x.{0,2}|[0-7]{1,3})", escape, s) + + +def test() -> None: + for i in range(256): + c = chr(i) + s = repr(c) + e = evalString(s) + if e != c: + print(i, c, s, e) + + +if __name__ == "__main__": + test() diff --git a/.vim/bundle/black/src/blib2to3/pgen2/parse.py b/.vim/bundle/black/src/blib2to3/pgen2/parse.py new file mode 100644 index 0000000..47c8f02 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/parse.py @@ -0,0 +1,235 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Parser engine for the grammar tables generated by pgen. + +The grammar table must be loaded first. + +See Parser/parser.c in the Python distribution for additional info on +how this parsing engine works. + +""" + +# Local imports +from . import token +from typing import ( + Optional, + Text, + Union, + Tuple, + Dict, + List, + Callable, + Set, +) +from blib2to3.pgen2.grammar import Grammar +from blib2to3.pytree import NL, Context, RawNode, Leaf, Node + + +Results = Dict[Text, NL] +Convert = Callable[[Grammar, RawNode], Union[Node, Leaf]] +DFA = List[List[Tuple[int, int]]] +DFAS = Tuple[DFA, Dict[int, int]] + + +def lam_sub(grammar: Grammar, node: RawNode) -> NL: + assert node[3] is not None + return Node(type=node[0], children=node[3], context=node[2]) + + +class ParseError(Exception): + """Exception to signal the parser is stuck.""" + + def __init__( + self, msg: Text, type: Optional[int], value: Optional[Text], context: Context + ) -> None: + Exception.__init__( + self, "%s: type=%r, value=%r, context=%r" % (msg, type, value, context) + ) + self.msg = msg + self.type = type + self.value = value + self.context = context + + +class Parser(object): + """Parser engine. + + The proper usage sequence is: + + p = Parser(grammar, [converter]) # create instance + p.setup([start]) # prepare for parsing + : + if p.addtoken(...): # parse a token; may raise ParseError + break + root = p.rootnode # root of abstract syntax tree + + A Parser instance may be reused by calling setup() repeatedly. + + A Parser instance contains state pertaining to the current token + sequence, and should not be used concurrently by different threads + to parse separate token sequences. + + See driver.py for how to get input tokens by tokenizing a file or + string. + + Parsing is complete when addtoken() returns True; the root of the + abstract syntax tree can then be retrieved from the rootnode + instance variable. When a syntax error occurs, addtoken() raises + the ParseError exception. There is no error recovery; the parser + cannot be used after a syntax error was reported (but it can be + reinitialized by calling setup()). + + """ + + def __init__(self, grammar: Grammar, convert: Optional[Convert] = None) -> None: + """Constructor. + + The grammar argument is a grammar.Grammar instance; see the + grammar module for more information. + + The parser is not ready yet for parsing; you must call the + setup() method to get it started. + + The optional convert argument is a function mapping concrete + syntax tree nodes to abstract syntax tree nodes. If not + given, no conversion is done and the syntax tree produced is + the concrete syntax tree. If given, it must be a function of + two arguments, the first being the grammar (a grammar.Grammar + instance), and the second being the concrete syntax tree node + to be converted. The syntax tree is converted from the bottom + up. + + A concrete syntax tree node is a (type, value, context, nodes) + tuple, where type is the node type (a token or symbol number), + value is None for symbols and a string for tokens, context is + None or an opaque value used for error reporting (typically a + (lineno, offset) pair), and nodes is a list of children for + symbols, and None for tokens. + + An abstract syntax tree node may be anything; this is entirely + up to the converter function. + + """ + self.grammar = grammar + self.convert = convert or lam_sub + + def setup(self, start: Optional[int] = None) -> None: + """Prepare for parsing. + + This *must* be called before starting to parse. + + The optional argument is an alternative start symbol; it + defaults to the grammar's start symbol. + + You can use a Parser instance to parse any number of programs; + each time you call setup() the parser is reset to an initial + state determined by the (implicit or explicit) start symbol. + + """ + if start is None: + start = self.grammar.start + # Each stack entry is a tuple: (dfa, state, node). + # A node is a tuple: (type, value, context, children), + # where children is a list of nodes or None, and context may be None. + newnode: RawNode = (start, None, None, []) + stackentry = (self.grammar.dfas[start], 0, newnode) + self.stack: List[Tuple[DFAS, int, RawNode]] = [stackentry] + self.rootnode: Optional[NL] = None + self.used_names: Set[str] = set() + + def addtoken(self, type: int, value: Optional[Text], context: Context) -> bool: + """Add a token; return True iff this is the end of the program.""" + # Map from token to label + ilabel = self.classify(type, value, context) + # Loop until the token is shifted; may raise exceptions + while True: + dfa, state, node = self.stack[-1] + states, first = dfa + arcs = states[state] + # Look for a state with this label + for i, newstate in arcs: + t, v = self.grammar.labels[i] + if ilabel == i: + # Look it up in the list of labels + assert t < 256 + # Shift a token; we're done with it + self.shift(type, value, newstate, context) + # Pop while we are in an accept-only state + state = newstate + while states[state] == [(0, state)]: + self.pop() + if not self.stack: + # Done parsing! + return True + dfa, state, node = self.stack[-1] + states, first = dfa + # Done with this token + return False + elif t >= 256: + # See if it's a symbol and if we're in its first set + itsdfa = self.grammar.dfas[t] + itsstates, itsfirst = itsdfa + if ilabel in itsfirst: + # Push a symbol + self.push(t, self.grammar.dfas[t], newstate, context) + break # To continue the outer while loop + else: + if (0, state) in arcs: + # An accepting state, pop it and try something else + self.pop() + if not self.stack: + # Done parsing, but another token is input + raise ParseError("too much input", type, value, context) + else: + # No success finding a transition + raise ParseError("bad input", type, value, context) + + def classify(self, type: int, value: Optional[Text], context: Context) -> int: + """Turn a token into a label. (Internal)""" + if type == token.NAME: + # Keep a listing of all used names + assert value is not None + self.used_names.add(value) + # Check for reserved words + ilabel = self.grammar.keywords.get(value) + if ilabel is not None: + return ilabel + ilabel = self.grammar.tokens.get(type) + if ilabel is None: + raise ParseError("bad token", type, value, context) + return ilabel + + def shift( + self, type: int, value: Optional[Text], newstate: int, context: Context + ) -> None: + """Shift a token. (Internal)""" + dfa, state, node = self.stack[-1] + assert value is not None + assert context is not None + rawnode: RawNode = (type, value, context, None) + newnode = self.convert(self.grammar, rawnode) + if newnode is not None: + assert node[-1] is not None + node[-1].append(newnode) + self.stack[-1] = (dfa, newstate, node) + + def push(self, type: int, newdfa: DFAS, newstate: int, context: Context) -> None: + """Push a nonterminal. (Internal)""" + dfa, state, node = self.stack[-1] + newnode: RawNode = (type, None, context, []) + self.stack[-1] = (dfa, newstate, node) + self.stack.append((newdfa, 0, newnode)) + + def pop(self) -> None: + """Pop a nonterminal. (Internal)""" + popdfa, popstate, popnode = self.stack.pop() + newnode = self.convert(self.grammar, popnode) + if newnode is not None: + if self.stack: + dfa, state, node = self.stack[-1] + assert node[-1] is not None + node[-1].append(newnode) + else: + self.rootnode = newnode + self.rootnode.used_names = self.used_names diff --git a/.vim/bundle/black/src/blib2to3/pgen2/pgen.py b/.vim/bundle/black/src/blib2to3/pgen2/pgen.py new file mode 100644 index 0000000..564ebbd --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/pgen.py @@ -0,0 +1,428 @@ +# Copyright 2004-2005 Elemental Security, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +# Pgen imports +from . import grammar, token, tokenize + +from typing import ( + Any, + Dict, + IO, + Iterator, + List, + Optional, + Text, + Tuple, + Union, + Sequence, + NoReturn, +) +from blib2to3.pgen2 import grammar +from blib2to3.pgen2.tokenize import GoodTokenInfo +import os + + +Path = Union[str, "os.PathLike[str]"] + + +class PgenGrammar(grammar.Grammar): + pass + + +class ParserGenerator(object): + + filename: Path + stream: IO[Text] + generator: Iterator[GoodTokenInfo] + first: Dict[Text, Optional[Dict[Text, int]]] + + def __init__(self, filename: Path, stream: Optional[IO[Text]] = None) -> None: + close_stream = None + if stream is None: + stream = open(filename) + close_stream = stream.close + self.filename = filename + self.stream = stream + self.generator = tokenize.generate_tokens(stream.readline) + self.gettoken() # Initialize lookahead + self.dfas, self.startsymbol = self.parse() + if close_stream is not None: + close_stream() + self.first = {} # map from symbol name to set of tokens + self.addfirstsets() + + def make_grammar(self) -> PgenGrammar: + c = PgenGrammar() + names = list(self.dfas.keys()) + names.sort() + names.remove(self.startsymbol) + names.insert(0, self.startsymbol) + for name in names: + i = 256 + len(c.symbol2number) + c.symbol2number[name] = i + c.number2symbol[i] = name + for name in names: + dfa = self.dfas[name] + states = [] + for state in dfa: + arcs = [] + for label, next in sorted(state.arcs.items()): + arcs.append((self.make_label(c, label), dfa.index(next))) + if state.isfinal: + arcs.append((0, dfa.index(state))) + states.append(arcs) + c.states.append(states) + c.dfas[c.symbol2number[name]] = (states, self.make_first(c, name)) + c.start = c.symbol2number[self.startsymbol] + return c + + def make_first(self, c: PgenGrammar, name: Text) -> Dict[int, int]: + rawfirst = self.first[name] + assert rawfirst is not None + first = {} + for label in sorted(rawfirst): + ilabel = self.make_label(c, label) + ##assert ilabel not in first # XXX failed on <> ... != + first[ilabel] = 1 + return first + + def make_label(self, c: PgenGrammar, label: Text) -> int: + # XXX Maybe this should be a method on a subclass of converter? + ilabel = len(c.labels) + if label[0].isalpha(): + # Either a symbol name or a named token + if label in c.symbol2number: + # A symbol name (a non-terminal) + if label in c.symbol2label: + return c.symbol2label[label] + else: + c.labels.append((c.symbol2number[label], None)) + c.symbol2label[label] = ilabel + return ilabel + else: + # A named token (NAME, NUMBER, STRING) + itoken = getattr(token, label, None) + assert isinstance(itoken, int), label + assert itoken in token.tok_name, label + if itoken in c.tokens: + return c.tokens[itoken] + else: + c.labels.append((itoken, None)) + c.tokens[itoken] = ilabel + return ilabel + else: + # Either a keyword or an operator + assert label[0] in ('"', "'"), label + value = eval(label) + if value[0].isalpha(): + # A keyword + if value in c.keywords: + return c.keywords[value] + else: + c.labels.append((token.NAME, value)) + c.keywords[value] = ilabel + return ilabel + else: + # An operator (any non-numeric token) + itoken = grammar.opmap[value] # Fails if unknown token + if itoken in c.tokens: + return c.tokens[itoken] + else: + c.labels.append((itoken, None)) + c.tokens[itoken] = ilabel + return ilabel + + def addfirstsets(self) -> None: + names = list(self.dfas.keys()) + names.sort() + for name in names: + if name not in self.first: + self.calcfirst(name) + # print name, self.first[name].keys() + + def calcfirst(self, name: Text) -> None: + dfa = self.dfas[name] + self.first[name] = None # dummy to detect left recursion + state = dfa[0] + totalset: Dict[str, int] = {} + overlapcheck = {} + for label, next in state.arcs.items(): + if label in self.dfas: + if label in self.first: + fset = self.first[label] + if fset is None: + raise ValueError("recursion for rule %r" % name) + else: + self.calcfirst(label) + fset = self.first[label] + assert fset is not None + totalset.update(fset) + overlapcheck[label] = fset + else: + totalset[label] = 1 + overlapcheck[label] = {label: 1} + inverse: Dict[str, str] = {} + for label, itsfirst in overlapcheck.items(): + for symbol in itsfirst: + if symbol in inverse: + raise ValueError( + "rule %s is ambiguous; %s is in the first sets of %s as well" + " as %s" % (name, symbol, label, inverse[symbol]) + ) + inverse[symbol] = label + self.first[name] = totalset + + def parse(self) -> Tuple[Dict[Text, List["DFAState"]], Text]: + dfas = {} + startsymbol: Optional[str] = None + # MSTART: (NEWLINE | RULE)* ENDMARKER + while self.type != token.ENDMARKER: + while self.type == token.NEWLINE: + self.gettoken() + # RULE: NAME ':' RHS NEWLINE + name = self.expect(token.NAME) + self.expect(token.OP, ":") + a, z = self.parse_rhs() + self.expect(token.NEWLINE) + # self.dump_nfa(name, a, z) + dfa = self.make_dfa(a, z) + # self.dump_dfa(name, dfa) + oldlen = len(dfa) + self.simplify_dfa(dfa) + newlen = len(dfa) + dfas[name] = dfa + # print name, oldlen, newlen + if startsymbol is None: + startsymbol = name + assert startsymbol is not None + return dfas, startsymbol + + def make_dfa(self, start: "NFAState", finish: "NFAState") -> List["DFAState"]: + # To turn an NFA into a DFA, we define the states of the DFA + # to correspond to *sets* of states of the NFA. Then do some + # state reduction. Let's represent sets as dicts with 1 for + # values. + assert isinstance(start, NFAState) + assert isinstance(finish, NFAState) + + def closure(state: NFAState) -> Dict[NFAState, int]: + base: Dict[NFAState, int] = {} + addclosure(state, base) + return base + + def addclosure(state: NFAState, base: Dict[NFAState, int]) -> None: + assert isinstance(state, NFAState) + if state in base: + return + base[state] = 1 + for label, next in state.arcs: + if label is None: + addclosure(next, base) + + states = [DFAState(closure(start), finish)] + for state in states: # NB states grows while we're iterating + arcs: Dict[str, Dict[NFAState, int]] = {} + for nfastate in state.nfaset: + for label, next in nfastate.arcs: + if label is not None: + addclosure(next, arcs.setdefault(label, {})) + for label, nfaset in sorted(arcs.items()): + for st in states: + if st.nfaset == nfaset: + break + else: + st = DFAState(nfaset, finish) + states.append(st) + state.addarc(st, label) + return states # List of DFAState instances; first one is start + + def dump_nfa(self, name: Text, start: "NFAState", finish: "NFAState") -> None: + print("Dump of NFA for", name) + todo = [start] + for i, state in enumerate(todo): + print(" State", i, state is finish and "(final)" or "") + for label, next in state.arcs: + if next in todo: + j = todo.index(next) + else: + j = len(todo) + todo.append(next) + if label is None: + print(" -> %d" % j) + else: + print(" %s -> %d" % (label, j)) + + def dump_dfa(self, name: Text, dfa: Sequence["DFAState"]) -> None: + print("Dump of DFA for", name) + for i, state in enumerate(dfa): + print(" State", i, state.isfinal and "(final)" or "") + for label, next in sorted(state.arcs.items()): + print(" %s -> %d" % (label, dfa.index(next))) + + def simplify_dfa(self, dfa: List["DFAState"]) -> None: + # This is not theoretically optimal, but works well enough. + # Algorithm: repeatedly look for two states that have the same + # set of arcs (same labels pointing to the same nodes) and + # unify them, until things stop changing. + + # dfa is a list of DFAState instances + changes = True + while changes: + changes = False + for i, state_i in enumerate(dfa): + for j in range(i + 1, len(dfa)): + state_j = dfa[j] + if state_i == state_j: + # print " unify", i, j + del dfa[j] + for state in dfa: + state.unifystate(state_j, state_i) + changes = True + break + + def parse_rhs(self) -> Tuple["NFAState", "NFAState"]: + # RHS: ALT ('|' ALT)* + a, z = self.parse_alt() + if self.value != "|": + return a, z + else: + aa = NFAState() + zz = NFAState() + aa.addarc(a) + z.addarc(zz) + while self.value == "|": + self.gettoken() + a, z = self.parse_alt() + aa.addarc(a) + z.addarc(zz) + return aa, zz + + def parse_alt(self) -> Tuple["NFAState", "NFAState"]: + # ALT: ITEM+ + a, b = self.parse_item() + while self.value in ("(", "[") or self.type in (token.NAME, token.STRING): + c, d = self.parse_item() + b.addarc(c) + b = d + return a, b + + def parse_item(self) -> Tuple["NFAState", "NFAState"]: + # ITEM: '[' RHS ']' | ATOM ['+' | '*'] + if self.value == "[": + self.gettoken() + a, z = self.parse_rhs() + self.expect(token.OP, "]") + a.addarc(z) + return a, z + else: + a, z = self.parse_atom() + value = self.value + if value not in ("+", "*"): + return a, z + self.gettoken() + z.addarc(a) + if value == "+": + return a, z + else: + return a, a + + def parse_atom(self) -> Tuple["NFAState", "NFAState"]: + # ATOM: '(' RHS ')' | NAME | STRING + if self.value == "(": + self.gettoken() + a, z = self.parse_rhs() + self.expect(token.OP, ")") + return a, z + elif self.type in (token.NAME, token.STRING): + a = NFAState() + z = NFAState() + a.addarc(z, self.value) + self.gettoken() + return a, z + else: + self.raise_error( + "expected (...) or NAME or STRING, got %s/%s", self.type, self.value + ) + assert False + + def expect(self, type: int, value: Optional[Any] = None) -> Text: + if self.type != type or (value is not None and self.value != value): + self.raise_error( + "expected %s/%s, got %s/%s", type, value, self.type, self.value + ) + value = self.value + self.gettoken() + return value + + def gettoken(self) -> None: + tup = next(self.generator) + while tup[0] in (tokenize.COMMENT, tokenize.NL): + tup = next(self.generator) + self.type, self.value, self.begin, self.end, self.line = tup + # print token.tok_name[self.type], repr(self.value) + + def raise_error(self, msg: str, *args: Any) -> NoReturn: + if args: + try: + msg = msg % args + except: + msg = " ".join([msg] + list(map(str, args))) + raise SyntaxError(msg, (self.filename, self.end[0], self.end[1], self.line)) + + +class NFAState(object): + arcs: List[Tuple[Optional[Text], "NFAState"]] + + def __init__(self) -> None: + self.arcs = [] # list of (label, NFAState) pairs + + def addarc(self, next: "NFAState", label: Optional[Text] = None) -> None: + assert label is None or isinstance(label, str) + assert isinstance(next, NFAState) + self.arcs.append((label, next)) + + +class DFAState(object): + nfaset: Dict[NFAState, Any] + isfinal: bool + arcs: Dict[Text, "DFAState"] + + def __init__(self, nfaset: Dict[NFAState, Any], final: NFAState) -> None: + assert isinstance(nfaset, dict) + assert isinstance(next(iter(nfaset)), NFAState) + assert isinstance(final, NFAState) + self.nfaset = nfaset + self.isfinal = final in nfaset + self.arcs = {} # map from label to DFAState + + def addarc(self, next: "DFAState", label: Text) -> None: + assert isinstance(label, str) + assert label not in self.arcs + assert isinstance(next, DFAState) + self.arcs[label] = next + + def unifystate(self, old: "DFAState", new: "DFAState") -> None: + for label, next in self.arcs.items(): + if next is old: + self.arcs[label] = new + + def __eq__(self, other: Any) -> bool: + # Equality test -- ignore the nfaset instance variable + assert isinstance(other, DFAState) + if self.isfinal != other.isfinal: + return False + # Can't just return self.arcs == other.arcs, because that + # would invoke this method recursively, with cycles... + if len(self.arcs) != len(other.arcs): + return False + for label, next in self.arcs.items(): + if next is not other.arcs.get(label): + return False + return True + + __hash__: Any = None # For Py3 compatibility. + + +def generate_grammar(filename: Path = "Grammar.txt") -> PgenGrammar: + p = ParserGenerator(filename) + return p.make_grammar() diff --git a/.vim/bundle/black/src/blib2to3/pgen2/token.py b/.vim/bundle/black/src/blib2to3/pgen2/token.py new file mode 100644 index 0000000..1e0dec9 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/token.py @@ -0,0 +1,94 @@ +"""Token constants (from "token.h").""" + +import sys +from typing import Dict + +if sys.version_info < (3, 8): + from typing_extensions import Final +else: + from typing import Final + +# Taken from Python (r53757) and modified to include some tokens +# originally monkeypatched in by pgen2.tokenize + +# --start constants-- +ENDMARKER: Final = 0 +NAME: Final = 1 +NUMBER: Final = 2 +STRING: Final = 3 +NEWLINE: Final = 4 +INDENT: Final = 5 +DEDENT: Final = 6 +LPAR: Final = 7 +RPAR: Final = 8 +LSQB: Final = 9 +RSQB: Final = 10 +COLON: Final = 11 +COMMA: Final = 12 +SEMI: Final = 13 +PLUS: Final = 14 +MINUS: Final = 15 +STAR: Final = 16 +SLASH: Final = 17 +VBAR: Final = 18 +AMPER: Final = 19 +LESS: Final = 20 +GREATER: Final = 21 +EQUAL: Final = 22 +DOT: Final = 23 +PERCENT: Final = 24 +BACKQUOTE: Final = 25 +LBRACE: Final = 26 +RBRACE: Final = 27 +EQEQUAL: Final = 28 +NOTEQUAL: Final = 29 +LESSEQUAL: Final = 30 +GREATEREQUAL: Final = 31 +TILDE: Final = 32 +CIRCUMFLEX: Final = 33 +LEFTSHIFT: Final = 34 +RIGHTSHIFT: Final = 35 +DOUBLESTAR: Final = 36 +PLUSEQUAL: Final = 37 +MINEQUAL: Final = 38 +STAREQUAL: Final = 39 +SLASHEQUAL: Final = 40 +PERCENTEQUAL: Final = 41 +AMPEREQUAL: Final = 42 +VBAREQUAL: Final = 43 +CIRCUMFLEXEQUAL: Final = 44 +LEFTSHIFTEQUAL: Final = 45 +RIGHTSHIFTEQUAL: Final = 46 +DOUBLESTAREQUAL: Final = 47 +DOUBLESLASH: Final = 48 +DOUBLESLASHEQUAL: Final = 49 +AT: Final = 50 +ATEQUAL: Final = 51 +OP: Final = 52 +COMMENT: Final = 53 +NL: Final = 54 +RARROW: Final = 55 +AWAIT: Final = 56 +ASYNC: Final = 57 +ERRORTOKEN: Final = 58 +COLONEQUAL: Final = 59 +N_TOKENS: Final = 60 +NT_OFFSET: Final = 256 +# --end constants-- + +tok_name: Final[Dict[int, str]] = {} +for _name, _value in list(globals().items()): + if type(_value) is type(0): + tok_name[_value] = _name + + +def ISTERMINAL(x: int) -> bool: + return x < NT_OFFSET + + +def ISNONTERMINAL(x: int) -> bool: + return x >= NT_OFFSET + + +def ISEOF(x: int) -> bool: + return x == ENDMARKER diff --git a/.vim/bundle/black/src/blib2to3/pgen2/tokenize.py b/.vim/bundle/black/src/blib2to3/pgen2/tokenize.py new file mode 100644 index 0000000..bad79b2 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pgen2/tokenize.py @@ -0,0 +1,681 @@ +# Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation. +# All rights reserved. + +# mypy: allow-untyped-defs, allow-untyped-calls + +"""Tokenization help for Python programs. + +generate_tokens(readline) is a generator that breaks a stream of +text into Python tokens. It accepts a readline-like method which is called +repeatedly to get the next line of input (or "" for EOF). It generates +5-tuples with these members: + + the token type (see token.py) + the token (a string) + the starting (row, column) indices of the token (a 2-tuple of ints) + the ending (row, column) indices of the token (a 2-tuple of ints) + the original line (string) + +It is designed to match the working of the Python tokenizer exactly, except +that it produces COMMENT tokens for comments and gives type OP for all +operators + +Older entry points + tokenize_loop(readline, tokeneater) + tokenize(readline, tokeneater=printtoken) +are the same, except instead of generating tokens, tokeneater is a callback +function to which the 5 fields described above are passed as 5 arguments, +each time a new token is found.""" + +from typing import ( + Callable, + Iterable, + Iterator, + List, + Optional, + Text, + Tuple, + Pattern, + Union, + cast, +) +from blib2to3.pgen2.token import * +from blib2to3.pgen2.grammar import Grammar + +__author__ = "Ka-Ping Yee " +__credits__ = "GvR, ESR, Tim Peters, Thomas Wouters, Fred Drake, Skip Montanaro" + +import regex as re +from codecs import BOM_UTF8, lookup +from blib2to3.pgen2.token import * + +from . import token + +__all__ = [x for x in dir(token) if x[0] != "_"] + [ + "tokenize", + "generate_tokens", + "untokenize", +] +del token + + +def group(*choices): + return "(" + "|".join(choices) + ")" + + +def any(*choices): + return group(*choices) + "*" + + +def maybe(*choices): + return group(*choices) + "?" + + +def _combinations(*l): + return set(x + y for x in l for y in l + ("",) if x.casefold() != y.casefold()) + + +Whitespace = r"[ \f\t]*" +Comment = r"#[^\r\n]*" +Ignore = Whitespace + any(r"\\\r?\n" + Whitespace) + maybe(Comment) +Name = ( # this is invalid but it's fine because Name comes after Number in all groups + r"\w+" +) + +Binnumber = r"0[bB]_?[01]+(?:_[01]+)*" +Hexnumber = r"0[xX]_?[\da-fA-F]+(?:_[\da-fA-F]+)*[lL]?" +Octnumber = r"0[oO]?_?[0-7]+(?:_[0-7]+)*[lL]?" +Decnumber = group(r"[1-9]\d*(?:_\d+)*[lL]?", "0[lL]?") +Intnumber = group(Binnumber, Hexnumber, Octnumber, Decnumber) +Exponent = r"[eE][-+]?\d+(?:_\d+)*" +Pointfloat = group(r"\d+(?:_\d+)*\.(?:\d+(?:_\d+)*)?", r"\.\d+(?:_\d+)*") + maybe( + Exponent +) +Expfloat = r"\d+(?:_\d+)*" + Exponent +Floatnumber = group(Pointfloat, Expfloat) +Imagnumber = group(r"\d+(?:_\d+)*[jJ]", Floatnumber + r"[jJ]") +Number = group(Imagnumber, Floatnumber, Intnumber) + +# Tail end of ' string. +Single = r"[^'\\]*(?:\\.[^'\\]*)*'" +# Tail end of " string. +Double = r'[^"\\]*(?:\\.[^"\\]*)*"' +# Tail end of ''' string. +Single3 = r"[^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''" +# Tail end of """ string. +Double3 = r'[^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""' +_litprefix = r"(?:[uUrRbBfF]|[rR][fFbB]|[fFbBuU][rR])?" +Triple = group(_litprefix + "'''", _litprefix + '"""') +# Single-line ' or " string. +String = group( + _litprefix + r"'[^\n'\\]*(?:\\.[^\n'\\]*)*'", + _litprefix + r'"[^\n"\\]*(?:\\.[^\n"\\]*)*"', +) + +# Because of leftmost-then-longest match semantics, be sure to put the +# longest operators first (e.g., if = came before ==, == would get +# recognized as two instances of =). +Operator = group( + r"\*\*=?", + r">>=?", + r"<<=?", + r"<>", + r"!=", + r"//=?", + r"->", + r"[+\-*/%&@|^=<>:]=?", + r"~", +) + +Bracket = "[][(){}]" +Special = group(r"\r?\n", r"[:;.,`@]") +Funny = group(Operator, Bracket, Special) + +# First (or only) line of ' or " string. +ContStr = group( + _litprefix + r"'[^\n'\\]*(?:\\.[^\n'\\]*)*" + group("'", r"\\\r?\n"), + _litprefix + r'"[^\n"\\]*(?:\\.[^\n"\\]*)*' + group('"', r"\\\r?\n"), +) +PseudoExtras = group(r"\\\r?\n", Comment, Triple) +PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name) + +pseudoprog = re.compile(PseudoToken, re.UNICODE) +single3prog = re.compile(Single3) +double3prog = re.compile(Double3) + +_strprefixes = ( + _combinations("r", "R", "f", "F") + | _combinations("r", "R", "b", "B") + | {"u", "U", "ur", "uR", "Ur", "UR"} +) + +endprogs = { + "'": re.compile(Single), + '"': re.compile(Double), + "'''": single3prog, + '"""': double3prog, + **{f"{prefix}'''": single3prog for prefix in _strprefixes}, + **{f'{prefix}"""': double3prog for prefix in _strprefixes}, + **{prefix: None for prefix in _strprefixes}, +} + +triple_quoted = ( + {"'''", '"""'} + | {f"{prefix}'''" for prefix in _strprefixes} + | {f'{prefix}"""' for prefix in _strprefixes} +) +single_quoted = ( + {"'", '"'} + | {f"{prefix}'" for prefix in _strprefixes} + | {f'{prefix}"' for prefix in _strprefixes} +) + +tabsize = 8 + + +class TokenError(Exception): + pass + + +class StopTokenizing(Exception): + pass + + +def printtoken(type, token, xxx_todo_changeme, xxx_todo_changeme1, line): # for testing + (srow, scol) = xxx_todo_changeme + (erow, ecol) = xxx_todo_changeme1 + print( + "%d,%d-%d,%d:\t%s\t%s" % (srow, scol, erow, ecol, tok_name[type], repr(token)) + ) + + +Coord = Tuple[int, int] +TokenEater = Callable[[int, Text, Coord, Coord, Text], None] + + +def tokenize(readline: Callable[[], Text], tokeneater: TokenEater = printtoken) -> None: + """ + The tokenize() function accepts two parameters: one representing the + input stream, and one providing an output mechanism for tokenize(). + + The first parameter, readline, must be a callable object which provides + the same interface as the readline() method of built-in file objects. + Each call to the function should return one line of input as a string. + + The second parameter, tokeneater, must also be a callable object. It is + called once for each token, with five arguments, corresponding to the + tuples generated by generate_tokens(). + """ + try: + tokenize_loop(readline, tokeneater) + except StopTokenizing: + pass + + +# backwards compatible interface +def tokenize_loop(readline, tokeneater): + for token_info in generate_tokens(readline): + tokeneater(*token_info) + + +GoodTokenInfo = Tuple[int, Text, Coord, Coord, Text] +TokenInfo = Union[Tuple[int, str], GoodTokenInfo] + + +class Untokenizer: + + tokens: List[Text] + prev_row: int + prev_col: int + + def __init__(self) -> None: + self.tokens = [] + self.prev_row = 1 + self.prev_col = 0 + + def add_whitespace(self, start: Coord) -> None: + row, col = start + assert row <= self.prev_row + col_offset = col - self.prev_col + if col_offset: + self.tokens.append(" " * col_offset) + + def untokenize(self, iterable: Iterable[TokenInfo]) -> Text: + for t in iterable: + if len(t) == 2: + self.compat(cast(Tuple[int, str], t), iterable) + break + tok_type, token, start, end, line = cast( + Tuple[int, Text, Coord, Coord, Text], t + ) + self.add_whitespace(start) + self.tokens.append(token) + self.prev_row, self.prev_col = end + if tok_type in (NEWLINE, NL): + self.prev_row += 1 + self.prev_col = 0 + return "".join(self.tokens) + + def compat(self, token: Tuple[int, Text], iterable: Iterable[TokenInfo]) -> None: + startline = False + indents = [] + toks_append = self.tokens.append + toknum, tokval = token + if toknum in (NAME, NUMBER): + tokval += " " + if toknum in (NEWLINE, NL): + startline = True + for tok in iterable: + toknum, tokval = tok[:2] + + if toknum in (NAME, NUMBER, ASYNC, AWAIT): + tokval += " " + + if toknum == INDENT: + indents.append(tokval) + continue + elif toknum == DEDENT: + indents.pop() + continue + elif toknum in (NEWLINE, NL): + startline = True + elif startline and indents: + toks_append(indents[-1]) + startline = False + toks_append(tokval) + + +cookie_re = re.compile(r"^[ \t\f]*#.*?coding[:=][ \t]*([-\w.]+)", re.ASCII) +blank_re = re.compile(br"^[ \t\f]*(?:[#\r\n]|$)", re.ASCII) + + +def _get_normal_name(orig_enc: str) -> str: + """Imitates get_normal_name in tokenizer.c.""" + # Only care about the first 12 characters. + enc = orig_enc[:12].lower().replace("_", "-") + if enc == "utf-8" or enc.startswith("utf-8-"): + return "utf-8" + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or enc.startswith( + ("latin-1-", "iso-8859-1-", "iso-latin-1-") + ): + return "iso-8859-1" + return orig_enc + + +def detect_encoding(readline: Callable[[], bytes]) -> Tuple[str, List[bytes]]: + """ + The detect_encoding() function is used to detect the encoding that should + be used to decode a Python source file. It requires one argument, readline, + in the same way as the tokenize() generator. + + It will call readline a maximum of twice, and return the encoding used + (as a string) and a list of any lines (left as bytes) it has read + in. + + It detects the encoding from the presence of a utf-8 bom or an encoding + cookie as specified in pep-0263. If both a bom and a cookie are present, but + disagree, a SyntaxError will be raised. If the encoding cookie is an invalid + charset, raise a SyntaxError. Note that if a utf-8 bom is found, + 'utf-8-sig' is returned. + + If no encoding is specified, then the default of 'utf-8' will be returned. + """ + bom_found = False + encoding = None + default = "utf-8" + + def read_or_stop() -> bytes: + try: + return readline() + except StopIteration: + return bytes() + + def find_cookie(line: bytes) -> Optional[str]: + try: + line_string = line.decode("ascii") + except UnicodeDecodeError: + return None + match = cookie_re.match(line_string) + if not match: + return None + encoding = _get_normal_name(match.group(1)) + try: + codec = lookup(encoding) + except LookupError: + # This behaviour mimics the Python interpreter + raise SyntaxError("unknown encoding: " + encoding) + + if bom_found: + if codec.name != "utf-8": + # This behaviour mimics the Python interpreter + raise SyntaxError("encoding problem: utf-8") + encoding += "-sig" + return encoding + + first = read_or_stop() + if first.startswith(BOM_UTF8): + bom_found = True + first = first[3:] + default = "utf-8-sig" + if not first: + return default, [] + + encoding = find_cookie(first) + if encoding: + return encoding, [first] + if not blank_re.match(first): + return default, [first] + + second = read_or_stop() + if not second: + return default, [first] + + encoding = find_cookie(second) + if encoding: + return encoding, [first, second] + + return default, [first, second] + + +def untokenize(iterable: Iterable[TokenInfo]) -> Text: + """Transform tokens back into Python source code. + + Each element returned by the iterable must be a token sequence + with at least two elements, a token number and token value. If + only two tokens are passed, the resulting output is poor. + + Round-trip invariant for full input: + Untokenized source will match input source exactly + + Round-trip invariant for limited input: + # Output text will tokenize the back to the input + t1 = [tok[:2] for tok in generate_tokens(f.readline)] + newcode = untokenize(t1) + readline = iter(newcode.splitlines(1)).next + t2 = [tok[:2] for tokin generate_tokens(readline)] + assert t1 == t2 + """ + ut = Untokenizer() + return ut.untokenize(iterable) + + +def generate_tokens( + readline: Callable[[], Text], grammar: Optional[Grammar] = None +) -> Iterator[GoodTokenInfo]: + """ + The generate_tokens() generator requires one argument, readline, which + must be a callable object which provides the same interface as the + readline() method of built-in file objects. Each call to the function + should return one line of input as a string. Alternately, readline + can be a callable function terminating with StopIteration: + readline = open(myfile).next # Example of alternate readline + + The generator produces 5-tuples with these members: the token type; the + token string; a 2-tuple (srow, scol) of ints specifying the row and + column where the token begins in the source; a 2-tuple (erow, ecol) of + ints specifying the row and column where the token ends in the source; + and the line on which the token was found. The line passed is the + logical line; continuation lines are included. + """ + lnum = parenlev = continued = 0 + numchars = "0123456789" + contstr, needcont = "", 0 + contline: Optional[str] = None + indents = [0] + + # If we know we're parsing 3.7+, we can unconditionally parse `async` and + # `await` as keywords. + async_keywords = False if grammar is None else grammar.async_keywords + # 'stashed' and 'async_*' are used for async/await parsing + stashed = None + async_def = False + async_def_indent = 0 + async_def_nl = False + + strstart: Tuple[int, int] + endprog: Pattern[str] + + while 1: # loop over lines in stream + try: + line = readline() + except StopIteration: + line = "" + lnum = lnum + 1 + pos, max = 0, len(line) + + if contstr: # continued string + assert contline is not None + if not line: + raise TokenError("EOF in multi-line string", strstart) + endmatch = endprog.match(line) + if endmatch: + pos = end = endmatch.end(0) + yield ( + STRING, + contstr + line[:end], + strstart, + (lnum, end), + contline + line, + ) + contstr, needcont = "", 0 + contline = None + elif needcont and line[-2:] != "\\\n" and line[-3:] != "\\\r\n": + yield ( + ERRORTOKEN, + contstr + line, + strstart, + (lnum, len(line)), + contline, + ) + contstr = "" + contline = None + continue + else: + contstr = contstr + line + contline = contline + line + continue + + elif parenlev == 0 and not continued: # new statement + if not line: + break + column = 0 + while pos < max: # measure leading whitespace + if line[pos] == " ": + column = column + 1 + elif line[pos] == "\t": + column = (column // tabsize + 1) * tabsize + elif line[pos] == "\f": + column = 0 + else: + break + pos = pos + 1 + if pos == max: + break + + if stashed: + yield stashed + stashed = None + + if line[pos] in "\r\n": # skip blank lines + yield (NL, line[pos:], (lnum, pos), (lnum, len(line)), line) + continue + + if line[pos] == "#": # skip comments + comment_token = line[pos:].rstrip("\r\n") + nl_pos = pos + len(comment_token) + yield ( + COMMENT, + comment_token, + (lnum, pos), + (lnum, pos + len(comment_token)), + line, + ) + yield (NL, line[nl_pos:], (lnum, nl_pos), (lnum, len(line)), line) + continue + + if column > indents[-1]: # count indents + indents.append(column) + yield (INDENT, line[:pos], (lnum, 0), (lnum, pos), line) + + while column < indents[-1]: # count dedents + if column not in indents: + raise IndentationError( + "unindent does not match any outer indentation level", + ("", lnum, pos, line), + ) + indents = indents[:-1] + + if async_def and async_def_indent >= indents[-1]: + async_def = False + async_def_nl = False + async_def_indent = 0 + + yield (DEDENT, "", (lnum, pos), (lnum, pos), line) + + if async_def and async_def_nl and async_def_indent >= indents[-1]: + async_def = False + async_def_nl = False + async_def_indent = 0 + + else: # continued statement + if not line: + raise TokenError("EOF in multi-line statement", (lnum, 0)) + continued = 0 + + while pos < max: + pseudomatch = pseudoprog.match(line, pos) + if pseudomatch: # scan for tokens + start, end = pseudomatch.span(1) + spos, epos, pos = (lnum, start), (lnum, end), end + token, initial = line[start:end], line[start] + + if initial in numchars or ( + initial == "." and token != "." + ): # ordinary number + yield (NUMBER, token, spos, epos, line) + elif initial in "\r\n": + newline = NEWLINE + if parenlev > 0: + newline = NL + elif async_def: + async_def_nl = True + if stashed: + yield stashed + stashed = None + yield (newline, token, spos, epos, line) + + elif initial == "#": + assert not token.endswith("\n") + if stashed: + yield stashed + stashed = None + yield (COMMENT, token, spos, epos, line) + elif token in triple_quoted: + endprog = endprogs[token] + endmatch = endprog.match(line, pos) + if endmatch: # all on one line + pos = endmatch.end(0) + token = line[start:pos] + if stashed: + yield stashed + stashed = None + yield (STRING, token, spos, (lnum, pos), line) + else: + strstart = (lnum, start) # multiple lines + contstr = line[start:] + contline = line + break + elif ( + initial in single_quoted + or token[:2] in single_quoted + or token[:3] in single_quoted + ): + if token[-1] == "\n": # continued string + strstart = (lnum, start) + endprog = ( + endprogs[initial] + or endprogs[token[1]] + or endprogs[token[2]] + ) + contstr, needcont = line[start:], 1 + contline = line + break + else: # ordinary string + if stashed: + yield stashed + stashed = None + yield (STRING, token, spos, epos, line) + elif initial.isidentifier(): # ordinary name + if token in ("async", "await"): + if async_keywords or async_def: + yield ( + ASYNC if token == "async" else AWAIT, + token, + spos, + epos, + line, + ) + continue + + tok = (NAME, token, spos, epos, line) + if token == "async" and not stashed: + stashed = tok + continue + + if token in ("def", "for"): + if stashed and stashed[0] == NAME and stashed[1] == "async": + + if token == "def": + async_def = True + async_def_indent = indents[-1] + + yield ( + ASYNC, + stashed[1], + stashed[2], + stashed[3], + stashed[4], + ) + stashed = None + + if stashed: + yield stashed + stashed = None + + yield tok + elif initial == "\\": # continued stmt + # This yield is new; needed for better idempotency: + if stashed: + yield stashed + stashed = None + yield (NL, token, spos, (lnum, pos), line) + continued = 1 + else: + if initial in "([{": + parenlev = parenlev + 1 + elif initial in ")]}": + parenlev = parenlev - 1 + if stashed: + yield stashed + stashed = None + yield (OP, token, spos, epos, line) + else: + yield (ERRORTOKEN, line[pos], (lnum, pos), (lnum, pos + 1), line) + pos = pos + 1 + + if stashed: + yield stashed + stashed = None + + for indent in indents[1:]: # pop remaining indent levels + yield (DEDENT, "", (lnum, 0), (lnum, 0), "") + yield (ENDMARKER, "", (lnum, 0), (lnum, 0), "") + + +if __name__ == "__main__": # testing + import sys + + if len(sys.argv) > 1: + tokenize(open(sys.argv[1]).readline) + else: + tokenize(sys.stdin.readline) diff --git a/.vim/bundle/black/src/blib2to3/pygram.py b/.vim/bundle/black/src/blib2to3/pygram.py new file mode 100644 index 0000000..b8362b8 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pygram.py @@ -0,0 +1,197 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +"""Export the Python grammar and symbols.""" + +# Python imports +import os + +from typing import Union + +# Local imports +from .pgen2 import token +from .pgen2 import driver + +from .pgen2.grammar import Grammar + +# Moved into initialize because mypyc can't handle __file__ (XXX bug) +# # The grammar file +# _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt") +# _PATTERN_GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), +# "PatternGrammar.txt") + + +class Symbols(object): + def __init__(self, grammar: Grammar) -> None: + """Initializer. + + Creates an attribute for each grammar symbol (nonterminal), + whose value is the symbol's type (an int >= 256). + """ + for name, symbol in grammar.symbol2number.items(): + setattr(self, name, symbol) + + +class _python_symbols(Symbols): + and_expr: int + and_test: int + annassign: int + arglist: int + argument: int + arith_expr: int + assert_stmt: int + async_funcdef: int + async_stmt: int + atom: int + augassign: int + break_stmt: int + classdef: int + comp_for: int + comp_if: int + comp_iter: int + comp_op: int + comparison: int + compound_stmt: int + continue_stmt: int + decorated: int + decorator: int + decorators: int + del_stmt: int + dictsetmaker: int + dotted_as_name: int + dotted_as_names: int + dotted_name: int + encoding_decl: int + eval_input: int + except_clause: int + exec_stmt: int + expr: int + expr_stmt: int + exprlist: int + factor: int + file_input: int + flow_stmt: int + for_stmt: int + funcdef: int + global_stmt: int + if_stmt: int + import_as_name: int + import_as_names: int + import_from: int + import_name: int + import_stmt: int + lambdef: int + listmaker: int + namedexpr_test: int + not_test: int + old_comp_for: int + old_comp_if: int + old_comp_iter: int + old_lambdef: int + old_test: int + or_test: int + parameters: int + pass_stmt: int + power: int + print_stmt: int + raise_stmt: int + return_stmt: int + shift_expr: int + simple_stmt: int + single_input: int + sliceop: int + small_stmt: int + star_expr: int + stmt: int + subscript: int + subscriptlist: int + suite: int + term: int + test: int + testlist: int + testlist1: int + testlist_gexp: int + testlist_safe: int + testlist_star_expr: int + tfpdef: int + tfplist: int + tname: int + trailer: int + try_stmt: int + typedargslist: int + varargslist: int + vfpdef: int + vfplist: int + vname: int + while_stmt: int + with_item: int + with_stmt: int + with_var: int + xor_expr: int + yield_arg: int + yield_expr: int + yield_stmt: int + + +class _pattern_symbols(Symbols): + Alternative: int + Alternatives: int + Details: int + Matcher: int + NegatedUnit: int + Repeater: int + Unit: int + + +python_grammar: Grammar +python_grammar_no_print_statement: Grammar +python_grammar_no_print_statement_no_exec_statement: Grammar +python_grammar_no_print_statement_no_exec_statement_async_keywords: Grammar +python_grammar_no_exec_statement: Grammar +pattern_grammar: Grammar + +python_symbols: _python_symbols +pattern_symbols: _pattern_symbols + + +def initialize(cache_dir: Union[str, "os.PathLike[str]", None] = None) -> None: + global python_grammar + global python_grammar_no_print_statement + global python_grammar_no_print_statement_no_exec_statement + global python_grammar_no_print_statement_no_exec_statement_async_keywords + global python_symbols + global pattern_grammar + global pattern_symbols + + # The grammar file + _GRAMMAR_FILE = os.path.join(os.path.dirname(__file__), "Grammar.txt") + _PATTERN_GRAMMAR_FILE = os.path.join( + os.path.dirname(__file__), "PatternGrammar.txt" + ) + + # Python 2 + python_grammar = driver.load_packaged_grammar("blib2to3", _GRAMMAR_FILE, cache_dir) + + python_symbols = _python_symbols(python_grammar) + + # Python 2 + from __future__ import print_function + python_grammar_no_print_statement = python_grammar.copy() + del python_grammar_no_print_statement.keywords["print"] + + # Python 3.0-3.6 + python_grammar_no_print_statement_no_exec_statement = python_grammar.copy() + del python_grammar_no_print_statement_no_exec_statement.keywords["print"] + del python_grammar_no_print_statement_no_exec_statement.keywords["exec"] + + # Python 3.7+ + python_grammar_no_print_statement_no_exec_statement_async_keywords = ( + python_grammar_no_print_statement_no_exec_statement.copy() + ) + python_grammar_no_print_statement_no_exec_statement_async_keywords.async_keywords = ( + True + ) + + pattern_grammar = driver.load_packaged_grammar( + "blib2to3", _PATTERN_GRAMMAR_FILE, cache_dir + ) + pattern_symbols = _pattern_symbols(pattern_grammar) diff --git a/.vim/bundle/black/src/blib2to3/pytree.py b/.vim/bundle/black/src/blib2to3/pytree.py new file mode 100644 index 0000000..7843467 --- /dev/null +++ b/.vim/bundle/black/src/blib2to3/pytree.py @@ -0,0 +1,980 @@ +# Copyright 2006 Google, Inc. All Rights Reserved. +# Licensed to PSF under a Contributor Agreement. + +""" +Python parse tree definitions. + +This is a very concrete parse tree; we need to keep every token and +even the comments and whitespace between tokens. + +There's also a pattern matching implementation here. +""" + +# mypy: allow-untyped-defs + +from typing import ( + Any, + Callable, + Dict, + Iterator, + List, + Optional, + Text, + Tuple, + TypeVar, + Union, + Set, + Iterable, +) +from blib2to3.pgen2.grammar import Grammar + +__author__ = "Guido van Rossum " + +import sys +from io import StringIO + +HUGE: int = 0x7FFFFFFF # maximum repeat count, default max + +_type_reprs: Dict[int, Union[Text, int]] = {} + + +def type_repr(type_num: int) -> Union[Text, int]: + global _type_reprs + if not _type_reprs: + from .pygram import python_symbols + + # printing tokens is possible but not as useful + # from .pgen2 import token // token.__dict__.items(): + for name in dir(python_symbols): + val = getattr(python_symbols, name) + if type(val) == int: + _type_reprs[val] = name + return _type_reprs.setdefault(type_num, type_num) + + +_P = TypeVar("_P") + +NL = Union["Node", "Leaf"] +Context = Tuple[Text, Tuple[int, int]] +RawNode = Tuple[int, Optional[Text], Optional[Context], Optional[List[NL]]] + + +class Base(object): + + """ + Abstract base class for Node and Leaf. + + This provides some default functionality and boilerplate using the + template pattern. + + A node may be a subnode of at most one parent. + """ + + # Default values for instance variables + type: int # int: token number (< 256) or symbol number (>= 256) + parent: Optional["Node"] = None # Parent node pointer, or None + children: List[NL] # List of subnodes + was_changed: bool = False + was_checked: bool = False + + def __new__(cls, *args, **kwds): + """Constructor that prevents Base from being instantiated.""" + assert cls is not Base, "Cannot instantiate Base" + return object.__new__(cls) + + def __eq__(self, other: Any) -> bool: + """ + Compare two nodes for equality. + + This calls the method _eq(). + """ + if self.__class__ is not other.__class__: + return NotImplemented + return self._eq(other) + + __hash__ = None # type: Any # For Py3 compatibility. + + @property + def prefix(self) -> Text: + raise NotImplementedError + + def _eq(self: _P, other: _P) -> bool: + """ + Compare two nodes for equality. + + This is called by __eq__ and __ne__. It is only called if the two nodes + have the same type. This must be implemented by the concrete subclass. + Nodes should be considered equal if they have the same structure, + ignoring the prefix string and other context information. + """ + raise NotImplementedError + + def clone(self: _P) -> _P: + """ + Return a cloned (deep) copy of self. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def post_order(self) -> Iterator[NL]: + """ + Return a post-order iterator for the tree. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def pre_order(self) -> Iterator[NL]: + """ + Return a pre-order iterator for the tree. + + This must be implemented by the concrete subclass. + """ + raise NotImplementedError + + def replace(self, new: Union[NL, List[NL]]) -> None: + """Replace this node with a new one in the parent.""" + assert self.parent is not None, str(self) + assert new is not None + if not isinstance(new, list): + new = [new] + l_children = [] + found = False + for ch in self.parent.children: + if ch is self: + assert not found, (self.parent.children, self, new) + if new is not None: + l_children.extend(new) + found = True + else: + l_children.append(ch) + assert found, (self.children, self, new) + self.parent.children = l_children + self.parent.changed() + self.parent.invalidate_sibling_maps() + for x in new: + x.parent = self.parent + self.parent = None + + def get_lineno(self) -> Optional[int]: + """Return the line number which generated the invocant node.""" + node = self + while not isinstance(node, Leaf): + if not node.children: + return None + node = node.children[0] + return node.lineno + + def changed(self) -> None: + if self.was_changed: + return + if self.parent: + self.parent.changed() + self.was_changed = True + + def remove(self) -> Optional[int]: + """ + Remove the node from the tree. Returns the position of the node in its + parent's children before it was removed. + """ + if self.parent: + for i, node in enumerate(self.parent.children): + if node is self: + del self.parent.children[i] + self.parent.changed() + self.parent.invalidate_sibling_maps() + self.parent = None + return i + return None + + @property + def next_sibling(self) -> Optional[NL]: + """ + The node immediately following the invocant in their parent's children + list. If the invocant does not have a next sibling, it is None + """ + if self.parent is None: + return None + + if self.parent.next_sibling_map is None: + self.parent.update_sibling_maps() + assert self.parent.next_sibling_map is not None + return self.parent.next_sibling_map[id(self)] + + @property + def prev_sibling(self) -> Optional[NL]: + """ + The node immediately preceding the invocant in their parent's children + list. If the invocant does not have a previous sibling, it is None. + """ + if self.parent is None: + return None + + if self.parent.prev_sibling_map is None: + self.parent.update_sibling_maps() + assert self.parent.prev_sibling_map is not None + return self.parent.prev_sibling_map[id(self)] + + def leaves(self) -> Iterator["Leaf"]: + for child in self.children: + yield from child.leaves() + + def depth(self) -> int: + if self.parent is None: + return 0 + return 1 + self.parent.depth() + + def get_suffix(self) -> Text: + """ + Return the string immediately following the invocant node. This is + effectively equivalent to node.next_sibling.prefix + """ + next_sib = self.next_sibling + if next_sib is None: + return "" + prefix = next_sib.prefix + return prefix + + +class Node(Base): + + """Concrete implementation for interior nodes.""" + + fixers_applied: Optional[List[Any]] + used_names: Optional[Set[Text]] + + def __init__( + self, + type: int, + children: List[NL], + context: Optional[Any] = None, + prefix: Optional[Text] = None, + fixers_applied: Optional[List[Any]] = None, + ) -> None: + """ + Initializer. + + Takes a type constant (a symbol number >= 256), a sequence of + child nodes, and an optional context keyword argument. + + As a side effect, the parent pointers of the children are updated. + """ + assert type >= 256, type + self.type = type + self.children = list(children) + for ch in self.children: + assert ch.parent is None, repr(ch) + ch.parent = self + self.invalidate_sibling_maps() + if prefix is not None: + self.prefix = prefix + if fixers_applied: + self.fixers_applied = fixers_applied[:] + else: + self.fixers_applied = None + + def __repr__(self) -> Text: + """Return a canonical string representation.""" + assert self.type is not None + return "%s(%s, %r)" % ( + self.__class__.__name__, + type_repr(self.type), + self.children, + ) + + def __str__(self) -> Text: + """ + Return a pretty string representation. + + This reproduces the input source exactly. + """ + return "".join(map(str, self.children)) + + def _eq(self, other) -> bool: + """Compare two nodes for equality.""" + return (self.type, self.children) == (other.type, other.children) + + def clone(self) -> "Node": + assert self.type is not None + """Return a cloned (deep) copy of self.""" + return Node( + self.type, + [ch.clone() for ch in self.children], + fixers_applied=self.fixers_applied, + ) + + def post_order(self) -> Iterator[NL]: + """Return a post-order iterator for the tree.""" + for child in self.children: + yield from child.post_order() + yield self + + def pre_order(self) -> Iterator[NL]: + """Return a pre-order iterator for the tree.""" + yield self + for child in self.children: + yield from child.pre_order() + + @property + def prefix(self) -> Text: + """ + The whitespace and comments preceding this node in the input. + """ + if not self.children: + return "" + return self.children[0].prefix + + @prefix.setter + def prefix(self, prefix) -> None: + if self.children: + self.children[0].prefix = prefix + + def set_child(self, i: int, child: NL) -> None: + """ + Equivalent to 'node.children[i] = child'. This method also sets the + child's parent attribute appropriately. + """ + child.parent = self + self.children[i].parent = None + self.children[i] = child + self.changed() + self.invalidate_sibling_maps() + + def insert_child(self, i: int, child: NL) -> None: + """ + Equivalent to 'node.children.insert(i, child)'. This method also sets + the child's parent attribute appropriately. + """ + child.parent = self + self.children.insert(i, child) + self.changed() + self.invalidate_sibling_maps() + + def append_child(self, child: NL) -> None: + """ + Equivalent to 'node.children.append(child)'. This method also sets the + child's parent attribute appropriately. + """ + child.parent = self + self.children.append(child) + self.changed() + self.invalidate_sibling_maps() + + def invalidate_sibling_maps(self) -> None: + self.prev_sibling_map: Optional[Dict[int, Optional[NL]]] = None + self.next_sibling_map: Optional[Dict[int, Optional[NL]]] = None + + def update_sibling_maps(self) -> None: + _prev: Dict[int, Optional[NL]] = {} + _next: Dict[int, Optional[NL]] = {} + self.prev_sibling_map = _prev + self.next_sibling_map = _next + previous: Optional[NL] = None + for current in self.children: + _prev[id(current)] = previous + _next[id(previous)] = current + previous = current + _next[id(current)] = None + + +class Leaf(Base): + + """Concrete implementation for leaf nodes.""" + + # Default values for instance variables + value: Text + fixers_applied: List[Any] + bracket_depth: int + opening_bracket: "Leaf" + used_names: Optional[Set[Text]] + _prefix = "" # Whitespace and comments preceding this token in the input + lineno: int = 0 # Line where this token starts in the input + column: int = 0 # Column where this token starts in the input + + def __init__( + self, + type: int, + value: Text, + context: Optional[Context] = None, + prefix: Optional[Text] = None, + fixers_applied: List[Any] = [], + ) -> None: + """ + Initializer. + + Takes a type constant (a token number < 256), a string value, and an + optional context keyword argument. + """ + + assert 0 <= type < 256, type + if context is not None: + self._prefix, (self.lineno, self.column) = context + self.type = type + self.value = value + if prefix is not None: + self._prefix = prefix + self.fixers_applied: Optional[List[Any]] = fixers_applied[:] + self.children = [] + + def __repr__(self) -> str: + """Return a canonical string representation.""" + from .pgen2.token import tok_name + + assert self.type is not None + return "%s(%s, %r)" % ( + self.__class__.__name__, + tok_name.get(self.type, self.type), + self.value, + ) + + def __str__(self) -> Text: + """ + Return a pretty string representation. + + This reproduces the input source exactly. + """ + return self.prefix + str(self.value) + + def _eq(self, other) -> bool: + """Compare two nodes for equality.""" + return (self.type, self.value) == (other.type, other.value) + + def clone(self) -> "Leaf": + assert self.type is not None + """Return a cloned (deep) copy of self.""" + return Leaf( + self.type, + self.value, + (self.prefix, (self.lineno, self.column)), + fixers_applied=self.fixers_applied, + ) + + def leaves(self) -> Iterator["Leaf"]: + yield self + + def post_order(self) -> Iterator["Leaf"]: + """Return a post-order iterator for the tree.""" + yield self + + def pre_order(self) -> Iterator["Leaf"]: + """Return a pre-order iterator for the tree.""" + yield self + + @property + def prefix(self) -> Text: + """ + The whitespace and comments preceding this token in the input. + """ + return self._prefix + + @prefix.setter + def prefix(self, prefix) -> None: + self.changed() + self._prefix = prefix + + +def convert(gr: Grammar, raw_node: RawNode) -> NL: + """ + Convert raw node information to a Node or Leaf instance. + + This is passed to the parser driver which calls it whenever a reduction of a + grammar rule produces a new complete node, so that the tree is build + strictly bottom-up. + """ + type, value, context, children = raw_node + if children or type in gr.number2symbol: + # If there's exactly one child, return that child instead of + # creating a new node. + assert children is not None + if len(children) == 1: + return children[0] + return Node(type, children, context=context) + else: + return Leaf(type, value or "", context=context) + + +_Results = Dict[Text, NL] + + +class BasePattern(object): + + """ + A pattern is a tree matching pattern. + + It looks for a specific node type (token or symbol), and + optionally for a specific content. + + This is an abstract base class. There are three concrete + subclasses: + + - LeafPattern matches a single leaf node; + - NodePattern matches a single node (usually non-leaf); + - WildcardPattern matches a sequence of nodes of variable length. + """ + + # Defaults for instance variables + type: Optional[int] + type = None # Node type (token if < 256, symbol if >= 256) + content: Any = None # Optional content matching pattern + name: Optional[Text] = None # Optional name used to store match in results dict + + def __new__(cls, *args, **kwds): + """Constructor that prevents BasePattern from being instantiated.""" + assert cls is not BasePattern, "Cannot instantiate BasePattern" + return object.__new__(cls) + + def __repr__(self) -> Text: + assert self.type is not None + args = [type_repr(self.type), self.content, self.name] + while args and args[-1] is None: + del args[-1] + return "%s(%s)" % (self.__class__.__name__, ", ".join(map(repr, args))) + + def _submatch(self, node, results=None) -> bool: + raise NotImplementedError + + def optimize(self) -> "BasePattern": + """ + A subclass can define this as a hook for optimizations. + + Returns either self or another node with the same effect. + """ + return self + + def match(self, node: NL, results: Optional[_Results] = None) -> bool: + """ + Does this pattern exactly match a node? + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + Default implementation for non-wildcard patterns. + """ + if self.type is not None and node.type != self.type: + return False + if self.content is not None: + r: Optional[_Results] = None + if results is not None: + r = {} + if not self._submatch(node, r): + return False + if r: + assert results is not None + results.update(r) + if results is not None and self.name: + results[self.name] = node + return True + + def match_seq(self, nodes: List[NL], results: Optional[_Results] = None) -> bool: + """ + Does this pattern exactly match a sequence of nodes? + + Default implementation for non-wildcard patterns. + """ + if len(nodes) != 1: + return False + return self.match(nodes[0], results) + + def generate_matches(self, nodes: List[NL]) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding all matches for this pattern. + + Default implementation for non-wildcard patterns. + """ + r: _Results = {} + if nodes and self.match(nodes[0], r): + yield 1, r + + +class LeafPattern(BasePattern): + def __init__( + self, + type: Optional[int] = None, + content: Optional[Text] = None, + name: Optional[Text] = None, + ) -> None: + """ + Initializer. Takes optional type, content, and name. + + The type, if given must be a token type (< 256). If not given, + this matches any *leaf* node; the content may still be required. + + The content, if given, must be a string. + + If a name is given, the matching node is stored in the results + dict under that key. + """ + if type is not None: + assert 0 <= type < 256, type + if content is not None: + assert isinstance(content, str), repr(content) + self.type = type + self.content = content + self.name = name + + def match(self, node: NL, results=None): + """Override match() to insist on a leaf node.""" + if not isinstance(node, Leaf): + return False + return BasePattern.match(self, node, results) + + def _submatch(self, node, results=None): + """ + Match the pattern's content to the node's children. + + This assumes the node type matches and self.content is not None. + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + When returning False, the results dict may still be updated. + """ + return self.content == node.value + + +class NodePattern(BasePattern): + + wildcards: bool = False + + def __init__( + self, + type: Optional[int] = None, + content: Optional[Iterable[Text]] = None, + name: Optional[Text] = None, + ) -> None: + """ + Initializer. Takes optional type, content, and name. + + The type, if given, must be a symbol type (>= 256). If the + type is None this matches *any* single node (leaf or not), + except if content is not None, in which it only matches + non-leaf nodes that also match the content pattern. + + The content, if not None, must be a sequence of Patterns that + must match the node's children exactly. If the content is + given, the type must not be None. + + If a name is given, the matching node is stored in the results + dict under that key. + """ + if type is not None: + assert type >= 256, type + if content is not None: + assert not isinstance(content, str), repr(content) + newcontent = list(content) + for i, item in enumerate(newcontent): + assert isinstance(item, BasePattern), (i, item) + if isinstance(item, WildcardPattern): + self.wildcards = True + self.type = type + self.content = newcontent + self.name = name + + def _submatch(self, node, results=None) -> bool: + """ + Match the pattern's content to the node's children. + + This assumes the node type matches and self.content is not None. + + Returns True if it matches, False if not. + + If results is not None, it must be a dict which will be + updated with the nodes matching named subpatterns. + + When returning False, the results dict may still be updated. + """ + if self.wildcards: + for c, r in generate_matches(self.content, node.children): + if c == len(node.children): + if results is not None: + results.update(r) + return True + return False + if len(self.content) != len(node.children): + return False + for subpattern, child in zip(self.content, node.children): + if not subpattern.match(child, results): + return False + return True + + +class WildcardPattern(BasePattern): + + """ + A wildcard pattern can match zero or more nodes. + + This has all the flexibility needed to implement patterns like: + + .* .+ .? .{m,n} + (a b c | d e | f) + (...)* (...)+ (...)? (...){m,n} + + except it always uses non-greedy matching. + """ + + min: int + max: int + + def __init__( + self, + content: Optional[Text] = None, + min: int = 0, + max: int = HUGE, + name: Optional[Text] = None, + ) -> None: + """ + Initializer. + + Args: + content: optional sequence of subsequences of patterns; + if absent, matches one node; + if present, each subsequence is an alternative [*] + min: optional minimum number of times to match, default 0 + max: optional maximum number of times to match, default HUGE + name: optional name assigned to this match + + [*] Thus, if content is [[a, b, c], [d, e], [f, g, h]] this is + equivalent to (a b c | d e | f g h); if content is None, + this is equivalent to '.' in regular expression terms. + The min and max parameters work as follows: + min=0, max=maxint: .* + min=1, max=maxint: .+ + min=0, max=1: .? + min=1, max=1: . + If content is not None, replace the dot with the parenthesized + list of alternatives, e.g. (a b c | d e | f g h)* + """ + assert 0 <= min <= max <= HUGE, (min, max) + if content is not None: + f = lambda s: tuple(s) + wrapped_content = tuple(map(f, content)) # Protect against alterations + # Check sanity of alternatives + assert len(wrapped_content), repr( + wrapped_content + ) # Can't have zero alternatives + for alt in wrapped_content: + assert len(alt), repr(alt) # Can have empty alternatives + self.content = wrapped_content + self.min = min + self.max = max + self.name = name + + def optimize(self) -> Any: + """Optimize certain stacked wildcard patterns.""" + subpattern = None + if ( + self.content is not None + and len(self.content) == 1 + and len(self.content[0]) == 1 + ): + subpattern = self.content[0][0] + if self.min == 1 and self.max == 1: + if self.content is None: + return NodePattern(name=self.name) + if subpattern is not None and self.name == subpattern.name: + return subpattern.optimize() + if ( + self.min <= 1 + and isinstance(subpattern, WildcardPattern) + and subpattern.min <= 1 + and self.name == subpattern.name + ): + return WildcardPattern( + subpattern.content, + self.min * subpattern.min, + self.max * subpattern.max, + subpattern.name, + ) + return self + + def match(self, node, results=None) -> bool: + """Does this pattern exactly match a node?""" + return self.match_seq([node], results) + + def match_seq(self, nodes, results=None) -> bool: + """Does this pattern exactly match a sequence of nodes?""" + for c, r in self.generate_matches(nodes): + if c == len(nodes): + if results is not None: + results.update(r) + if self.name: + results[self.name] = list(nodes) + return True + return False + + def generate_matches(self, nodes) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding matches for a sequence of nodes. + + Args: + nodes: sequence of nodes + + Yields: + (count, results) tuples where: + count: the match comprises nodes[:count]; + results: dict containing named submatches. + """ + if self.content is None: + # Shortcut for special case (see __init__.__doc__) + for count in range(self.min, 1 + min(len(nodes), self.max)): + r = {} + if self.name: + r[self.name] = nodes[:count] + yield count, r + elif self.name == "bare_name": + yield self._bare_name_matches(nodes) + else: + # The reason for this is that hitting the recursion limit usually + # results in some ugly messages about how RuntimeErrors are being + # ignored. We only have to do this on CPython, though, because other + # implementations don't have this nasty bug in the first place. + if hasattr(sys, "getrefcount"): + save_stderr = sys.stderr + sys.stderr = StringIO() + try: + for count, r in self._recursive_matches(nodes, 0): + if self.name: + r[self.name] = nodes[:count] + yield count, r + except RuntimeError: + # We fall back to the iterative pattern matching scheme if the recursive + # scheme hits the recursion limit. + for count, r in self._iterative_matches(nodes): + if self.name: + r[self.name] = nodes[:count] + yield count, r + finally: + if hasattr(sys, "getrefcount"): + sys.stderr = save_stderr + + def _iterative_matches(self, nodes) -> Iterator[Tuple[int, _Results]]: + """Helper to iteratively yield the matches.""" + nodelen = len(nodes) + if 0 >= self.min: + yield 0, {} + + results = [] + # generate matches that use just one alt from self.content + for alt in self.content: + for c, r in generate_matches(alt, nodes): + yield c, r + results.append((c, r)) + + # for each match, iterate down the nodes + while results: + new_results = [] + for c0, r0 in results: + # stop if the entire set of nodes has been matched + if c0 < nodelen and c0 <= self.max: + for alt in self.content: + for c1, r1 in generate_matches(alt, nodes[c0:]): + if c1 > 0: + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r + new_results.append((c0 + c1, r)) + results = new_results + + def _bare_name_matches(self, nodes) -> Tuple[int, _Results]: + """Special optimized matcher for bare_name.""" + count = 0 + r = {} # type: _Results + done = False + max = len(nodes) + while not done and count < max: + done = True + for leaf in self.content: + if leaf[0].match(nodes[count], r): + count += 1 + done = False + break + assert self.name is not None + r[self.name] = nodes[:count] + return count, r + + def _recursive_matches(self, nodes, count) -> Iterator[Tuple[int, _Results]]: + """Helper to recursively yield the matches.""" + assert self.content is not None + if count >= self.min: + yield 0, {} + if count < self.max: + for alt in self.content: + for c0, r0 in generate_matches(alt, nodes): + for c1, r1 in self._recursive_matches(nodes[c0:], count + 1): + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r + + +class NegatedPattern(BasePattern): + def __init__(self, content: Optional[Any] = None) -> None: + """ + Initializer. + + The argument is either a pattern or None. If it is None, this + only matches an empty sequence (effectively '$' in regex + lingo). If it is not None, this matches whenever the argument + pattern doesn't have any matches. + """ + if content is not None: + assert isinstance(content, BasePattern), repr(content) + self.content = content + + def match(self, node, results=None) -> bool: + # We never match a node in its entirety + return False + + def match_seq(self, nodes, results=None) -> bool: + # We only match an empty sequence of nodes in its entirety + return len(nodes) == 0 + + def generate_matches(self, nodes) -> Iterator[Tuple[int, _Results]]: + if self.content is None: + # Return a match if there is an empty sequence + if len(nodes) == 0: + yield 0, {} + else: + # Return a match if the argument pattern has no matches + for c, r in self.content.generate_matches(nodes): + return + yield 0, {} + + +def generate_matches( + patterns: List[BasePattern], nodes: List[NL] +) -> Iterator[Tuple[int, _Results]]: + """ + Generator yielding matches for a sequence of patterns and nodes. + + Args: + patterns: a sequence of patterns + nodes: a sequence of nodes + + Yields: + (count, results) tuples where: + count: the entire sequence of patterns matches nodes[:count]; + results: dict containing named submatches. + """ + if not patterns: + yield 0, {} + else: + p, rest = patterns[0], patterns[1:] + for c0, r0 in p.generate_matches(nodes): + if not rest: + yield c0, r0 + else: + for c1, r1 in generate_matches(rest, nodes[c0:]): + r = {} + r.update(r0) + r.update(r1) + yield c0 + c1, r + + +_Convert = Callable[[Grammar, RawNode], Any] diff --git a/.vim/bundle/black/test_requirements.txt b/.vim/bundle/black/test_requirements.txt new file mode 100644 index 0000000..5bc494d --- /dev/null +++ b/.vim/bundle/black/test_requirements.txt @@ -0,0 +1,6 @@ +coverage >= 5.3 +pre-commit +pytest >= 6.1.1 +pytest-xdist >= 2.2.1 +pytest-cov >= 2.11.1 +tox diff --git a/.vim/bundle/black/tests/__init__.py b/.vim/bundle/black/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/conftest.py b/.vim/bundle/black/tests/conftest.py new file mode 100644 index 0000000..6751726 --- /dev/null +++ b/.vim/bundle/black/tests/conftest.py @@ -0,0 +1 @@ +pytest_plugins = ["tests.optional"] diff --git a/.vim/bundle/black/tests/data/async_as_identifier.py b/.vim/bundle/black/tests/data/async_as_identifier.py new file mode 100644 index 0000000..c36a5e5 --- /dev/null +++ b/.vim/bundle/black/tests/data/async_as_identifier.py @@ -0,0 +1,49 @@ +def async(): + pass + + +def await(): + pass + + +await = lambda: None +async = lambda: None +async() +await() + + +def sync_fn(): + await = lambda: None + async = lambda: None + async() + await() + + +async def async_fn(): + await async_fn() + + +# output +def async(): + pass + + +def await(): + pass + + +await = lambda: None +async = lambda: None +async() +await() + + +def sync_fn(): + await = lambda: None + async = lambda: None + async() + await() + + +async def async_fn(): + await async_fn() diff --git a/.vim/bundle/black/tests/data/beginning_backslash.py b/.vim/bundle/black/tests/data/beginning_backslash.py new file mode 100644 index 0000000..66c347d --- /dev/null +++ b/.vim/bundle/black/tests/data/beginning_backslash.py @@ -0,0 +1,12 @@ +\ + + + + + +print("hello, world") + +# output + + +print("hello, world") diff --git a/.vim/bundle/black/tests/data/blackd_diff.diff b/.vim/bundle/black/tests/data/blackd_diff.diff new file mode 100644 index 0000000..6226858 --- /dev/null +++ b/.vim/bundle/black/tests/data/blackd_diff.diff @@ -0,0 +1,13 @@ +--- [Deterministic header] ++++ [Deterministic header] +@@ -1,6 +1,5 @@ +-def abc (): +- return ["hello", "world", +- "!"] ++def abc(): ++ return ["hello", "world", "!"] + +-print( "Incorrect formatting" +-) ++ ++print("Incorrect formatting") diff --git a/.vim/bundle/black/tests/data/blackd_diff.py b/.vim/bundle/black/tests/data/blackd_diff.py new file mode 100644 index 0000000..c527832 --- /dev/null +++ b/.vim/bundle/black/tests/data/blackd_diff.py @@ -0,0 +1,6 @@ +def abc (): + return ["hello", "world", + "!"] + +print( "Incorrect formatting" +) diff --git a/.vim/bundle/black/tests/data/bracketmatch.py b/.vim/bundle/black/tests/data/bracketmatch.py new file mode 100644 index 0000000..0aaa2d8 --- /dev/null +++ b/.vim/bundle/black/tests/data/bracketmatch.py @@ -0,0 +1,15 @@ +for ((x in {}) or {})['a'] in x: + pass +pem_spam = lambda l, spam = { + "x": 3 +}: not spam.get(l.strip()) +lambda x=lambda y={1: 3}: y['x':lambda y: {1: 2}]: x + + +# output + + +for ((x in {}) or {})["a"] in x: + pass +pem_spam = lambda l, spam={"x": 3}: not spam.get(l.strip()) +lambda x=lambda y={1: 3}: y["x" : lambda y: {1: 2}]: x diff --git a/.vim/bundle/black/tests/data/cantfit.py b/.vim/bundle/black/tests/data/cantfit.py new file mode 100644 index 0000000..0849374 --- /dev/null +++ b/.vim/bundle/black/tests/data/cantfit.py @@ -0,0 +1,107 @@ +# long variable name +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = 0 +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = 1 # with a comment +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = [ + 1, 2, 3 +] +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = function() +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = function( + arg1, arg2, arg3 +) +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = function( + [1, 2, 3], arg1, [1, 2, 3], arg2, [1, 2, 3], arg3 +) +# long function name +normal_name = but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying() +normal_name = but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying( + arg1, arg2, arg3 +) +normal_name = but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying( + [1, 2, 3], arg1, [1, 2, 3], arg2, [1, 2, 3], arg3 +) +# long arguments +normal_name = normal_function_name( + "but with super long string arguments that on their own exceed the line limit so there's no way it can ever fit", + "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs", + this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0, +) +string_variable_name = ( + "a string that is waaaaaaaayyyyyyyy too long, even in parens, there's nothing you can do" # noqa +) +for key in """ + hostname + port + username +""".split(): + if key in self.connect_kwargs: + raise ValueError(err.format(key)) +concatenated_strings = "some strings that are " "concatenated implicitly, so if you put them on separate " "lines it will fit" +del concatenated_strings, string_variable_name, normal_function_name, normal_name, need_more_to_make_the_line_long_enough + + +# output + + +# long variable name +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = ( + 0 +) +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = ( + 1 # with a comment +) +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = [ + 1, + 2, + 3, +] +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = ( + function() +) +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = function( + arg1, arg2, arg3 +) +this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it = function( + [1, 2, 3], arg1, [1, 2, 3], arg2, [1, 2, 3], arg3 +) +# long function name +normal_name = ( + but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying() +) +normal_name = ( + but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying( + arg1, arg2, arg3 + ) +) +normal_name = ( + but_the_function_name_is_now_ridiculously_long_and_it_is_still_super_annoying( + [1, 2, 3], arg1, [1, 2, 3], arg2, [1, 2, 3], arg3 + ) +) +# long arguments +normal_name = normal_function_name( + "but with super long string arguments that on their own exceed the line limit so" + " there's no way it can ever fit", + "eggs with spam and eggs and spam with eggs with spam and eggs and spam with eggs" + " with spam and eggs and spam with eggs", + this_is_a_ridiculously_long_name_and_nobody_in_their_right_mind_would_use_one_like_it=0, +) +string_variable_name = "a string that is waaaaaaaayyyyyyyy too long, even in parens, there's nothing you can do" # noqa +for key in """ + hostname + port + username +""".split(): + if key in self.connect_kwargs: + raise ValueError(err.format(key)) +concatenated_strings = ( + "some strings that are " + "concatenated implicitly, so if you put them on separate " + "lines it will fit" +) +del ( + concatenated_strings, + string_variable_name, + normal_function_name, + normal_name, + need_more_to_make_the_line_long_enough, +) diff --git a/.vim/bundle/black/tests/data/class_blank_parentheses.py b/.vim/bundle/black/tests/data/class_blank_parentheses.py new file mode 100644 index 0000000..1a5721a --- /dev/null +++ b/.vim/bundle/black/tests/data/class_blank_parentheses.py @@ -0,0 +1,58 @@ +class SimpleClassWithBlankParentheses(): + pass +class ClassWithSpaceParentheses ( ): + first_test_data = 90 + second_test_data = 100 + def test_func(self): + return None +class ClassWithEmptyFunc(object): + + def func_with_blank_parentheses(): + return 5 + + +def public_func_with_blank_parentheses(): + return None +def class_under_the_func_with_blank_parentheses(): + class InsideFunc(): + pass +class NormalClass ( +): + def func_for_testing(self, first, second): + sum = first + second + return sum + + +# output + + +class SimpleClassWithBlankParentheses: + pass + + +class ClassWithSpaceParentheses: + first_test_data = 90 + second_test_data = 100 + + def test_func(self): + return None + + +class ClassWithEmptyFunc(object): + def func_with_blank_parentheses(): + return 5 + + +def public_func_with_blank_parentheses(): + return None + + +def class_under_the_func_with_blank_parentheses(): + class InsideFunc: + pass + + +class NormalClass: + def func_for_testing(self, first, second): + sum = first + second + return sum diff --git a/.vim/bundle/black/tests/data/class_methods_new_line.py b/.vim/bundle/black/tests/data/class_methods_new_line.py new file mode 100644 index 0000000..9a96ffe --- /dev/null +++ b/.vim/bundle/black/tests/data/class_methods_new_line.py @@ -0,0 +1,270 @@ +class ClassSimplest: + pass +class ClassWithSingleField: + a = 1 +class ClassWithJustTheDocstring: + """Just a docstring.""" +class ClassWithInit: + def __init__(self): + pass +class ClassWithTheDocstringAndInit: + """Just a docstring.""" + def __init__(self): + pass +class ClassWithInitAndVars: + cls_var = 100 + def __init__(self): + pass +class ClassWithInitAndVarsAndDocstring: + """Test class""" + cls_var = 100 + def __init__(self): + pass +class ClassWithDecoInit: + @deco + def __init__(self): + pass +class ClassWithDecoInitAndVars: + cls_var = 100 + @deco + def __init__(self): + pass +class ClassWithDecoInitAndVarsAndDocstring: + """Test class""" + cls_var = 100 + @deco + def __init__(self): + pass +class ClassSimplestWithInner: + class Inner: + pass +class ClassSimplestWithInnerWithDocstring: + class Inner: + """Just a docstring.""" + def __init__(self): + pass +class ClassWithSingleFieldWithInner: + a = 1 + class Inner: + pass +class ClassWithJustTheDocstringWithInner: + """Just a docstring.""" + class Inner: + pass +class ClassWithInitWithInner: + class Inner: + pass + def __init__(self): + pass +class ClassWithInitAndVarsWithInner: + cls_var = 100 + class Inner: + pass + def __init__(self): + pass +class ClassWithInitAndVarsAndDocstringWithInner: + """Test class""" + cls_var = 100 + class Inner: + pass + def __init__(self): + pass +class ClassWithDecoInitWithInner: + class Inner: + pass + @deco + def __init__(self): + pass +class ClassWithDecoInitAndVarsWithInner: + cls_var = 100 + class Inner: + pass + @deco + def __init__(self): + pass +class ClassWithDecoInitAndVarsAndDocstringWithInner: + """Test class""" + cls_var = 100 + class Inner: + pass + @deco + def __init__(self): + pass +class ClassWithDecoInitAndVarsAndDocstringWithInner2: + """Test class""" + class Inner: + pass + cls_var = 100 + @deco + def __init__(self): + pass + + +# output + + +class ClassSimplest: + pass + + +class ClassWithSingleField: + a = 1 + + +class ClassWithJustTheDocstring: + """Just a docstring.""" + + +class ClassWithInit: + def __init__(self): + pass + + +class ClassWithTheDocstringAndInit: + """Just a docstring.""" + + def __init__(self): + pass + + +class ClassWithInitAndVars: + cls_var = 100 + + def __init__(self): + pass + + +class ClassWithInitAndVarsAndDocstring: + """Test class""" + + cls_var = 100 + + def __init__(self): + pass + + +class ClassWithDecoInit: + @deco + def __init__(self): + pass + + +class ClassWithDecoInitAndVars: + cls_var = 100 + + @deco + def __init__(self): + pass + + +class ClassWithDecoInitAndVarsAndDocstring: + """Test class""" + + cls_var = 100 + + @deco + def __init__(self): + pass + + +class ClassSimplestWithInner: + class Inner: + pass + + +class ClassSimplestWithInnerWithDocstring: + class Inner: + """Just a docstring.""" + + def __init__(self): + pass + + +class ClassWithSingleFieldWithInner: + a = 1 + + class Inner: + pass + + +class ClassWithJustTheDocstringWithInner: + """Just a docstring.""" + + class Inner: + pass + + +class ClassWithInitWithInner: + class Inner: + pass + + def __init__(self): + pass + + +class ClassWithInitAndVarsWithInner: + cls_var = 100 + + class Inner: + pass + + def __init__(self): + pass + + +class ClassWithInitAndVarsAndDocstringWithInner: + """Test class""" + + cls_var = 100 + + class Inner: + pass + + def __init__(self): + pass + + +class ClassWithDecoInitWithInner: + class Inner: + pass + + @deco + def __init__(self): + pass + + +class ClassWithDecoInitAndVarsWithInner: + cls_var = 100 + + class Inner: + pass + + @deco + def __init__(self): + pass + + +class ClassWithDecoInitAndVarsAndDocstringWithInner: + """Test class""" + + cls_var = 100 + + class Inner: + pass + + @deco + def __init__(self): + pass + + +class ClassWithDecoInitAndVarsAndDocstringWithInner2: + """Test class""" + + class Inner: + pass + + cls_var = 100 + + @deco + def __init__(self): + pass diff --git a/.vim/bundle/black/tests/data/collections.py b/.vim/bundle/black/tests/data/collections.py new file mode 100644 index 0000000..6843166 --- /dev/null +++ b/.vim/bundle/black/tests/data/collections.py @@ -0,0 +1,174 @@ +import core, time, a + +from . import A, B, C + +# keeps existing trailing comma +from foo import ( + bar, +) + +# also keeps existing structure +from foo import ( + baz, + qux, +) + +# `as` works as well +from foo import ( + xyzzy as magic, +) + +a = {1,2,3,} +b = { +1,2, + 3} +c = { + 1, + 2, + 3, +} +x = 1, +y = narf(), +nested = {(1,2,3),(4,5,6),} +nested_no_trailing_comma = {(1,2,3),(4,5,6)} +nested_long_lines = ["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccccccccccccccccccccccc", (1, 2, 3), "dddddddddddddddddddddddddddddddddddddddd"] +{"oneple": (1,),} +{"oneple": (1,)} +['ls', 'lsoneple/%s' % (foo,)] +x = {"oneple": (1,)} +y = {"oneple": (1,),} +assert False, ("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa wraps %s" % bar) + +# looping over a 1-tuple should also not get wrapped +for x in (1,): + pass +for (x,) in (1,), (2,), (3,): + pass + +[1, 2, 3,] + +division_result_tuple = (6/2,) +print("foo %r", (foo.bar,)) + +if True: + IGNORED_TYPES_FOR_ATTRIBUTE_CHECKING = ( + Config.IGNORED_TYPES_FOR_ATTRIBUTE_CHECKING + | {pylons.controllers.WSGIController} + ) + +if True: + ec2client.get_waiter('instance_stopped').wait( + InstanceIds=[instance.id], + WaiterConfig={ + 'Delay': 5, + }) + ec2client.get_waiter("instance_stopped").wait( + InstanceIds=[instance.id], + WaiterConfig={"Delay": 5,}, + ) + ec2client.get_waiter("instance_stopped").wait( + InstanceIds=[instance.id], WaiterConfig={"Delay": 5,}, + ) + +# output + + +import core, time, a + +from . import A, B, C + +# keeps existing trailing comma +from foo import ( + bar, +) + +# also keeps existing structure +from foo import ( + baz, + qux, +) + +# `as` works as well +from foo import ( + xyzzy as magic, +) + +a = { + 1, + 2, + 3, +} +b = {1, 2, 3} +c = { + 1, + 2, + 3, +} +x = (1,) +y = (narf(),) +nested = { + (1, 2, 3), + (4, 5, 6), +} +nested_no_trailing_comma = {(1, 2, 3), (4, 5, 6)} +nested_long_lines = [ + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + "cccccccccccccccccccccccccccccccccccccccc", + (1, 2, 3), + "dddddddddddddddddddddddddddddddddddddddd", +] +{ + "oneple": (1,), +} +{"oneple": (1,)} +["ls", "lsoneple/%s" % (foo,)] +x = {"oneple": (1,)} +y = { + "oneple": (1,), +} +assert False, ( + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa wraps %s" + % bar +) + +# looping over a 1-tuple should also not get wrapped +for x in (1,): + pass +for (x,) in (1,), (2,), (3,): + pass + +[ + 1, + 2, + 3, +] + +division_result_tuple = (6 / 2,) +print("foo %r", (foo.bar,)) + +if True: + IGNORED_TYPES_FOR_ATTRIBUTE_CHECKING = ( + Config.IGNORED_TYPES_FOR_ATTRIBUTE_CHECKING + | {pylons.controllers.WSGIController} + ) + +if True: + ec2client.get_waiter("instance_stopped").wait( + InstanceIds=[instance.id], + WaiterConfig={ + "Delay": 5, + }, + ) + ec2client.get_waiter("instance_stopped").wait( + InstanceIds=[instance.id], + WaiterConfig={ + "Delay": 5, + }, + ) + ec2client.get_waiter("instance_stopped").wait( + InstanceIds=[instance.id], + WaiterConfig={ + "Delay": 5, + }, + ) diff --git a/.vim/bundle/black/tests/data/comment_after_escaped_newline.py b/.vim/bundle/black/tests/data/comment_after_escaped_newline.py new file mode 100644 index 0000000..133f489 --- /dev/null +++ b/.vim/bundle/black/tests/data/comment_after_escaped_newline.py @@ -0,0 +1,18 @@ +def bob(): \ + # pylint: disable=W9016 + pass + + +def bobtwo(): \ + \ + # some comment here + pass + +# output + +def bob(): # pylint: disable=W9016 + pass + + +def bobtwo(): # some comment here + pass diff --git a/.vim/bundle/black/tests/data/comments.py b/.vim/bundle/black/tests/data/comments.py new file mode 100644 index 0000000..c34daaf --- /dev/null +++ b/.vim/bundle/black/tests/data/comments.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +# fmt: on +# Some license here. +# +# Has many lines. Many, many lines. +# Many, many, many lines. +"""Module docstring. + +Possibly also many, many lines. +""" + +import os.path +import sys + +import a +from b.c import X # some noqa comment + +try: + import fast +except ImportError: + import slow as fast + + +# Some comment before a function. +y = 1 +( + # some strings + y # type: ignore +) + + +def function(default=None): + """Docstring comes first. + + Possibly many lines. + """ + # FIXME: Some comment about why this function is crap but still in production. + import inner_imports + + if inner_imports.are_evil(): + # Explains why we have this if. + # In great detail indeed. + x = X() + return x.method1() # type: ignore + + # This return is also commented for some reason. + return default + + +# Explains why we use global state. +GLOBAL_STATE = {"a": a(1), "b": a(2), "c": a(3)} + + +# Another comment! +# This time two lines. + + +class Foo: + """Docstring for class Foo. Example from Sphinx docs.""" + + #: Doc comment for class attribute Foo.bar. + #: It can have multiple lines. + bar = 1 + + flox = 1.5 #: Doc comment for Foo.flox. One line only. + + baz = 2 + """Docstring for class attribute Foo.baz.""" + + def __init__(self): + #: Doc comment for instance attribute qux. + self.qux = 3 + + self.spam = 4 + """Docstring for instance attribute spam.""" + + +#'

This is pweave!

+ + +@fast(really=True) +async def wat(): + # This comment, for some reason \ + # contains a trailing backslash. + async with X.open_async() as x: # Some more comments + result = await x.method1() + # Comment after ending a block. + if result: + print("A OK", file=sys.stdout) + # Comment between things. + print() + + +# Some closing comments. +# Maybe Vim or Emacs directives for formatting. +# Who knows. diff --git a/.vim/bundle/black/tests/data/comments2.py b/.vim/bundle/black/tests/data/comments2.py new file mode 100644 index 0000000..4eea013 --- /dev/null +++ b/.vim/bundle/black/tests/data/comments2.py @@ -0,0 +1,342 @@ +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent # NOT DRY +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent as component # DRY +) + +# Please keep __all__ alphabetized within each category. + +__all__ = [ + # Super-special typing primitives. + 'Any', + 'Callable', + 'ClassVar', + + # ABCs (from collections.abc). + 'AbstractSet', # collections.abc.Set. + 'ByteString', + 'Container', + + # Concrete collection types. + 'Counter', + 'Deque', + 'Dict', + 'DefaultDict', + 'List', + 'Set', + 'FrozenSet', + 'NamedTuple', # Not really a type. + 'Generator', +] + +not_shareables = [ + # singletons + True, + False, + NotImplemented, ..., + # builtin types and objects + type, + object, + object(), + Exception(), + 42, + 100.0, + "spam", + # user-defined types and objects + Cheese, + Cheese("Wensleydale"), + SubBytes(b"spam"), +] + +if 'PYTHON' in os.environ: + add_compiler(compiler_from_env()) +else: + # for compiler in compilers.values(): + # add_compiler(compiler) + add_compiler(compilers[(7.0, 32)]) + # add_compiler(compilers[(7.1, 64)]) + +# Comment before function. +def inline_comments_in_brackets_ruin_everything(): + if typedargslist: + parameters.children = [ + children[0], # (1 + body, + children[-1] # )1 + ] + parameters.children = [ + children[0], + body, + children[-1], # type: ignore + ] + else: + parameters.children = [ + parameters.children[0], # (2 what if this was actually long + body, + parameters.children[-1], # )2 + ] + parameters.children = [parameters.what_if_this_was_actually_long.children[0], body, parameters.children[-1]] # type: ignore + if (self._proc is not None + # has the child process finished? + and self._returncode is None + # the child process has finished, but the + # transport hasn't been notified yet? + and self._proc.poll() is None): + pass + # no newline before or after + short = [ + # one + 1, + # two + 2] + + # no newline after + call(arg1, arg2, """ +short +""", arg3=True) + + ############################################################################ + + call2( + #short + arg1, + #but + arg2, + #multiline + """ +short +""", + # yup + arg3=True) + lcomp = [ + element # yup + for element in collection # yup + if element is not None # right + ] + lcomp2 = [ + # hello + element + # yup + for element in collection + # right + if element is not None + ] + lcomp3 = [ + # This one is actually too long to fit in a single line. + element.split('\n', 1)[0] + # yup + for element in collection.select_elements() + # right + if element is not None + ] + while True: + if False: + continue + + # and round and round we go + # and round and round we go + + # let's return + return Node( + syms.simple_stmt, + [ + Node(statement, result), + Leaf(token.NEWLINE, '\n') # FIXME: \r\n? + ], + ) + +CONFIG_FILES = [CONFIG_FILE, ] + SHARED_CONFIG_FILES + USER_CONFIG_FILES # type: Final + +class Test: + def _init_host(self, parsed) -> None: + if (parsed.hostname is None or # type: ignore + not parsed.hostname.strip()): + pass + +####################### +### SECTION COMMENT ### +####################### + + +instruction()#comment with bad spacing + +# END COMMENTS +# MORE END COMMENTS + + +# output + + +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent, # NOT DRY +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent as component, # DRY +) + +# Please keep __all__ alphabetized within each category. + +__all__ = [ + # Super-special typing primitives. + "Any", + "Callable", + "ClassVar", + # ABCs (from collections.abc). + "AbstractSet", # collections.abc.Set. + "ByteString", + "Container", + # Concrete collection types. + "Counter", + "Deque", + "Dict", + "DefaultDict", + "List", + "Set", + "FrozenSet", + "NamedTuple", # Not really a type. + "Generator", +] + +not_shareables = [ + # singletons + True, + False, + NotImplemented, + ..., + # builtin types and objects + type, + object, + object(), + Exception(), + 42, + 100.0, + "spam", + # user-defined types and objects + Cheese, + Cheese("Wensleydale"), + SubBytes(b"spam"), +] + +if "PYTHON" in os.environ: + add_compiler(compiler_from_env()) +else: + # for compiler in compilers.values(): + # add_compiler(compiler) + add_compiler(compilers[(7.0, 32)]) + # add_compiler(compilers[(7.1, 64)]) + +# Comment before function. +def inline_comments_in_brackets_ruin_everything(): + if typedargslist: + parameters.children = [children[0], body, children[-1]] # (1 # )1 + parameters.children = [ + children[0], + body, + children[-1], # type: ignore + ] + else: + parameters.children = [ + parameters.children[0], # (2 what if this was actually long + body, + parameters.children[-1], # )2 + ] + parameters.children = [parameters.what_if_this_was_actually_long.children[0], body, parameters.children[-1]] # type: ignore + if ( + self._proc is not None + # has the child process finished? + and self._returncode is None + # the child process has finished, but the + # transport hasn't been notified yet? + and self._proc.poll() is None + ): + pass + # no newline before or after + short = [ + # one + 1, + # two + 2, + ] + + # no newline after + call( + arg1, + arg2, + """ +short +""", + arg3=True, + ) + + ############################################################################ + + call2( + # short + arg1, + # but + arg2, + # multiline + """ +short +""", + # yup + arg3=True, + ) + lcomp = [ + element for element in collection if element is not None # yup # yup # right + ] + lcomp2 = [ + # hello + element + # yup + for element in collection + # right + if element is not None + ] + lcomp3 = [ + # This one is actually too long to fit in a single line. + element.split("\n", 1)[0] + # yup + for element in collection.select_elements() + # right + if element is not None + ] + while True: + if False: + continue + + # and round and round we go + # and round and round we go + + # let's return + return Node( + syms.simple_stmt, + [Node(statement, result), Leaf(token.NEWLINE, "\n")], # FIXME: \r\n? + ) + + +CONFIG_FILES = ( + [ + CONFIG_FILE, + ] + + SHARED_CONFIG_FILES + + USER_CONFIG_FILES +) # type: Final + + +class Test: + def _init_host(self, parsed) -> None: + if parsed.hostname is None or not parsed.hostname.strip(): # type: ignore + pass + + +####################### +### SECTION COMMENT ### +####################### + + +instruction() # comment with bad spacing + +# END COMMENTS +# MORE END COMMENTS diff --git a/.vim/bundle/black/tests/data/comments3.py b/.vim/bundle/black/tests/data/comments3.py new file mode 100644 index 0000000..fbbef6d --- /dev/null +++ b/.vim/bundle/black/tests/data/comments3.py @@ -0,0 +1,47 @@ +# The percent-percent comments are Spyder IDE cells. + +#%% +def func(): + x = """ + a really long string + """ + lcomp3 = [ + # This one is actually too long to fit in a single line. + element.split("\n", 1)[0] + # yup + for element in collection.select_elements() + # right + if element is not None + ] + # Capture each of the exceptions in the MultiError along with each of their causes and contexts + if isinstance(exc_value, MultiError): + embedded = [] + for exc in exc_value.exceptions: + if exc not in _seen: + embedded.append( + # This should be left alone (before) + traceback.TracebackException.from_exception( + exc, + limit=limit, + lookup_lines=lookup_lines, + capture_locals=capture_locals, + # copy the set of _seen exceptions so that duplicates + # shared between sub-exceptions are not omitted + _seen=set(_seen), + ) + # This should be left alone (after) + ) + + # everything is fine if the expression isn't nested + traceback.TracebackException.from_exception( + exc, + limit=limit, + lookup_lines=lookup_lines, + capture_locals=capture_locals, + # copy the set of _seen exceptions so that duplicates + # shared between sub-exceptions are not omitted + _seen=set(_seen), + ) + + +#%% \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/comments4.py b/.vim/bundle/black/tests/data/comments4.py new file mode 100644 index 0000000..2147d41 --- /dev/null +++ b/.vim/bundle/black/tests/data/comments4.py @@ -0,0 +1,94 @@ +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent, # NOT DRY +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent as component, # DRY +) + + +class C: + @pytest.mark.parametrize( + ("post_data", "message"), + [ + # metadata_version errors. + ( + {}, + "None is an invalid value for Metadata-Version. Error: This field is" + " required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "-1"}, + "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" + " Version see" + " https://packaging.python.org/specifications/core-metadata", + ), + # name errors. + ( + {"metadata_version": "1.2"}, + "'' is an invalid value for Name. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "1.2", "name": "foo-"}, + "'foo-' is an invalid value for Name. Error: Must start and end with a" + " letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata", + ), + # version errors. + ( + {"metadata_version": "1.2", "name": "example"}, + "'' is an invalid value for Version. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "1.2", "name": "example", "version": "dog"}, + "'dog' is an invalid value for Version. Error: Must start and end with" + " a letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata", + ), + ], + ) + def test_fails_invalid_post_data( + self, pyramid_config, db_request, post_data, message + ): + pyramid_config.testing_securitypolicy(userid=1) + db_request.POST = MultiDict(post_data) + + +def foo(list_a, list_b): + results = ( + User.query.filter(User.foo == "bar") + .filter( # Because foo. + db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) + ) + .filter(User.xyz.is_(None)) + # Another comment about the filtering on is_quux goes here. + .filter(db.not_(User.is_pending.astext.cast(db.Boolean).is_(True))) + .order_by(User.created_at.desc()) + .with_for_update(key_share=True) + .all() + ) + return results + + +def foo2(list_a, list_b): + # Standalone comment reasonably placed. + return ( + User.query.filter(User.foo == "bar") + .filter( + db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) + ) + .filter(User.xyz.is_(None)) + ) + + +def foo3(list_a, list_b): + return ( + # Standlone comment but weirdly placed. + User.query.filter(User.foo == "bar") + .filter( + db.or_(User.field_a.astext.in_(list_a), User.field_b.astext.in_(list_b)) + ) + .filter(User.xyz.is_(None)) + ) diff --git a/.vim/bundle/black/tests/data/comments5.py b/.vim/bundle/black/tests/data/comments5.py new file mode 100644 index 0000000..d83b6b8 --- /dev/null +++ b/.vim/bundle/black/tests/data/comments5.py @@ -0,0 +1,71 @@ +while True: + if something.changed: + do.stuff() # trailing comment + # Comment belongs to the `if` block. + # This one belongs to the `while` block. + + # Should this one, too? I guess so. + +# This one is properly standalone now. + +for i in range(100): + # first we do this + if i % 33 == 0: + break + + # then we do this + print(i) + # and finally we loop around + +with open(some_temp_file) as f: + data = f.read() + +try: + with open(some_other_file) as w: + w.write(data) + +except OSError: + print("problems") + +import sys + + +# leading function comment +def wat(): + ... + # trailing function comment + + +# SECTION COMMENT + + +# leading 1 +@deco1 +# leading 2 +@deco2(with_args=True) +# leading 3 +@deco3 +def decorated1(): + ... + + +# leading 1 +@deco1 +# leading 2 +@deco2(with_args=True) +# leading function comment +def decorated1(): + ... + + +# Note: crappy but inevitable. The current design of EmptyLineTracker doesn't +# allow this to work correctly. The user will have to split those lines by +# hand. +some_instruction +# This comment should be split from `some_instruction` by two lines but isn't. +def g(): + ... + + +if __name__ == "__main__": + main() diff --git a/.vim/bundle/black/tests/data/comments6.py b/.vim/bundle/black/tests/data/comments6.py new file mode 100644 index 0000000..735c6aa --- /dev/null +++ b/.vim/bundle/black/tests/data/comments6.py @@ -0,0 +1,118 @@ +from typing import Any, Tuple + + +def f( + a, # type: int +): + pass + + +# test type comments +def f(a, b, c, d, e, f, g, h, i): + # type: (int, int, int, int, int, int, int, int, int) -> None + pass + + +def f( + a, # type: int + b, # type: int + c, # type: int + d, # type: int + e, # type: int + f, # type: int + g, # type: int + h, # type: int + i, # type: int +): + # type: (...) -> None + pass + + +def f( + arg, # type: int + *args, # type: *Any + default=False, # type: bool + **kwargs, # type: **Any +): + # type: (...) -> None + pass + + +def f( + a, # type: int + b, # type: int + c, # type: int + d, # type: int +): + # type: (...) -> None + + element = 0 # type: int + another_element = 1 # type: float + another_element_with_long_name = 2 # type: int + another_really_really_long_element_with_a_unnecessarily_long_name_to_describe_what_it_does_enterprise_style = ( + 3 + ) # type: int + an_element_with_a_long_value = calls() or more_calls() and more() # type: bool + + tup = ( + another_element, + another_really_really_long_element_with_a_unnecessarily_long_name_to_describe_what_it_does_enterprise_style, + ) # type: Tuple[int, int] + + a = ( + element + + another_element + + another_element_with_long_name + + element + + another_element + + another_element_with_long_name + ) # type: int + + +def f( + x, # not a type comment + y, # type: int +): + # type: (...) -> None + pass + + +def f( + x, # not a type comment +): # type: (int) -> None + pass + + +def func( + a=some_list[0], # type: int +): # type: () -> int + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + a[-1], # type: ignore + ) + + c = call( + "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa" # type: ignore + ) + + +result = ( # aaa + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +) + +AAAAAAAAAAAAA = [AAAAAAAAAAAAA] + SHARED_AAAAAAAAAAAAA + USER_AAAAAAAAAAAAA + AAAAAAAAAAAAA # type: ignore + +call_to_some_function_asdf( + foo, + [AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAAAAAAAAA, BBBBBBBBBBBB], # type: ignore +) + +aaaaaaaaaaaaa, bbbbbbbbb = map(list, map(itertools.chain.from_iterable, zip(*items))) # type: ignore[arg-type] diff --git a/.vim/bundle/black/tests/data/comments7.py b/.vim/bundle/black/tests/data/comments7.py new file mode 100644 index 0000000..ca9d7c6 --- /dev/null +++ b/.vim/bundle/black/tests/data/comments7.py @@ -0,0 +1,271 @@ +from .config import ( + Any, + Bool, + ConfigType, + ConfigTypeAttributes, + Int, + Path, + # String, + # resolve_to_config_type, + # DEFAULT_TYPE_ATTRIBUTES, +) + + +from .config import ( + Any, + Bool, + ConfigType, + ConfigTypeAttributes, + Int, + no_comma_here_yet + # and some comments, + # resolve_to_config_type, + # DEFAULT_TYPE_ATTRIBUTES, +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent # NOT DRY +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent as component # DRY +) + + +result = 1 # look ma, no comment migration xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + +result = ( + 1 # look ma, no comment migration xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +) + +result = ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # aaa +) + +result = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # aaa + + +def func(): + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0789, + a[-1], # type: ignore + ) + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0789, + a[-1] # type: ignore + ) + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + a[-1] # type: ignore + ) + + # The type: ignore exception only applies to line length, not + # other types of formatting. + c = call( + "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", # type: ignore + "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa", "aaaaaaaa" + ) + + +class C: + @pytest.mark.parametrize( + ("post_data", "message"), + [ + # metadata_version errors. + ( + {}, + "None is an invalid value for Metadata-Version. Error: This field is" + " required. see" + " https://packaging.python.org/specifications/core-metadata" + ), + ( + {"metadata_version": "-1"}, + "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" + " Version see" + " https://packaging.python.org/specifications/core-metadata" + ), + # name errors. + ( + {"metadata_version": "1.2"}, + "'' is an invalid value for Name. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata" + ), + ( + {"metadata_version": "1.2", "name": "foo-"}, + "'foo-' is an invalid value for Name. Error: Must start and end with a" + " letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata" + ), + # version errors. + ( + {"metadata_version": "1.2", "name": "example"}, + "'' is an invalid value for Version. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata" + ), + ( + {"metadata_version": "1.2", "name": "example", "version": "dog"}, + "'dog' is an invalid value for Version. Error: Must start and end with" + " a letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata" + ) + ] + ) + def test_fails_invalid_post_data( + self, pyramid_config, db_request, post_data, message + ): + ... + +square = Square(4) # type: Optional[Square] + +# output + +from .config import ( + Any, + Bool, + ConfigType, + ConfigTypeAttributes, + Int, + Path, + # String, + # resolve_to_config_type, + # DEFAULT_TYPE_ATTRIBUTES, +) + + +from .config import ( + Any, + Bool, + ConfigType, + ConfigTypeAttributes, + Int, + no_comma_here_yet, + # and some comments, + # resolve_to_config_type, + # DEFAULT_TYPE_ATTRIBUTES, +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent, # NOT DRY +) +from com.my_lovely_company.my_lovely_team.my_lovely_project.my_lovely_component import ( + MyLovelyCompanyTeamProjectComponent as component, # DRY +) + + +result = 1 # look ma, no comment migration xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + +result = 1 # look ma, no comment migration xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + +result = ( # aaa + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +) + +result = ( # aaa + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +) + + +def func(): + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0789, + a[-1], # type: ignore + ) + c = call(0.0123, 0.0456, 0.0789, 0.0123, 0.0789, a[-1]) # type: ignore + c = call( + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + 0.0123, + 0.0456, + 0.0789, + a[-1], # type: ignore + ) + + # The type: ignore exception only applies to line length, not + # other types of formatting. + c = call( + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", # type: ignore + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + "aaaaaaaa", + ) + + +class C: + @pytest.mark.parametrize( + ("post_data", "message"), + [ + # metadata_version errors. + ( + {}, + "None is an invalid value for Metadata-Version. Error: This field is" + " required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "-1"}, + "'-1' is an invalid value for Metadata-Version. Error: Unknown Metadata" + " Version see" + " https://packaging.python.org/specifications/core-metadata", + ), + # name errors. + ( + {"metadata_version": "1.2"}, + "'' is an invalid value for Name. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "1.2", "name": "foo-"}, + "'foo-' is an invalid value for Name. Error: Must start and end with a" + " letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata", + ), + # version errors. + ( + {"metadata_version": "1.2", "name": "example"}, + "'' is an invalid value for Version. Error: This field is required. see" + " https://packaging.python.org/specifications/core-metadata", + ), + ( + {"metadata_version": "1.2", "name": "example", "version": "dog"}, + "'dog' is an invalid value for Version. Error: Must start and end with" + " a letter or numeral and contain only ascii numeric and '.', '_' and" + " '-'. see https://packaging.python.org/specifications/core-metadata", + ), + ], + ) + def test_fails_invalid_post_data( + self, pyramid_config, db_request, post_data, message + ): + ... + + +square = Square(4) # type: Optional[Square] diff --git a/.vim/bundle/black/tests/data/comments_non_breaking_space.py b/.vim/bundle/black/tests/data/comments_non_breaking_space.py new file mode 100644 index 0000000..e17c3f4 --- /dev/null +++ b/.vim/bundle/black/tests/data/comments_non_breaking_space.py @@ -0,0 +1,44 @@ +from .config import ( ConfigTypeAttributes, Int, Path, # String, + # DEFAULT_TYPE_ATTRIBUTES, +) + +result = 1 # A simple comment +result = ( 1, ) # Another one + +result = 1 # type: ignore +result = 1# This comment is talking about type: ignore +square = Square(4) # type: Optional[Square] + +def function(a:int=42): + """ This docstring is already formatted + a + b + """ + #  There's a NBSP + 3 spaces before + # And 4 spaces on the next line + pass + +# output +from .config import ( + ConfigTypeAttributes, + Int, + Path, # String, + # DEFAULT_TYPE_ATTRIBUTES, +) + +result = 1 # A simple comment +result = (1,) # Another one + +result = 1 #  type: ignore +result = 1 # This comment is talking about type: ignore +square = Square(4) #  type: Optional[Square] + + +def function(a: int = 42): + """This docstring is already formatted + a + b + """ + # There's a NBSP + 3 spaces before + # And 4 spaces on the next line + pass diff --git a/.vim/bundle/black/tests/data/composition.py b/.vim/bundle/black/tests/data/composition.py new file mode 100644 index 0000000..e429f15 --- /dev/null +++ b/.vim/bundle/black/tests/data/composition.py @@ -0,0 +1,181 @@ +class C: + def test(self) -> None: + with patch("black.out", print): + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file failed to reformat." + ) + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 1 file left unchanged, 1 file failed to reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 1 file left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + for i in (a,): + if ( + # Rule 1 + i % 2 == 0 + # Rule 2 + and i % 3 == 0 + ): + while ( + # Just a comment + call() + # Another + ): + print(i) + xxxxxxxxxxxxxxxx = Yyyy2YyyyyYyyyyy( + push_manager=context.request.resource_manager, + max_items_to_push=num_items, + batch_size=Yyyy2YyyyYyyyyYyyy.FULL_SIZE, + ).push( + # Only send the first n items. + items=items[:num_items] + ) + return ( + 'Utterly failed doctest test for %s\n File "%s", line %s, in %s\n\n%s' + % (test.name, test.filename, lineno, lname, err) + ) + + def omitting_trailers(self) -> None: + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex] + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex][TwoLevelIndex][ThreeLevelIndex][FourLevelIndex] + d[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][ + 22 + ] + assignment = ( + some.rather.elaborate.rule() and another.rule.ending_with.index[123] + ) + + def easy_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } + + def tricky_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ), "Not what we expected" + + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected, ( + "Not what we expected and the message is too long to fit in one line" + ) + + assert expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ) == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, ( + "Not what we expected and the message is too long to fit in one line" + " because it's too long" + ) + + dis_c_instance_method = """\ + %3d 0 LOAD_FAST 1 (x) + 2 LOAD_CONST 1 (1) + 4 COMPARE_OP 2 (==) + 6 LOAD_FAST 0 (self) + 8 STORE_ATTR 0 (x) + 10 LOAD_CONST 0 (None) + 12 RETURN_VALUE + """ % ( + _C.__init__.__code__.co_firstlineno + 1, + ) + + assert ( + expectedexpectedexpectedexpectedexpectedexpectedexpectedexpectedexpect + == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } + ) diff --git a/.vim/bundle/black/tests/data/composition_no_trailing_comma.py b/.vim/bundle/black/tests/data/composition_no_trailing_comma.py new file mode 100644 index 0000000..f17b89d --- /dev/null +++ b/.vim/bundle/black/tests/data/composition_no_trailing_comma.py @@ -0,0 +1,367 @@ +class C: + def test(self) -> None: + with patch("black.out", print): + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file failed to reformat." + ) + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 1 file left unchanged, 1 file failed to reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 1 file left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + for i in (a,): + if ( + # Rule 1 + i % 2 == 0 + # Rule 2 + and i % 3 == 0 + ): + while ( + # Just a comment + call() + # Another + ): + print(i) + xxxxxxxxxxxxxxxx = Yyyy2YyyyyYyyyyy( + push_manager=context.request.resource_manager, + max_items_to_push=num_items, + batch_size=Yyyy2YyyyYyyyyYyyy.FULL_SIZE + ).push( + # Only send the first n items. + items=items[:num_items] + ) + return ( + 'Utterly failed doctest test for %s\n File "%s", line %s, in %s\n\n%s' + % (test.name, test.filename, lineno, lname, err) + ) + + def omitting_trailers(self) -> None: + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex] + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex][TwoLevelIndex][ThreeLevelIndex][FourLevelIndex] + d[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][ + 22 + ] + assignment = ( + some.rather.elaborate.rule() and another.rule.ending_with.index[123] + ) + + def easy_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + } == expected, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + } + + def tricky_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + } == expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ), "Not what we expected" + + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + } == expected, ( + "Not what we expected and the message is too long to fit in one line" + ) + + assert expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ) == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + }, ( + "Not what we expected and the message is too long to fit in one line" + " because it's too long" + ) + + dis_c_instance_method = """\ + %3d 0 LOAD_FAST 1 (x) + 2 LOAD_CONST 1 (1) + 4 COMPARE_OP 2 (==) + 6 LOAD_FAST 0 (self) + 8 STORE_ATTR 0 (x) + 10 LOAD_CONST 0 (None) + 12 RETURN_VALUE + """ % ( + _C.__init__.__code__.co_firstlineno + 1, + ) + + assert ( + expectedexpectedexpectedexpectedexpectedexpectedexpectedexpectedexpect + == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9 + } + ) + + + +# output + +class C: + def test(self) -> None: + with patch("black.out", print): + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file failed to reformat." + ) + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 1 file left unchanged, 1 file failed to reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 1 file left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + for i in (a,): + if ( + # Rule 1 + i % 2 == 0 + # Rule 2 + and i % 3 == 0 + ): + while ( + # Just a comment + call() + # Another + ): + print(i) + xxxxxxxxxxxxxxxx = Yyyy2YyyyyYyyyyy( + push_manager=context.request.resource_manager, + max_items_to_push=num_items, + batch_size=Yyyy2YyyyYyyyyYyyy.FULL_SIZE, + ).push( + # Only send the first n items. + items=items[:num_items] + ) + return ( + 'Utterly failed doctest test for %s\n File "%s", line %s, in %s\n\n%s' + % (test.name, test.filename, lineno, lname, err) + ) + + def omitting_trailers(self) -> None: + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex] + get_collection( + hey_this_is_a_very_long_call, it_has_funny_attributes, really=True + )[OneLevelIndex][TwoLevelIndex][ThreeLevelIndex][FourLevelIndex] + d[0][1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21][ + 22 + ] + assignment = ( + some.rather.elaborate.rule() and another.rule.ending_with.index[123] + ) + + def easy_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } + + def tricky_asserts(self) -> None: + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ), "Not what we expected" + + assert { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } == expected, ( + "Not what we expected and the message is too long to fit in one line" + ) + + assert expected( + value, is_going_to_be="too long to fit in a single line", srsly=True + ) == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, "Not what we expected" + + assert expected == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + }, ( + "Not what we expected and the message is too long to fit in one line" + " because it's too long" + ) + + dis_c_instance_method = """\ + %3d 0 LOAD_FAST 1 (x) + 2 LOAD_CONST 1 (1) + 4 COMPARE_OP 2 (==) + 6 LOAD_FAST 0 (self) + 8 STORE_ATTR 0 (x) + 10 LOAD_CONST 0 (None) + 12 RETURN_VALUE + """ % ( + _C.__init__.__code__.co_firstlineno + 1, + ) + + assert ( + expectedexpectedexpectedexpectedexpectedexpectedexpectedexpectedexpect + == { + key1: value1, + key2: value2, + key3: value3, + key4: value4, + key5: value5, + key6: value6, + key7: value7, + key8: value8, + key9: value9, + } + ) diff --git a/.vim/bundle/black/tests/data/debug_visitor.out b/.vim/bundle/black/tests/data/debug_visitor.out new file mode 100644 index 0000000..fa60010 --- /dev/null +++ b/.vim/bundle/black/tests/data/debug_visitor.out @@ -0,0 +1,810 @@ +file_input + decorated + decorator + AT + '@' + NAME + 'dataclass' + NEWLINE + '\n' + /decorator + classdef + NAME + 'class' + NAME + ' ' + 'DebugVisitor' + LPAR + '(' + power + NAME + 'Visitor' + trailer + LSQB + '[' + NAME + 'T' + RSQB + ']' + /trailer + /power + RPAR + ')' + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + expr_stmt + NAME + ' ' + 'tree_depth' + annassign + COLON + ':' + NAME + ' ' + 'int' + EQUAL + ' ' + '=' + NUMBER + ' ' + '0' + /annassign + /expr_stmt + NEWLINE + '\n' + /simple_stmt + funcdef + NAME + '\n ' + 'def' + NAME + ' ' + 'visit_default' + parameters + LPAR + '(' + typedargslist + NAME + 'self' + COMMA + ',' + tname + NAME + ' ' + 'node' + COLON + ':' + NAME + ' ' + 'LN' + /tname + /typedargslist + RPAR + ')' + /parameters + RARROW + ' ' + '->' + power + NAME + ' ' + 'Iterator' + trailer + LSQB + '[' + NAME + 'T' + RSQB + ']' + /trailer + /power + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + expr_stmt + NAME + ' ' + 'indent' + EQUAL + ' ' + '=' + term + STRING + ' ' + "' '" + STAR + ' ' + '*' + atom + LPAR + ' ' + '(' + term + NUMBER + '2' + STAR + ' ' + '*' + power + NAME + ' ' + 'self' + trailer + DOT + '.' + NAME + 'tree_depth' + /trailer + /power + /term + RPAR + ')' + /atom + /term + /expr_stmt + NEWLINE + '\n' + /simple_stmt + if_stmt + NAME + ' ' + 'if' + power + NAME + ' ' + 'isinstance' + trailer + LPAR + '(' + arglist + NAME + 'node' + COMMA + ',' + NAME + ' ' + 'Node' + /arglist + RPAR + ')' + /trailer + /power + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + expr_stmt + NAME + ' ' + '_type' + EQUAL + ' ' + '=' + power + NAME + ' ' + 'type_repr' + trailer + LPAR + '(' + power + NAME + 'node' + trailer + DOT + '.' + NAME + 'type' + /trailer + /power + RPAR + ')' + /trailer + /power + /expr_stmt + NEWLINE + '\n' + /simple_stmt + simple_stmt + power + NAME + ' ' + 'out' + trailer + LPAR + '(' + arglist + STRING + "f'{indent}{_type}'" + COMMA + ',' + argument + NAME + ' ' + 'fg' + EQUAL + '=' + STRING + "'yellow'" + /argument + /arglist + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + simple_stmt + expr_stmt + power + NAME + ' ' + 'self' + trailer + DOT + '.' + NAME + 'tree_depth' + /trailer + /power + PLUSEQUAL + ' ' + '+=' + NUMBER + ' ' + '1' + /expr_stmt + NEWLINE + '\n' + /simple_stmt + for_stmt + NAME + ' ' + 'for' + NAME + ' ' + 'child' + NAME + ' ' + 'in' + power + NAME + ' ' + 'node' + trailer + DOT + '.' + NAME + 'children' + /trailer + /power + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + yield_expr + NAME + ' ' + 'yield' + yield_arg + NAME + ' ' + 'from' + power + NAME + ' ' + 'self' + trailer + DOT + '.' + NAME + 'visit' + /trailer + trailer + LPAR + '(' + NAME + 'child' + RPAR + ')' + /trailer + /power + /yield_arg + /yield_expr + NEWLINE + '\n' + /simple_stmt + DEDENT + '' + /suite + /for_stmt + simple_stmt + expr_stmt + power + NAME + '\n ' + 'self' + trailer + DOT + '.' + NAME + 'tree_depth' + /trailer + /power + MINEQUAL + ' ' + '-=' + NUMBER + ' ' + '1' + /expr_stmt + NEWLINE + '\n' + /simple_stmt + simple_stmt + power + NAME + ' ' + 'out' + trailer + LPAR + '(' + arglist + STRING + "f'{indent}/{_type}'" + COMMA + ',' + argument + NAME + ' ' + 'fg' + EQUAL + '=' + STRING + "'yellow'" + /argument + COMMA + ',' + argument + NAME + ' ' + 'bold' + EQUAL + '=' + NAME + 'False' + /argument + /arglist + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + DEDENT + '' + /suite + NAME + ' ' + 'else' + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + expr_stmt + NAME + ' ' + '_type' + EQUAL + ' ' + '=' + power + NAME + ' ' + 'token' + trailer + DOT + '.' + NAME + 'tok_name' + /trailer + trailer + DOT + '.' + NAME + 'get' + /trailer + trailer + LPAR + '(' + arglist + power + NAME + 'node' + trailer + DOT + '.' + NAME + 'type' + /trailer + /power + COMMA + ',' + power + NAME + ' ' + 'str' + trailer + LPAR + '(' + power + NAME + 'node' + trailer + DOT + '.' + NAME + 'type' + /trailer + /power + RPAR + ')' + /trailer + /power + /arglist + RPAR + ')' + /trailer + /power + /expr_stmt + NEWLINE + '\n' + /simple_stmt + simple_stmt + power + NAME + ' ' + 'out' + trailer + LPAR + '(' + arglist + STRING + "f'{indent}{_type}'" + COMMA + ',' + argument + NAME + ' ' + 'fg' + EQUAL + '=' + STRING + "'blue'" + /argument + COMMA + ',' + argument + NAME + ' ' + 'nl' + EQUAL + '=' + NAME + 'False' + /argument + /arglist + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + if_stmt + NAME + ' ' + 'if' + power + NAME + ' ' + 'node' + trailer + DOT + '.' + NAME + 'prefix' + /trailer + /power + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + power + NAME + " # We don't have to handle prefixes for `Node` objects since\n # that delegates to the first child anyway.\n " + 'out' + trailer + LPAR + '(' + arglist + STRING + "f' {node.prefix!r}'" + COMMA + ',' + argument + NAME + ' ' + 'fg' + EQUAL + '=' + STRING + "'green'" + /argument + COMMA + ',' + argument + NAME + ' ' + 'bold' + EQUAL + '=' + NAME + 'False' + /argument + COMMA + ',' + argument + NAME + ' ' + 'nl' + EQUAL + '=' + NAME + 'False' + /argument + /arglist + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + DEDENT + '' + /suite + /if_stmt + simple_stmt + power + NAME + ' ' + 'out' + trailer + LPAR + '(' + arglist + STRING + "f' {node.value!r}'" + COMMA + ',' + argument + NAME + ' ' + 'fg' + EQUAL + '=' + STRING + "'blue'" + /argument + COMMA + ',' + argument + NAME + ' ' + 'bold' + EQUAL + '=' + NAME + 'False' + /argument + /arglist + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + DEDENT + '' + /suite + /if_stmt + DEDENT + '' + /suite + /funcdef + decorated + decorator + AT + '\n ' + '@' + NAME + 'classmethod' + NEWLINE + '\n' + /decorator + funcdef + NAME + ' ' + 'def' + NAME + ' ' + 'show' + parameters + LPAR + '(' + typedargslist + NAME + 'cls' + COMMA + ',' + tname + NAME + ' ' + 'code' + COLON + ':' + NAME + ' ' + 'str' + /tname + /typedargslist + RPAR + ')' + /parameters + RARROW + ' ' + '->' + NAME + ' ' + 'None' + COLON + ':' + suite + NEWLINE + '\n' + INDENT + '' + simple_stmt + STRING + ' ' + '"""Pretty-prints a given string of `code`.\n\n Convenience method for debugging.\n """' + NEWLINE + '\n' + /simple_stmt + simple_stmt + expr_stmt + NAME + ' ' + 'v' + annassign + COLON + ':' + power + NAME + ' ' + 'DebugVisitor' + trailer + LSQB + '[' + NAME + 'None' + RSQB + ']' + /trailer + /power + EQUAL + ' ' + '=' + power + NAME + ' ' + 'DebugVisitor' + trailer + LPAR + '(' + RPAR + ')' + /trailer + /power + /annassign + /expr_stmt + NEWLINE + '\n' + /simple_stmt + simple_stmt + power + NAME + ' ' + 'list' + trailer + LPAR + '(' + power + NAME + 'v' + trailer + DOT + '.' + NAME + 'visit' + /trailer + trailer + LPAR + '(' + power + NAME + 'lib2to3_parse' + trailer + LPAR + '(' + NAME + 'code' + RPAR + ')' + /trailer + /power + RPAR + ')' + /trailer + /power + RPAR + ')' + /trailer + /power + NEWLINE + '\n' + /simple_stmt + DEDENT + '' + /suite + /funcdef + /decorated + DEDENT + '' + /suite + /classdef + /decorated + ENDMARKER + '' +/file_input diff --git a/.vim/bundle/black/tests/data/debug_visitor.py b/.vim/bundle/black/tests/data/debug_visitor.py new file mode 100644 index 0000000..d1d1ba1 --- /dev/null +++ b/.vim/bundle/black/tests/data/debug_visitor.py @@ -0,0 +1,32 @@ +@dataclass +class DebugVisitor(Visitor[T]): + tree_depth: int = 0 + + def visit_default(self, node: LN) -> Iterator[T]: + indent = ' ' * (2 * self.tree_depth) + if isinstance(node, Node): + _type = type_repr(node.type) + out(f'{indent}{_type}', fg='yellow') + self.tree_depth += 1 + for child in node.children: + yield from self.visit(child) + + self.tree_depth -= 1 + out(f'{indent}/{_type}', fg='yellow', bold=False) + else: + _type = token.tok_name.get(node.type, str(node.type)) + out(f'{indent}{_type}', fg='blue', nl=False) + if node.prefix: + # We don't have to handle prefixes for `Node` objects since + # that delegates to the first child anyway. + out(f' {node.prefix!r}', fg='green', bold=False, nl=False) + out(f' {node.value!r}', fg='blue', bold=False) + + @classmethod + def show(cls, code: str) -> None: + """Pretty-prints a given string of `code`. + + Convenience method for debugging. + """ + v: DebugVisitor[None] = DebugVisitor() + list(v.visit(lib2to3_parse(code))) diff --git a/.vim/bundle/black/tests/data/decorators.py b/.vim/bundle/black/tests/data/decorators.py new file mode 100644 index 0000000..a0f38ca --- /dev/null +++ b/.vim/bundle/black/tests/data/decorators.py @@ -0,0 +1,182 @@ +# This file doesn't use the standard decomposition. +# Decorator syntax test cases are separated by double # comments. +# Those before the 'output' comment are valid under the old syntax. +# Those after the 'ouput' comment require PEP614 relaxed syntax. +# Do not remove the double # separator before the first test case, it allows +# the comment before the test case to be ignored. + +## + +@decorator +def f(): + ... + +## + +@decorator() +def f(): + ... + +## + +@decorator(arg) +def f(): + ... + +## + +@decorator(kwarg=0) +def f(): + ... + +## + +@decorator(*args) +def f(): + ... + +## + +@decorator(**kwargs) +def f(): + ... + +## + +@decorator(*args, **kwargs) +def f(): + ... + +## + +@decorator(*args, **kwargs,) +def f(): + ... + +## + +@dotted.decorator +def f(): + ... + +## + +@dotted.decorator(arg) +def f(): + ... + +## + +@dotted.decorator(kwarg=0) +def f(): + ... + +## + +@dotted.decorator(*args) +def f(): + ... + +## + +@dotted.decorator(**kwargs) +def f(): + ... + +## + +@dotted.decorator(*args, **kwargs) +def f(): + ... + +## + +@dotted.decorator(*args, **kwargs,) +def f(): + ... + +## + +@double.dotted.decorator +def f(): + ... + +## + +@double.dotted.decorator(arg) +def f(): + ... + +## + +@double.dotted.decorator(kwarg=0) +def f(): + ... + +## + +@double.dotted.decorator(*args) +def f(): + ... + +## + +@double.dotted.decorator(**kwargs) +def f(): + ... + +## + +@double.dotted.decorator(*args, **kwargs) +def f(): + ... + +## + +@double.dotted.decorator(*args, **kwargs,) +def f(): + ... + +## + +@_(sequence["decorator"]) +def f(): + ... + +## + +@eval("sequence['decorator']") +def f(): + ... + +# output + +## + +@decorator()() +def f(): + ... + +## + +@(decorator) +def f(): + ... + +## + +@sequence["decorator"] +def f(): + ... + +## + +@decorator[List[str]] +def f(): + ... + +## + +@var := decorator +def f(): + ... \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/docstring.py b/.vim/bundle/black/tests/data/docstring.py new file mode 100644 index 0000000..96bcf52 --- /dev/null +++ b/.vim/bundle/black/tests/data/docstring.py @@ -0,0 +1,377 @@ +class MyClass: + """ Multiline + class docstring + """ + + def method(self): + """Multiline + method docstring + """ + pass + + +def foo(): + """This is a docstring with + some lines of text here + """ + return + + +def bar(): + '''This is another docstring + with more lines of text + ''' + return + + +def baz(): + '''"This" is a string with some + embedded "quotes"''' + return + + +def troz(): + '''Indentation with tabs + is just as OK + ''' + return + + +def zort(): + """Another + multiline + docstring + """ + pass + +def poit(): + """ + Lorem ipsum dolor sit amet. + + Consectetur adipiscing elit: + - sed do eiusmod tempor incididunt ut labore + - dolore magna aliqua + - enim ad minim veniam + - quis nostrud exercitation ullamco laboris nisi + - aliquip ex ea commodo consequat + """ + pass + + +def under_indent(): + """ + These lines are indented in a way that does not +make sense. + """ + pass + + +def over_indent(): + """ + This has a shallow indent + - But some lines are deeper + - And the closing quote is too deep + """ + pass + + +def single_line(): + """But with a newline after it! + + """ + pass + + +def this(): + r""" + 'hey ho' + """ + + +def that(): + """ "hey yah" """ + + +def and_that(): + """ + "hey yah" """ + + +def and_this(): + ''' + "hey yah"''' + + +def multiline_whitespace(): + ''' + + + + + ''' + + +def oneline_whitespace(): + ''' ''' + + +def empty(): + """""" + + +def single_quotes(): + 'testing' + + +def believe_it_or_not_this_is_in_the_py_stdlib(): ''' +"hey yah"''' + + +def ignored_docstring(): + """a => \ +b""" + +def single_line_docstring_with_whitespace(): + """ This should be stripped """ + +def docstring_with_inline_tabs_and_space_indentation(): + """hey + + tab separated value + tab at start of line and then a tab separated value + multiple tabs at the beginning and inline + mixed tabs and spaces at beginning. next line has mixed tabs and spaces only. + + line ends with some tabs + """ + + +def docstring_with_inline_tabs_and_tab_indentation(): + """hey + + tab separated value + tab at start of line and then a tab separated value + multiple tabs at the beginning and inline + mixed tabs and spaces at beginning. next line has mixed tabs and spaces only. + + line ends with some tabs + """ + pass + + +def backslash_space(): + """\ """ + + +def multiline_backslash_1(): + ''' + hey\there\ + \ ''' + + +def multiline_backslash_2(): + ''' + hey there \ ''' + + +def multiline_backslash_3(): + ''' + already escaped \\ ''' + + +def my_god_its_full_of_stars_1(): + "I'm sorry Dave\u2001" + + +# the space below is actually a \u2001, removed in output +def my_god_its_full_of_stars_2(): + "I'm sorry Dave " + + +# output + +class MyClass: + """Multiline + class docstring + """ + + def method(self): + """Multiline + method docstring + """ + pass + + +def foo(): + """This is a docstring with + some lines of text here + """ + return + + +def bar(): + """This is another docstring + with more lines of text + """ + return + + +def baz(): + '''"This" is a string with some + embedded "quotes"''' + return + + +def troz(): + """Indentation with tabs + is just as OK + """ + return + + +def zort(): + """Another + multiline + docstring + """ + pass + + +def poit(): + """ + Lorem ipsum dolor sit amet. + + Consectetur adipiscing elit: + - sed do eiusmod tempor incididunt ut labore + - dolore magna aliqua + - enim ad minim veniam + - quis nostrud exercitation ullamco laboris nisi + - aliquip ex ea commodo consequat + """ + pass + + +def under_indent(): + """ + These lines are indented in a way that does not + make sense. + """ + pass + + +def over_indent(): + """ + This has a shallow indent + - But some lines are deeper + - And the closing quote is too deep + """ + pass + + +def single_line(): + """But with a newline after it!""" + pass + + +def this(): + r""" + 'hey ho' + """ + + +def that(): + """ "hey yah" """ + + +def and_that(): + """ + "hey yah" """ + + +def and_this(): + ''' + "hey yah"''' + + +def multiline_whitespace(): + """ """ + + +def oneline_whitespace(): + """ """ + + +def empty(): + """""" + + +def single_quotes(): + "testing" + + +def believe_it_or_not_this_is_in_the_py_stdlib(): + ''' + "hey yah"''' + + +def ignored_docstring(): + """a => \ +b""" + + +def single_line_docstring_with_whitespace(): + """This should be stripped""" + + +def docstring_with_inline_tabs_and_space_indentation(): + """hey + + tab separated value + tab at start of line and then a tab separated value + multiple tabs at the beginning and inline + mixed tabs and spaces at beginning. next line has mixed tabs and spaces only. + + line ends with some tabs + """ + + +def docstring_with_inline_tabs_and_tab_indentation(): + """hey + + tab separated value + tab at start of line and then a tab separated value + multiple tabs at the beginning and inline + mixed tabs and spaces at beginning. next line has mixed tabs and spaces only. + + line ends with some tabs + """ + pass + + +def backslash_space(): + """\ """ + + +def multiline_backslash_1(): + """ + hey\there\ + \ """ + + +def multiline_backslash_2(): + """ + hey there \ """ + + +def multiline_backslash_3(): + """ + already escaped \\""" + + +def my_god_its_full_of_stars_1(): + "I'm sorry Dave\u2001" + + +# the space below is actually a \u2001, removed in output +def my_god_its_full_of_stars_2(): + "I'm sorry Dave" diff --git a/.vim/bundle/black/tests/data/docstring_no_string_normalization.py b/.vim/bundle/black/tests/data/docstring_no_string_normalization.py new file mode 100644 index 0000000..a90b578 --- /dev/null +++ b/.vim/bundle/black/tests/data/docstring_no_string_normalization.py @@ -0,0 +1,249 @@ +class ALonelyClass: + ''' + A multiline class docstring. + ''' + def AnEquallyLonelyMethod(self): + ''' + A multiline method docstring''' + pass + + +def one_function(): + '''This is a docstring with a single line of text.''' + pass + + +def shockingly_the_quotes_are_normalized(): + '''This is a multiline docstring. + This is a multiline docstring. + This is a multiline docstring. + ''' + pass + + +def foo(): + """This is a docstring with + some lines of text here + """ + return + + +def baz(): + '''"This" is a string with some + embedded "quotes"''' + return + + +def poit(): + """ + Lorem ipsum dolor sit amet. + + Consectetur adipiscing elit: + - sed do eiusmod tempor incididunt ut labore + - dolore magna aliqua + - enim ad minim veniam + - quis nostrud exercitation ullamco laboris nisi + - aliquip ex ea commodo consequat + """ + pass + + +def under_indent(): + """ + These lines are indented in a way that does not +make sense. + """ + pass + + +def over_indent(): + """ + This has a shallow indent + - But some lines are deeper + - And the closing quote is too deep + """ + pass + + +def single_line(): + """But with a newline after it! + + """ + pass + + +def this(): + r""" + 'hey ho' + """ + + +def that(): + """ "hey yah" """ + + +def and_that(): + """ + "hey yah" """ + + +def and_this(): + ''' + "hey yah"''' + + +def believe_it_or_not_this_is_in_the_py_stdlib(): ''' +"hey yah"''' + + +def shockingly_the_quotes_are_normalized_v2(): + ''' + Docstring Docstring Docstring + ''' + pass + + +def backslash_space(): + '\ ' + + +def multiline_backslash_1(): + ''' + hey\there\ + \ ''' + + +def multiline_backslash_2(): + ''' + hey there \ ''' + + +def multiline_backslash_3(): + ''' + already escaped \\ ''' + +# output + +class ALonelyClass: + ''' + A multiline class docstring. + ''' + + def AnEquallyLonelyMethod(self): + ''' + A multiline method docstring''' + pass + + +def one_function(): + '''This is a docstring with a single line of text.''' + pass + + +def shockingly_the_quotes_are_normalized(): + '''This is a multiline docstring. + This is a multiline docstring. + This is a multiline docstring. + ''' + pass + + +def foo(): + """This is a docstring with + some lines of text here + """ + return + + +def baz(): + '''"This" is a string with some + embedded "quotes"''' + return + + +def poit(): + """ + Lorem ipsum dolor sit amet. + + Consectetur adipiscing elit: + - sed do eiusmod tempor incididunt ut labore + - dolore magna aliqua + - enim ad minim veniam + - quis nostrud exercitation ullamco laboris nisi + - aliquip ex ea commodo consequat + """ + pass + + +def under_indent(): + """ + These lines are indented in a way that does not + make sense. + """ + pass + + +def over_indent(): + """ + This has a shallow indent + - But some lines are deeper + - And the closing quote is too deep + """ + pass + + +def single_line(): + """But with a newline after it!""" + pass + + +def this(): + r""" + 'hey ho' + """ + + +def that(): + """ "hey yah" """ + + +def and_that(): + """ + "hey yah" """ + + +def and_this(): + ''' + "hey yah"''' + + +def believe_it_or_not_this_is_in_the_py_stdlib(): + ''' + "hey yah"''' + + +def shockingly_the_quotes_are_normalized_v2(): + ''' + Docstring Docstring Docstring + ''' + pass + + +def backslash_space(): + '\ ' + + +def multiline_backslash_1(): + ''' + hey\there\ + \ ''' + + +def multiline_backslash_2(): + ''' + hey there \ ''' + + +def multiline_backslash_3(): + ''' + already escaped \\''' diff --git a/.vim/bundle/black/tests/data/empty_lines.py b/.vim/bundle/black/tests/data/empty_lines.py new file mode 100644 index 0000000..4c03e43 --- /dev/null +++ b/.vim/bundle/black/tests/data/empty_lines.py @@ -0,0 +1,187 @@ +"""Docstring.""" + + +# leading comment +def f(): + NO = '' + SPACE = ' ' + DOUBLESPACE = ' ' + + t = leaf.type + p = leaf.parent # trailing comment + v = leaf.value + + if t in ALWAYS_NO_SPACE: + pass + if t == token.COMMENT: # another trailing comment + return DOUBLESPACE + + + assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" + + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + + + return NO + + + if prevp.type == token.EQUAL: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.argument, + }: + return NO + + elif prevp.type == token.DOUBLESTAR: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.dictsetmaker, + }: + return NO + +############################################################################### +# SECTION BECAUSE SECTIONS +############################################################################### + +def g(): + NO = '' + SPACE = ' ' + DOUBLESPACE = ' ' + + t = leaf.type + p = leaf.parent + v = leaf.value + + # Comment because comments + + if t in ALWAYS_NO_SPACE: + pass + if t == token.COMMENT: + return DOUBLESPACE + + # Another comment because more comments + assert p is not None, f'INTERNAL ERROR: hand-made leaf without parent: {leaf!r}' + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + + if not prevp or prevp.type in OPENING_BRACKETS: + # Start of the line or a bracketed expression. + # More than one line for the comment. + return NO + + if prevp.type == token.EQUAL: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.argument, + }: + return NO + + +# output + + +"""Docstring.""" + + +# leading comment +def f(): + NO = "" + SPACE = " " + DOUBLESPACE = " " + + t = leaf.type + p = leaf.parent # trailing comment + v = leaf.value + + if t in ALWAYS_NO_SPACE: + pass + if t == token.COMMENT: # another trailing comment + return DOUBLESPACE + + assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + if not prevp or prevp.type in OPENING_BRACKETS: + + return NO + + if prevp.type == token.EQUAL: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.argument, + }: + return NO + + elif prevp.type == token.DOUBLESTAR: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.dictsetmaker, + }: + return NO + + +############################################################################### +# SECTION BECAUSE SECTIONS +############################################################################### + + +def g(): + NO = "" + SPACE = " " + DOUBLESPACE = " " + + t = leaf.type + p = leaf.parent + v = leaf.value + + # Comment because comments + + if t in ALWAYS_NO_SPACE: + pass + if t == token.COMMENT: + return DOUBLESPACE + + # Another comment because more comments + assert p is not None, f"INTERNAL ERROR: hand-made leaf without parent: {leaf!r}" + + prev = leaf.prev_sibling + if not prev: + prevp = preceding_leaf(p) + + if not prevp or prevp.type in OPENING_BRACKETS: + # Start of the line or a bracketed expression. + # More than one line for the comment. + return NO + + if prevp.type == token.EQUAL: + if prevp.parent and prevp.parent.type in { + syms.typedargslist, + syms.varargslist, + syms.parameters, + syms.arglist, + syms.argument, + }: + return NO diff --git a/.vim/bundle/black/tests/data/empty_pyproject.toml b/.vim/bundle/black/tests/data/empty_pyproject.toml new file mode 100644 index 0000000..8c5274d --- /dev/null +++ b/.vim/bundle/black/tests/data/empty_pyproject.toml @@ -0,0 +1,2 @@ +# Empty pyproject.toml to use with some tests that depend on Python 3.6 autodiscovery +# and so on. diff --git a/.vim/bundle/black/tests/data/expression.diff b/.vim/bundle/black/tests/data/expression.diff new file mode 100644 index 0000000..721a07d --- /dev/null +++ b/.vim/bundle/black/tests/data/expression.diff @@ -0,0 +1,447 @@ +--- [Deterministic header] ++++ [Deterministic header] +@@ -1,8 +1,8 @@ + ... +-'some_string' +-b'\\xa3' ++"some_string" ++b"\\xa3" + Name + None + True + False + 1 +@@ -29,63 +29,96 @@ + ~great + +value + -1 + ~int and not v1 ^ 123 + v2 | True + (~int) and (not ((v1 ^ (123 + v2)) | True)) +-+really ** -confusing ** ~operator ** -precedence +-flags & ~ select.EPOLLIN and waiters.write_task is not None +++(really ** -(confusing ** ~(operator ** -precedence))) ++flags & ~select.EPOLLIN and waiters.write_task is not None + lambda arg: None + lambda a=True: a + lambda a, b, c=True: a +-lambda a, b, c=True, *, d=(1 << v2), e='str': a +-lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b ++lambda a, b, c=True, *, d=(1 << v2), e="str": a ++lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b + manylambdas = lambda x=lambda y=lambda z=1: z: y(): x() +-foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id]) ++foo = lambda port_id, ignore_missing: { ++ "port1": port1_resource, ++ "port2": port2_resource, ++}[port_id] + 1 if True else 2 + str or None if True else str or bytes or None + (str or None) if True else (str or bytes or None) + str or None if (1 if True else 2) else str or bytes or None + (str or None) if (1 if True else 2) else (str or bytes or None) +-((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None)) +-{'2.7': dead, '3.7': (long_live or die_hard)} +-{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}} ++( ++ (super_long_variable_name or None) ++ if (1 if super_long_test_name else 2) ++ else (str or bytes or None) ++) ++{"2.7": dead, "3.7": (long_live or die_hard)} ++{"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}} + {**a, **b, **c} +-{'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')} +-({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None ++{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")} ++({"a": "b"}, (True or False), (+value), "string", b"bytes") or None + () + (1,) + (1, 2) + (1, 2, 3) + [] + [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)] +-[1, 2, 3,] ++[ ++ 1, ++ 2, ++ 3, ++] + [*a] + [*range(10)] +-[*a, 4, 5,] +-[4, *a, 5,] +-[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more] ++[ ++ *a, ++ 4, ++ 5, ++] ++[ ++ 4, ++ *a, ++ 5, ++] ++[ ++ this_is_a_very_long_variable_which_will_force_a_delimiter_split, ++ element, ++ another, ++ *more, ++] + {i for i in (1, 2, 3)} + {(i ** 2) for i in (1, 2, 3)} +-{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))} ++{(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))} + {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)} + [i for i in (1, 2, 3)] + [(i ** 2) for i in (1, 2, 3)] +-[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))] ++[(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))] + [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)] + {i: 0 for i in (1, 2, 3)} +-{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))} ++{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))} + {a: b * 2 for a, b in dictionary.items()} + {a: b * -2 for a, b in dictionary.items()} +-{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension} ++{ ++ k: v ++ for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension ++} + Python3 > Python2 > COBOL + Life is Life + call() + call(arg) +-call(kwarg='hey') +-call(arg, kwarg='hey') +-call(arg, another, kwarg='hey', **kwargs) +-call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs) # note: no trailing comma pre-3.6 ++call(kwarg="hey") ++call(arg, kwarg="hey") ++call(arg, another, kwarg="hey", **kwargs) ++call( ++ this_is_a_very_long_variable_which_will_force_a_delimiter_split, ++ arg, ++ another, ++ kwarg="hey", ++ **kwargs ++) # note: no trailing comma pre-3.6 + call(*gidgets[:2]) + call(a, *gidgets[:2]) + call(**self.screen_kwargs) + call(b, **self.screen_kwargs) + lukasz.langa.pl +@@ -94,26 +127,29 @@ + 1.0 .real + ....__class__ + list[str] + dict[str, int] + tuple[str, ...] ++tuple[str, int, float, dict[str, int]] + tuple[ +- str, int, float, dict[str, int] +-] +-tuple[str, int, float, dict[str, int],] ++ str, ++ int, ++ float, ++ dict[str, int], ++] + very_long_variable_name_filters: t.List[ + t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]], + ] + xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) + ) + xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) + ) +-xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[ +- ..., List[SomeClass] +-] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)) # type: ignore ++xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( ++ sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) ++) # type: ignore + slice[0] + slice[0:1] + slice[0:1:2] + slice[:] + slice[:-1] +@@ -137,118 +173,199 @@ + numpy[-(c + 1) :, d] + numpy[:, l[-2]] + numpy[:, ::-1] + numpy[np.newaxis, :] + (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None) +-{'2.7': dead, '3.7': long_live or die_hard} +-{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'} ++{"2.7": dead, "3.7": long_live or die_hard} ++{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"} + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C] + (SomeName) + SomeName + (Good, Bad, Ugly) + (i for i in (1, 2, 3)) + ((i ** 2) for i in (1, 2, 3)) +-((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))) ++((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))) + (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)) + (*starred,) +-{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs} ++{ ++ "id": "1", ++ "type": "type", ++ "started_at": now(), ++ "ended_at": now() + timedelta(days=10), ++ "priority": 1, ++ "import_session_id": 1, ++ **kwargs, ++} + a = (1,) +-b = 1, ++b = (1,) + c = 1 + d = (1,) + a + (2,) + e = (1,).count(1) + f = 1, *range(10) + g = 1, *"ten" +-what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove) +-what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove) +-result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all() +-result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all() ++what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set( ++ vars_to_remove ++) ++what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set( ++ vars_to_remove ++) ++result = ( ++ session.query(models.Customer.id) ++ .filter( ++ models.Customer.account_id == account_id, models.Customer.email == email_address ++ ) ++ .order_by(models.Customer.id.asc()) ++ .all() ++) ++result = ( ++ session.query(models.Customer.id) ++ .filter( ++ models.Customer.account_id == account_id, models.Customer.email == email_address ++ ) ++ .order_by( ++ models.Customer.id.asc(), ++ ) ++ .all() ++) + Ø = set() + authors.łukasz.say_thanks() + mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), + } + ++ + def gen(): + yield from outside_of_generator +- a = (yield) +- b = ((yield)) +- c = (((yield))) ++ a = yield ++ b = yield ++ c = yield ++ + + async def f(): + await some.complicated[0].call(with_args=(True or (1 is not 1))) +-print(* [] or [1]) ++ ++ ++print(*[] or [1]) + print(**{1: 3} if False else {x: x for x in range(3)}) +-print(* lambda x: x) +-assert(not Test),("Short message") +-assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message" +-assert(((parens is TooMany))) +-for x, in (1,), (2,), (3,): ... +-for y in (): ... +-for z in (i for i in (1, 2, 3)): ... +-for i in (call()): ... +-for j in (1 + (2 + 3)): ... +-while(this and that): ... +-for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'): ++print(*lambda x: x) ++assert not Test, "Short message" ++assert this is ComplexTest and not requirements.fit_in_a_single_line( ++ force=False ++), "Short message" ++assert parens is TooMany ++for (x,) in (1,), (2,), (3,): ++ ... ++for y in (): ++ ... ++for z in (i for i in (1, 2, 3)): ++ ... ++for i in call(): ++ ... ++for j in 1 + (2 + 3): ++ ... ++while this and that: ++ ... ++for ( ++ addr_family, ++ addr_type, ++ addr_proto, ++ addr_canonname, ++ addr_sockaddr, ++) in socket.getaddrinfo("google.com", "http"): + pass +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-if ( +- threading.current_thread() != threading.main_thread() and +- threading.current_thread() != threading.main_thread() or +- signal.getsignal(signal.SIGINT) != signal.default_int_handler +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa & +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa / +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n +-): +- return True +-if ( +- ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n +-): +- return True +-if ( +- ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n +-): +- return True +-aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++if ( ++ threading.current_thread() != threading.main_thread() ++ and threading.current_thread() != threading.main_thread() ++ or signal.getsignal(signal.SIGINT) != signal.default_int_handler ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e ++ | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n ++): ++ return True ++if ( ++ ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e ++ | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ++ ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n ++): ++ return True ++if ( ++ ~aaaaaaaaaaaaaaaa.a ++ + aaaaaaaaaaaaaaaa.b ++ - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e ++ | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ++ ^ aaaaaaaaaaaaaaaa.i ++ << aaaaaaaaaaaaaaaa.k ++ >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n ++): ++ return True ++( ++ aaaaaaaaaaaaaaaa ++ + aaaaaaaaaaaaaaaa ++ - aaaaaaaaaaaaaaaa ++ * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++ / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++) + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa +-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++) + bbbb >> bbbb * bbbb +-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++) + last_call() + # standalone comment at ENDMARKER diff --git a/.vim/bundle/black/tests/data/expression.py b/.vim/bundle/black/tests/data/expression.py new file mode 100644 index 0000000..d13450c --- /dev/null +++ b/.vim/bundle/black/tests/data/expression.py @@ -0,0 +1,630 @@ +... +'some_string' +b'\\xa3' +Name +None +True +False +1 +1.0 +1j +True or False +True or False or None +True and False +True and False and None +(Name1 and Name2) or Name3 +Name1 and Name2 or Name3 +Name1 or (Name2 and Name3) +Name1 or Name2 and Name3 +(Name1 and Name2) or (Name3 and Name4) +Name1 and Name2 or Name3 and Name4 +Name1 or (Name2 and Name3) or Name4 +Name1 or Name2 and Name3 or Name4 +v1 << 2 +1 >> v2 +1 % finished +1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8 +((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8) +not great +~great ++value +-1 +~int and not v1 ^ 123 + v2 | True +(~int) and (not ((v1 ^ (123 + v2)) | True)) ++really ** -confusing ** ~operator ** -precedence +flags & ~ select.EPOLLIN and waiters.write_task is not None +lambda arg: None +lambda a=True: a +lambda a, b, c=True: a +lambda a, b, c=True, *, d=(1 << v2), e='str': a +lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b +manylambdas = lambda x=lambda y=lambda z=1: z: y(): x() +foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id]) +1 if True else 2 +str or None if True else str or bytes or None +(str or None) if True else (str or bytes or None) +str or None if (1 if True else 2) else str or bytes or None +(str or None) if (1 if True else 2) else (str or bytes or None) +((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None)) +{'2.7': dead, '3.7': (long_live or die_hard)} +{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}} +{**a, **b, **c} +{'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')} +({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None +() +(1,) +(1, 2) +(1, 2, 3) +[] +[1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)] +[1, 2, 3,] +[*a] +[*range(10)] +[*a, 4, 5,] +[4, *a, 5,] +[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more] +{i for i in (1, 2, 3)} +{(i ** 2) for i in (1, 2, 3)} +{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))} +{((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)} +[i for i in (1, 2, 3)] +[(i ** 2) for i in (1, 2, 3)] +[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))] +[((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)] +{i: 0 for i in (1, 2, 3)} +{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))} +{a: b * 2 for a, b in dictionary.items()} +{a: b * -2 for a, b in dictionary.items()} +{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension} +Python3 > Python2 > COBOL +Life is Life +call() +call(arg) +call(kwarg='hey') +call(arg, kwarg='hey') +call(arg, another, kwarg='hey', **kwargs) +call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs) # note: no trailing comma pre-3.6 +call(*gidgets[:2]) +call(a, *gidgets[:2]) +call(**self.screen_kwargs) +call(b, **self.screen_kwargs) +lukasz.langa.pl +call.me(maybe) +1 .real +1.0 .real +....__class__ +list[str] +dict[str, int] +tuple[str, ...] +tuple[ + str, int, float, dict[str, int] +] +tuple[str, int, float, dict[str, int],] +very_long_variable_name_filters: t.List[ + t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]], +] +xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) +) +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) +) +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[ + ..., List[SomeClass] +] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)) # type: ignore +slice[0] +slice[0:1] +slice[0:1:2] +slice[:] +slice[:-1] +slice[1:] +slice[::-1] +slice[d :: d + 1] +slice[:c, c - 1] +numpy[:, 0:1] +numpy[:, :-1] +numpy[0, :] +numpy[:, i] +numpy[0, :2] +numpy[:N, 0] +numpy[:2, :4] +numpy[2:4, 1:5] +numpy[4:, 2:] +numpy[:, (0, 1, 2, 5)] +numpy[0, [0]] +numpy[:, [i]] +numpy[1 : c + 1, c] +numpy[-(c + 1) :, d] +numpy[:, l[-2]] +numpy[:, ::-1] +numpy[np.newaxis, :] +(str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None) +{'2.7': dead, '3.7': long_live or die_hard} +{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'} +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C] +(SomeName) +SomeName +(Good, Bad, Ugly) +(i for i in (1, 2, 3)) +((i ** 2) for i in (1, 2, 3)) +((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))) +(((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)) +(*starred,) +{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs} +a = (1,) +b = 1, +c = 1 +d = (1,) + a + (2,) +e = (1,).count(1) +f = 1, *range(10) +g = 1, *"ten" +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove) +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove) +result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all() +result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all() +Ø = set() +authors.łukasz.say_thanks() +mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), +} + +def gen(): + yield from outside_of_generator + a = (yield) + b = ((yield)) + c = (((yield))) + +async def f(): + await some.complicated[0].call(with_args=(True or (1 is not 1))) +print(* [] or [1]) +print(**{1: 3} if False else {x: x for x in range(3)}) +print(* lambda x: x) +assert(not Test),("Short message") +assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message" +assert(((parens is TooMany))) +for x, in (1,), (2,), (3,): ... +for y in (): ... +for z in (i for i in (1, 2, 3)): ... +for i in (call()): ... +for j in (1 + (2 + 3)): ... +while(this and that): ... +for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'): + pass +a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +if ( + threading.current_thread() != threading.main_thread() and + threading.current_thread() != threading.main_thread() or + signal.getsignal(signal.SIGINT) != signal.default_int_handler +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa & + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa / + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n +): + return True +if ( + ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n +): + return True +if ( + ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n +): + return True +aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) +aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +bbbb >> bbbb * bbbb +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +last_call() +# standalone comment at ENDMARKER + + +# output + + +... +"some_string" +b"\\xa3" +Name +None +True +False +1 +1.0 +1j +True or False +True or False or None +True and False +True and False and None +(Name1 and Name2) or Name3 +Name1 and Name2 or Name3 +Name1 or (Name2 and Name3) +Name1 or Name2 and Name3 +(Name1 and Name2) or (Name3 and Name4) +Name1 and Name2 or Name3 and Name4 +Name1 or (Name2 and Name3) or Name4 +Name1 or Name2 and Name3 or Name4 +v1 << 2 +1 >> v2 +1 % finished +1 + v2 - v3 * 4 ^ 5 ** v6 / 7 // 8 +((1 + v2) - (v3 * 4)) ^ (((5 ** v6) / 7) // 8) +not great +~great ++value +-1 +~int and not v1 ^ 123 + v2 | True +(~int) and (not ((v1 ^ (123 + v2)) | True)) ++(really ** -(confusing ** ~(operator ** -precedence))) +flags & ~select.EPOLLIN and waiters.write_task is not None +lambda arg: None +lambda a=True: a +lambda a, b, c=True: a +lambda a, b, c=True, *, d=(1 << v2), e="str": a +lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b +manylambdas = lambda x=lambda y=lambda z=1: z: y(): x() +foo = lambda port_id, ignore_missing: { + "port1": port1_resource, + "port2": port2_resource, +}[port_id] +1 if True else 2 +str or None if True else str or bytes or None +(str or None) if True else (str or bytes or None) +str or None if (1 if True else 2) else str or bytes or None +(str or None) if (1 if True else 2) else (str or bytes or None) +( + (super_long_variable_name or None) + if (1 if super_long_test_name else 2) + else (str or bytes or None) +) +{"2.7": dead, "3.7": (long_live or die_hard)} +{"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}} +{**a, **b, **c} +{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")} +({"a": "b"}, (True or False), (+value), "string", b"bytes") or None +() +(1,) +(1, 2) +(1, 2, 3) +[] +[1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)] +[ + 1, + 2, + 3, +] +[*a] +[*range(10)] +[ + *a, + 4, + 5, +] +[ + 4, + *a, + 5, +] +[ + this_is_a_very_long_variable_which_will_force_a_delimiter_split, + element, + another, + *more, +] +{i for i in (1, 2, 3)} +{(i ** 2) for i in (1, 2, 3)} +{(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))} +{((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)} +[i for i in (1, 2, 3)] +[(i ** 2) for i in (1, 2, 3)] +[(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))] +[((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)] +{i: 0 for i in (1, 2, 3)} +{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))} +{a: b * 2 for a, b in dictionary.items()} +{a: b * -2 for a, b in dictionary.items()} +{ + k: v + for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension +} +Python3 > Python2 > COBOL +Life is Life +call() +call(arg) +call(kwarg="hey") +call(arg, kwarg="hey") +call(arg, another, kwarg="hey", **kwargs) +call( + this_is_a_very_long_variable_which_will_force_a_delimiter_split, + arg, + another, + kwarg="hey", + **kwargs +) # note: no trailing comma pre-3.6 +call(*gidgets[:2]) +call(a, *gidgets[:2]) +call(**self.screen_kwargs) +call(b, **self.screen_kwargs) +lukasz.langa.pl +call.me(maybe) +1 .real +1.0 .real +....__class__ +list[str] +dict[str, int] +tuple[str, ...] +tuple[str, int, float, dict[str, int]] +tuple[ + str, + int, + float, + dict[str, int], +] +very_long_variable_name_filters: t.List[ + t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]], +] +xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) +) +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) +) +xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) +) # type: ignore +slice[0] +slice[0:1] +slice[0:1:2] +slice[:] +slice[:-1] +slice[1:] +slice[::-1] +slice[d :: d + 1] +slice[:c, c - 1] +numpy[:, 0:1] +numpy[:, :-1] +numpy[0, :] +numpy[:, i] +numpy[0, :2] +numpy[:N, 0] +numpy[:2, :4] +numpy[2:4, 1:5] +numpy[4:, 2:] +numpy[:, (0, 1, 2, 5)] +numpy[0, [0]] +numpy[:, [i]] +numpy[1 : c + 1, c] +numpy[-(c + 1) :, d] +numpy[:, l[-2]] +numpy[:, ::-1] +numpy[np.newaxis, :] +(str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None) +{"2.7": dead, "3.7": long_live or die_hard} +{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"} +[1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C] +(SomeName) +SomeName +(Good, Bad, Ugly) +(i for i in (1, 2, 3)) +((i ** 2) for i in (1, 2, 3)) +((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))) +(((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)) +(*starred,) +{ + "id": "1", + "type": "type", + "started_at": now(), + "ended_at": now() + timedelta(days=10), + "priority": 1, + "import_session_id": 1, + **kwargs, +} +a = (1,) +b = (1,) +c = 1 +d = (1,) + a + (2,) +e = (1,).count(1) +f = 1, *range(10) +g = 1, *"ten" +what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set( + vars_to_remove +) +what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set( + vars_to_remove +) +result = ( + session.query(models.Customer.id) + .filter( + models.Customer.account_id == account_id, models.Customer.email == email_address + ) + .order_by(models.Customer.id.asc()) + .all() +) +result = ( + session.query(models.Customer.id) + .filter( + models.Customer.account_id == account_id, models.Customer.email == email_address + ) + .order_by( + models.Customer.id.asc(), + ) + .all() +) +Ø = set() +authors.łukasz.say_thanks() +mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), +} + + +def gen(): + yield from outside_of_generator + a = yield + b = yield + c = yield + + +async def f(): + await some.complicated[0].call(with_args=(True or (1 is not 1))) + + +print(*[] or [1]) +print(**{1: 3} if False else {x: x for x in range(3)}) +print(*lambda x: x) +assert not Test, "Short message" +assert this is ComplexTest and not requirements.fit_in_a_single_line( + force=False +), "Short message" +assert parens is TooMany +for (x,) in (1,), (2,), (3,): + ... +for y in (): + ... +for z in (i for i in (1, 2, 3)): + ... +for i in call(): + ... +for j in 1 + (2 + 3): + ... +while this and that: + ... +for ( + addr_family, + addr_type, + addr_proto, + addr_canonname, + addr_sockaddr, +) in socket.getaddrinfo("google.com", "http"): + pass +a = ( + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp + in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +) +a = ( + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp + not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +) +a = ( + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp + is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +) +a = ( + aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp + is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +) +if ( + threading.current_thread() != threading.main_thread() + and threading.current_thread() != threading.main_thread() + or signal.getsignal(signal.SIGINT) != signal.default_int_handler +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +): + return True +if ( + ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e + | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n +): + return True +if ( + ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e + | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h + ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n +): + return True +if ( + ~aaaaaaaaaaaaaaaa.a + + aaaaaaaaaaaaaaaa.b + - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e + | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h + ^ aaaaaaaaaaaaaaaa.i + << aaaaaaaaaaaaaaaa.k + >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n +): + return True +( + aaaaaaaaaaaaaaaa + + aaaaaaaaaaaaaaaa + - aaaaaaaaaaaaaaaa + * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) + / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) +) +aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa +( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +) +bbbb >> bbbb * bbbb +( + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +) +last_call() +# standalone comment at ENDMARKER diff --git a/.vim/bundle/black/tests/data/expression_skip_magic_trailing_comma.diff b/.vim/bundle/black/tests/data/expression_skip_magic_trailing_comma.diff new file mode 100644 index 0000000..4a8a95c --- /dev/null +++ b/.vim/bundle/black/tests/data/expression_skip_magic_trailing_comma.diff @@ -0,0 +1,428 @@ +--- [Deterministic header] ++++ [Deterministic header] +@@ -1,8 +1,8 @@ + ... +-'some_string' +-b'\\xa3' ++"some_string" ++b"\\xa3" + Name + None + True + False + 1 +@@ -29,63 +29,84 @@ + ~great + +value + -1 + ~int and not v1 ^ 123 + v2 | True + (~int) and (not ((v1 ^ (123 + v2)) | True)) +-+really ** -confusing ** ~operator ** -precedence +-flags & ~ select.EPOLLIN and waiters.write_task is not None +++(really ** -(confusing ** ~(operator ** -precedence))) ++flags & ~select.EPOLLIN and waiters.write_task is not None + lambda arg: None + lambda a=True: a + lambda a, b, c=True: a +-lambda a, b, c=True, *, d=(1 << v2), e='str': a +-lambda a, b, c=True, *vararg, d=(v1 << 2), e='str', **kwargs: a + b ++lambda a, b, c=True, *, d=(1 << v2), e="str": a ++lambda a, b, c=True, *vararg, d=(v1 << 2), e="str", **kwargs: a + b + manylambdas = lambda x=lambda y=lambda z=1: z: y(): x() +-foo = (lambda port_id, ignore_missing: {"port1": port1_resource, "port2": port2_resource}[port_id]) ++foo = lambda port_id, ignore_missing: { ++ "port1": port1_resource, ++ "port2": port2_resource, ++}[port_id] + 1 if True else 2 + str or None if True else str or bytes or None + (str or None) if True else (str or bytes or None) + str or None if (1 if True else 2) else str or bytes or None + (str or None) if (1 if True else 2) else (str or bytes or None) +-((super_long_variable_name or None) if (1 if super_long_test_name else 2) else (str or bytes or None)) +-{'2.7': dead, '3.7': (long_live or die_hard)} +-{'2.7': dead, '3.7': (long_live or die_hard), **{'3.6': verygood}} ++( ++ (super_long_variable_name or None) ++ if (1 if super_long_test_name else 2) ++ else (str or bytes or None) ++) ++{"2.7": dead, "3.7": (long_live or die_hard)} ++{"2.7": dead, "3.7": (long_live or die_hard), **{"3.6": verygood}} + {**a, **b, **c} +-{'2.7', '3.6', '3.7', '3.8', '3.9', ('4.0' if gilectomy else '3.10')} +-({'a': 'b'}, (True or False), (+value), 'string', b'bytes') or None ++{"2.7", "3.6", "3.7", "3.8", "3.9", ("4.0" if gilectomy else "3.10")} ++({"a": "b"}, (True or False), (+value), "string", b"bytes") or None + () + (1,) + (1, 2) + (1, 2, 3) + [] + [1, 2, 3, 4, 5, 6, 7, 8, 9, (10 or A), (11 or B), (12 or C)] +-[1, 2, 3,] ++[1, 2, 3] + [*a] + [*range(10)] +-[*a, 4, 5,] +-[4, *a, 5,] +-[this_is_a_very_long_variable_which_will_force_a_delimiter_split, element, another, *more] ++[*a, 4, 5] ++[4, *a, 5] ++[ ++ this_is_a_very_long_variable_which_will_force_a_delimiter_split, ++ element, ++ another, ++ *more, ++] + {i for i in (1, 2, 3)} + {(i ** 2) for i in (1, 2, 3)} +-{(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))} ++{(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))} + {((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)} + [i for i in (1, 2, 3)] + [(i ** 2) for i in (1, 2, 3)] +-[(i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))] ++[(i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))] + [((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)] + {i: 0 for i in (1, 2, 3)} +-{i: j for i, j in ((1, 'a'), (2, 'b'), (3, 'c'))} ++{i: j for i, j in ((1, "a"), (2, "b"), (3, "c"))} + {a: b * 2 for a, b in dictionary.items()} + {a: b * -2 for a, b in dictionary.items()} +-{k: v for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension} ++{ ++ k: v ++ for k, v in this_is_a_very_long_variable_which_will_cause_a_trailing_comma_which_breaks_the_comprehension ++} + Python3 > Python2 > COBOL + Life is Life + call() + call(arg) +-call(kwarg='hey') +-call(arg, kwarg='hey') +-call(arg, another, kwarg='hey', **kwargs) +-call(this_is_a_very_long_variable_which_will_force_a_delimiter_split, arg, another, kwarg='hey', **kwargs) # note: no trailing comma pre-3.6 ++call(kwarg="hey") ++call(arg, kwarg="hey") ++call(arg, another, kwarg="hey", **kwargs) ++call( ++ this_is_a_very_long_variable_which_will_force_a_delimiter_split, ++ arg, ++ another, ++ kwarg="hey", ++ **kwargs ++) # note: no trailing comma pre-3.6 + call(*gidgets[:2]) + call(a, *gidgets[:2]) + call(**self.screen_kwargs) + call(b, **self.screen_kwargs) + lukasz.langa.pl +@@ -94,26 +115,24 @@ + 1.0 .real + ....__class__ + list[str] + dict[str, int] + tuple[str, ...] +-tuple[ +- str, int, float, dict[str, int] +-] ++tuple[str, int, float, dict[str, int]] + tuple[str, int, float, dict[str, int],] + very_long_variable_name_filters: t.List[ + t.Tuple[str, t.Union[str, t.List[t.Optional[str]]]], + ] + xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) + ) + xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( # type: ignore + sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) + ) +-xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[ +- ..., List[SomeClass] +-] = classmethod(sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__)) # type: ignore ++xxxx_xxx_xxxx_xxxxx_xxxx_xxx: Callable[..., List[SomeClass]] = classmethod( ++ sync(async_xxxx_xxx_xxxx_xxxxx_xxxx_xxx.__func__) ++) # type: ignore + slice[0] + slice[0:1] + slice[0:1:2] + slice[:] + slice[:-1] +@@ -137,118 +156,197 @@ + numpy[-(c + 1) :, d] + numpy[:, l[-2]] + numpy[:, ::-1] + numpy[np.newaxis, :] + (str or None) if (sys.version_info[0] > (3,)) else (str or bytes or None) +-{'2.7': dead, '3.7': long_live or die_hard} +-{'2.7', '3.6', '3.7', '3.8', '3.9', '4.0' if gilectomy else '3.10'} ++{"2.7": dead, "3.7": long_live or die_hard} ++{"2.7", "3.6", "3.7", "3.8", "3.9", "4.0" if gilectomy else "3.10"} + [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 or A, 11 or B, 12 or C] + (SomeName) + SomeName + (Good, Bad, Ugly) + (i for i in (1, 2, 3)) + ((i ** 2) for i in (1, 2, 3)) +-((i ** 2) for i, _ in ((1, 'a'), (2, 'b'), (3, 'c'))) ++((i ** 2) for i, _ in ((1, "a"), (2, "b"), (3, "c"))) + (((i ** 2) + j) for i in (1, 2, 3) for j in (1, 2, 3)) + (*starred,) +-{"id": "1","type": "type","started_at": now(),"ended_at": now() + timedelta(days=10),"priority": 1,"import_session_id": 1,**kwargs} ++{ ++ "id": "1", ++ "type": "type", ++ "started_at": now(), ++ "ended_at": now() + timedelta(days=10), ++ "priority": 1, ++ "import_session_id": 1, ++ **kwargs, ++} + a = (1,) +-b = 1, ++b = (1,) + c = 1 + d = (1,) + a + (2,) + e = (1,).count(1) + f = 1, *range(10) + g = 1, *"ten" +-what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set(vars_to_remove) +-what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set(vars_to_remove) +-result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc()).all() +-result = session.query(models.Customer.id).filter(models.Customer.account_id == account_id, models.Customer.email == email_address).order_by(models.Customer.id.asc(),).all() ++what_is_up_with_those_new_coord_names = (coord_names + set(vars_to_create)) + set( ++ vars_to_remove ++) ++what_is_up_with_those_new_coord_names = (coord_names | set(vars_to_create)) - set( ++ vars_to_remove ++) ++result = ( ++ session.query(models.Customer.id) ++ .filter( ++ models.Customer.account_id == account_id, models.Customer.email == email_address ++ ) ++ .order_by(models.Customer.id.asc()) ++ .all() ++) ++result = ( ++ session.query(models.Customer.id) ++ .filter( ++ models.Customer.account_id == account_id, models.Customer.email == email_address ++ ) ++ .order_by(models.Customer.id.asc()) ++ .all() ++) + Ø = set() + authors.łukasz.say_thanks() + mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), + } + ++ + def gen(): + yield from outside_of_generator +- a = (yield) +- b = ((yield)) +- c = (((yield))) ++ a = yield ++ b = yield ++ c = yield ++ + + async def f(): + await some.complicated[0].call(with_args=(True or (1 is not 1))) +-print(* [] or [1]) ++ ++ ++print(*[] or [1]) + print(**{1: 3} if False else {x: x for x in range(3)}) +-print(* lambda x: x) +-assert(not Test),("Short message") +-assert this is ComplexTest and not requirements.fit_in_a_single_line(force=False), "Short message" +-assert(((parens is TooMany))) +-for x, in (1,), (2,), (3,): ... +-for y in (): ... +-for z in (i for i in (1, 2, 3)): ... +-for i in (call()): ... +-for j in (1 + (2 + 3)): ... +-while(this and that): ... +-for addr_family, addr_type, addr_proto, addr_canonname, addr_sockaddr in socket.getaddrinfo('google.com', 'http'): ++print(*lambda x: x) ++assert not Test, "Short message" ++assert this is ComplexTest and not requirements.fit_in_a_single_line( ++ force=False ++), "Short message" ++assert parens is TooMany ++for (x,) in (1,), (2,), (3,): ++ ... ++for y in (): ++ ... ++for z in (i for i in (1, 2, 3)): ++ ... ++for i in call(): ++ ... ++for j in 1 + (2 + 3): ++ ... ++while this and that: ++ ... ++for ( ++ addr_family, ++ addr_type, ++ addr_proto, ++ addr_canonname, ++ addr_sockaddr, ++) in socket.getaddrinfo("google.com", "http"): + pass +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-a = aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz +-if ( +- threading.current_thread() != threading.main_thread() and +- threading.current_thread() != threading.main_thread() or +- signal.getsignal(signal.SIGINT) != signal.default_int_handler +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa & +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa / +- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +-): +- return True +-if ( +- ~ aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n +-): +- return True +-if ( +- ~ aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n +-): +- return True +-if ( +- ~ aaaaaaaaaaaaaaaa.a + aaaaaaaaaaaaaaaa.b - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ^ aaaaaaaaaaaaaaaa.i << aaaaaaaaaaaaaaaa.k >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n +-): +- return True +-aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaa * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ not in qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ is qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++a = ( ++ aaaa.bbbb.cccc.dddd.eeee.ffff.gggg.hhhh.iiii.jjjj.kkkk.llll.mmmm.nnnn.oooo.pppp ++ is not qqqq.rrrr.ssss.tttt.uuuu.vvvv.xxxx.yyyy.zzzz ++) ++if ( ++ threading.current_thread() != threading.main_thread() ++ and threading.current_thread() != threading.main_thread() ++ or signal.getsignal(signal.SIGINT) != signal.default_int_handler ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ / aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++): ++ return True ++if ( ++ ~aaaa.a + aaaa.b - aaaa.c * aaaa.d / aaaa.e ++ | aaaa.f & aaaa.g % aaaa.h ^ aaaa.i << aaaa.k >> aaaa.l ** aaaa.m // aaaa.n ++): ++ return True ++if ( ++ ~aaaaaaaa.a + aaaaaaaa.b - aaaaaaaa.c @ aaaaaaaa.d / aaaaaaaa.e ++ | aaaaaaaa.f & aaaaaaaa.g % aaaaaaaa.h ++ ^ aaaaaaaa.i << aaaaaaaa.k >> aaaaaaaa.l ** aaaaaaaa.m // aaaaaaaa.n ++): ++ return True ++if ( ++ ~aaaaaaaaaaaaaaaa.a ++ + aaaaaaaaaaaaaaaa.b ++ - aaaaaaaaaaaaaaaa.c * aaaaaaaaaaaaaaaa.d @ aaaaaaaaaaaaaaaa.e ++ | aaaaaaaaaaaaaaaa.f & aaaaaaaaaaaaaaaa.g % aaaaaaaaaaaaaaaa.h ++ ^ aaaaaaaaaaaaaaaa.i ++ << aaaaaaaaaaaaaaaa.k ++ >> aaaaaaaaaaaaaaaa.l ** aaaaaaaaaaaaaaaa.m // aaaaaaaaaaaaaaaa.n ++): ++ return True ++( ++ aaaaaaaaaaaaaaaa ++ + aaaaaaaaaaaaaaaa ++ - aaaaaaaaaaaaaaaa ++ * (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++ / (aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa) ++) + aaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaa +-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ >> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ << aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++) + bbbb >> bbbb * bbbb +-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ^bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++( ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ ^ bbbb.a & aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++ ^ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ++) + last_call() + # standalone comment at ENDMARKER diff --git a/.vim/bundle/black/tests/data/fmtonoff.py b/.vim/bundle/black/tests/data/fmtonoff.py new file mode 100644 index 0000000..5a50eb1 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtonoff.py @@ -0,0 +1,413 @@ +#!/usr/bin/env python3 +import asyncio +import sys + +from third_party import X, Y, Z + +from library import some_connection, \ + some_decorator +# fmt: off +from third_party import (X, + Y, Z) +# fmt: on +f'trigger 3.6 mode' +# Comment 1 + +# Comment 2 + +# fmt: off +def func_no_args(): + a; b; c + if True: raise RuntimeError + if False: ... + for i in range(10): + print(i) + continue + exec('new-style exec', {}, {}) + return None +async def coroutine(arg, exec=False): + 'Single-line docstring. Multiline is harder to reformat.' + async with some_connection() as conn: + await conn.do_what_i_mean('SELECT bobby, tables FROM xkcd', timeout=2) + await asyncio.sleep(1) +@asyncio.coroutine +@some_decorator( +with_args=True, +many_args=[1,2,3] +) +def function_signature_stress_test(number:int,no_annotation=None,text:str='default',* ,debug:bool=False,**kwargs) -> str: + return text[number:-1] +# fmt: on +def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r''): + offset = attr.ib(default=attr.Factory( lambda: _r.uniform(1, 2))) + assert task._cancel_stack[:len(old_stack)] == old_stack +def spaces_types(a: int = 1, b: tuple = (), c: list = [], d: dict = {}, e: bool = True, f: int = -1, g: int = 1 if False else 2, h: str = "", i: str = r''): ... +def spaces2(result= _core.Value(None)): + ... +something = { + # fmt: off + key: 'value', +} + +def subscriptlist(): + atom[ + # fmt: off + 'some big and', + 'complex subscript', + # fmt: on + goes + here, andhere, + ] + +def import_as_names(): + # fmt: off + from hello import a, b + 'unformatted' + # fmt: on + +def testlist_star_expr(): + # fmt: off + a , b = *hello + 'unformatted' + # fmt: on + +def yield_expr(): + # fmt: off + yield hello + 'unformatted' + # fmt: on + 'formatted' + # fmt: off + ( yield hello ) + 'unformatted' + # fmt: on + +def example(session): + # fmt: off + result = session\ + .query(models.Customer.id)\ + .filter(models.Customer.account_id == account_id, + models.Customer.email == email_address)\ + .order_by(models.Customer.id.asc())\ + .all() + # fmt: on +def off_and_on_without_data(): + """All comments here are technically on the same prefix. + + The comments between will be formatted. This is a known limitation. + """ + # fmt: off + + + #hey, that won't work + + + # fmt: on + pass +def on_and_off_broken(): + """Another known limitation.""" + # fmt: on + # fmt: off + this=should.not_be.formatted() + and_=indeed . it is not formatted + because . the . handling . inside . generate_ignored_nodes() + now . considers . multiple . fmt . directives . within . one . prefix + # fmt: on + # fmt: off + # ...but comments still get reformatted even though they should not be + # fmt: on +def long_lines(): + if True: + typedargslist.extend( + gen_annotated_params(ast_args.kwonlyargs, ast_args.kw_defaults, parameters, implicit_default=True) + ) + # fmt: off + a = ( + unnecessary_bracket() + ) + # fmt: on + _type_comment_re = re.compile( + r""" + ^ + [\t ]* + \#[ ]type:[ ]* + (?P + [^#\t\n]+? + ) + (? to match + # a trailing space which is why we need the silliness below + (? + (?:\#[^\n]*)? + \n? + ) + $ + """, + # fmt: off + re.MULTILINE|re.VERBOSE + # fmt: on + ) +def single_literal_yapf_disable(): + """Black does not support this.""" + BAZ = { + (1, 2, 3, 4), + (5, 6, 7, 8), + (9, 10, 11, 12) + } # yapf: disable +cfg.rule( + "Default", "address", + xxxx_xxxx=["xxx-xxxxxx-xxxxxxxxxx"], + xxxxxx="xx_xxxxx", xxxxxxx="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + xxxxxxxxx_xxxx=True, xxxxxxxx_xxxxxxxxxx=False, + xxxxxx_xxxxxx=2, xxxxxx_xxxxx_xxxxxxxx=70, xxxxxx_xxxxxx_xxxxx=True, + # fmt: off + xxxxxxx_xxxxxxxxxxxx={ + "xxxxxxxx": { + "xxxxxx": False, + "xxxxxxx": False, + "xxxx_xxxxxx": "xxxxx", + }, + "xxxxxxxx-xxxxx": { + "xxxxxx": False, + "xxxxxxx": True, + "xxxx_xxxxxx": "xxxxxx", + }, + }, + # fmt: on + xxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_xxxxxxxxx=5 +) +# fmt: off +yield 'hello' +# No formatting to the end of the file +l=[1,2,3] +d={'a':1, + 'b':2} + +# output + + +#!/usr/bin/env python3 +import asyncio +import sys + +from third_party import X, Y, Z + +from library import some_connection, some_decorator + +# fmt: off +from third_party import (X, + Y, Z) +# fmt: on +f"trigger 3.6 mode" +# Comment 1 + +# Comment 2 + +# fmt: off +def func_no_args(): + a; b; c + if True: raise RuntimeError + if False: ... + for i in range(10): + print(i) + continue + exec('new-style exec', {}, {}) + return None +async def coroutine(arg, exec=False): + 'Single-line docstring. Multiline is harder to reformat.' + async with some_connection() as conn: + await conn.do_what_i_mean('SELECT bobby, tables FROM xkcd', timeout=2) + await asyncio.sleep(1) +@asyncio.coroutine +@some_decorator( +with_args=True, +many_args=[1,2,3] +) +def function_signature_stress_test(number:int,no_annotation=None,text:str='default',* ,debug:bool=False,**kwargs) -> str: + return text[number:-1] +# fmt: on +def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r""): + offset = attr.ib(default=attr.Factory(lambda: _r.uniform(1, 2))) + assert task._cancel_stack[: len(old_stack)] == old_stack + + +def spaces_types( + a: int = 1, + b: tuple = (), + c: list = [], + d: dict = {}, + e: bool = True, + f: int = -1, + g: int = 1 if False else 2, + h: str = "", + i: str = r"", +): + ... + + +def spaces2(result=_core.Value(None)): + ... + + +something = { + # fmt: off + key: 'value', +} + + +def subscriptlist(): + atom[ + # fmt: off + 'some big and', + 'complex subscript', + # fmt: on + goes + here, + andhere, + ] + + +def import_as_names(): + # fmt: off + from hello import a, b + 'unformatted' + # fmt: on + + +def testlist_star_expr(): + # fmt: off + a , b = *hello + 'unformatted' + # fmt: on + + +def yield_expr(): + # fmt: off + yield hello + 'unformatted' + # fmt: on + "formatted" + # fmt: off + ( yield hello ) + 'unformatted' + # fmt: on + + +def example(session): + # fmt: off + result = session\ + .query(models.Customer.id)\ + .filter(models.Customer.account_id == account_id, + models.Customer.email == email_address)\ + .order_by(models.Customer.id.asc())\ + .all() + # fmt: on + + +def off_and_on_without_data(): + """All comments here are technically on the same prefix. + + The comments between will be formatted. This is a known limitation. + """ + # fmt: off + + # hey, that won't work + + # fmt: on + pass + + +def on_and_off_broken(): + """Another known limitation.""" + # fmt: on + # fmt: off + this=should.not_be.formatted() + and_=indeed . it is not formatted + because . the . handling . inside . generate_ignored_nodes() + now . considers . multiple . fmt . directives . within . one . prefix + # fmt: on + # fmt: off + # ...but comments still get reformatted even though they should not be + # fmt: on + + +def long_lines(): + if True: + typedargslist.extend( + gen_annotated_params( + ast_args.kwonlyargs, + ast_args.kw_defaults, + parameters, + implicit_default=True, + ) + ) + # fmt: off + a = ( + unnecessary_bracket() + ) + # fmt: on + _type_comment_re = re.compile( + r""" + ^ + [\t ]* + \#[ ]type:[ ]* + (?P + [^#\t\n]+? + ) + (? to match + # a trailing space which is why we need the silliness below + (? + (?:\#[^\n]*)? + \n? + ) + $ + """, + # fmt: off + re.MULTILINE|re.VERBOSE + # fmt: on + ) + + +def single_literal_yapf_disable(): + """Black does not support this.""" + BAZ = {(1, 2, 3, 4), (5, 6, 7, 8), (9, 10, 11, 12)} # yapf: disable + + +cfg.rule( + "Default", + "address", + xxxx_xxxx=["xxx-xxxxxx-xxxxxxxxxx"], + xxxxxx="xx_xxxxx", + xxxxxxx="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", + xxxxxxxxx_xxxx=True, + xxxxxxxx_xxxxxxxxxx=False, + xxxxxx_xxxxxx=2, + xxxxxx_xxxxx_xxxxxxxx=70, + xxxxxx_xxxxxx_xxxxx=True, + # fmt: off + xxxxxxx_xxxxxxxxxxxx={ + "xxxxxxxx": { + "xxxxxx": False, + "xxxxxxx": False, + "xxxx_xxxxxx": "xxxxx", + }, + "xxxxxxxx-xxxxx": { + "xxxxxx": False, + "xxxxxxx": True, + "xxxx_xxxxxx": "xxxxxx", + }, + }, + # fmt: on + xxxxxxxxxx_xxxxxxxxxxx_xxxxxxx_xxxxxxxxx=5, +) +# fmt: off +yield 'hello' +# No formatting to the end of the file +l=[1,2,3] +d={'a':1, + 'b':2} diff --git a/.vim/bundle/black/tests/data/fmtonoff2.py b/.vim/bundle/black/tests/data/fmtonoff2.py new file mode 100644 index 0000000..e8657c7 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtonoff2.py @@ -0,0 +1,40 @@ +import pytest + +TmSt = 1 +TmEx = 2 + +# fmt: off + +# Test data: +# Position, Volume, State, TmSt/TmEx/None, [call, [arg1...]] + +@pytest.mark.parametrize('test', [ + + # Test don't manage the volume + [ + ('stuff', 'in') + ], +]) +def test_fader(test): + pass + +def check_fader(test): + + pass + +def verify_fader(test): + # misaligned comment + pass + +def verify_fader(test): + """Hey, ho.""" + assert test.passed() + +def test_calculate_fades(): + calcs = [ + # one is zero/none + (0, 4, 0, 0, 10, 0, 0, 6, 10), + (None, 4, 0, 0, 10, 0, 0, 6, 10), + ] + +# fmt: on diff --git a/.vim/bundle/black/tests/data/fmtonoff3.py b/.vim/bundle/black/tests/data/fmtonoff3.py new file mode 100644 index 0000000..4e3b024 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtonoff3.py @@ -0,0 +1,35 @@ +# fmt: off +x = [ + 1, 2, + 3, 4, +] +# fmt: on + +# fmt: off +x = [ + 1, 2, + 3, 4, +] +# fmt: on + +x = [ + 1, 2, 3, 4 +] + +# output + +# fmt: off +x = [ + 1, 2, + 3, 4, +] +# fmt: on + +# fmt: off +x = [ + 1, 2, + 3, 4, +] +# fmt: on + +x = [1, 2, 3, 4] diff --git a/.vim/bundle/black/tests/data/fmtonoff4.py b/.vim/bundle/black/tests/data/fmtonoff4.py new file mode 100644 index 0000000..4ca7079 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtonoff4.py @@ -0,0 +1,36 @@ +# fmt: off +@test([ + 1, 2, + 3, 4, +]) +# fmt: on +def f(): pass + +@test([ + 1, 2, + 3, 4, +]) +def f(): pass + +# output + +# fmt: off +@test([ + 1, 2, + 3, 4, +]) +# fmt: on +def f(): + pass + + +@test( + [ + 1, + 2, + 3, + 4, + ] +) +def f(): + pass diff --git a/.vim/bundle/black/tests/data/fmtskip.py b/.vim/bundle/black/tests/data/fmtskip.py new file mode 100644 index 0000000..1d5836f --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip.py @@ -0,0 +1,3 @@ +a, b = 1, 2 +c = 6 # fmt: skip +d = 5 diff --git a/.vim/bundle/black/tests/data/fmtskip2.py b/.vim/bundle/black/tests/data/fmtskip2.py new file mode 100644 index 0000000..e624811 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip2.py @@ -0,0 +1,17 @@ +l1 = ["This list should be broken up", "into multiple lines", "because it is way too long"] +l2 = ["But this list shouldn't", "even though it also has", "way too many characters in it"] # fmt: skip +l3 = ["I have", "trailing comma", "so I should be braked",] + +# output + +l1 = [ + "This list should be broken up", + "into multiple lines", + "because it is way too long", +] +l2 = ["But this list shouldn't", "even though it also has", "way too many characters in it"] # fmt: skip +l3 = [ + "I have", + "trailing comma", + "so I should be braked", +] \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/fmtskip3.py b/.vim/bundle/black/tests/data/fmtskip3.py new file mode 100644 index 0000000..6e16688 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip3.py @@ -0,0 +1,20 @@ +a = 3 +# fmt: off +b, c = 1, 2 +d = 6 # fmt: skip +e = 5 +# fmt: on +f = ["This is a very long line that should be formatted into a clearer line ", "by rearranging."] + +# output + +a = 3 +# fmt: off +b, c = 1, 2 +d = 6 # fmt: skip +e = 5 +# fmt: on +f = [ + "This is a very long line that should be formatted into a clearer line ", + "by rearranging.", +] diff --git a/.vim/bundle/black/tests/data/fmtskip4.py b/.vim/bundle/black/tests/data/fmtskip4.py new file mode 100644 index 0000000..aadd77d --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip4.py @@ -0,0 +1,13 @@ +a = 2 +# fmt: skip +l = [1, 2, 3,] + +# output + +a = 2 +# fmt: skip +l = [ + 1, + 2, + 3, +] \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/fmtskip5.py b/.vim/bundle/black/tests/data/fmtskip5.py new file mode 100644 index 0000000..d7b15e0 --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip5.py @@ -0,0 +1,22 @@ +a, b, c = 3, 4, 5 +if ( + a == 3 + and b != 9 # fmt: skip + and c is not None +): + print("I'm good!") +else: + print("I'm bad") + + +# output + +a, b, c = 3, 4, 5 +if ( + a == 3 + and b != 9 # fmt: skip + and c is not None +): + print("I'm good!") +else: + print("I'm bad") diff --git a/.vim/bundle/black/tests/data/fmtskip6.py b/.vim/bundle/black/tests/data/fmtskip6.py new file mode 100644 index 0000000..0a779fc --- /dev/null +++ b/.vim/bundle/black/tests/data/fmtskip6.py @@ -0,0 +1,13 @@ +class A: + def f(self): + for line in range(10): + if True: + pass # fmt: skip + +# output + +class A: + def f(self): + for line in range(10): + if True: + pass # fmt: skip diff --git a/.vim/bundle/black/tests/data/force_py36.py b/.vim/bundle/black/tests/data/force_py36.py new file mode 100644 index 0000000..cad935e --- /dev/null +++ b/.vim/bundle/black/tests/data/force_py36.py @@ -0,0 +1,16 @@ +# The input source must not contain any Py36-specific syntax (e.g. argument type +# annotations, trailing comma after *rest) or this test becomes invalid. +def long_function_name(argument_one, argument_two, argument_three, argument_four, argument_five, argument_six, *rest): ... +# output +# The input source must not contain any Py36-specific syntax (e.g. argument type +# annotations, trailing comma after *rest) or this test becomes invalid. +def long_function_name( + argument_one, + argument_two, + argument_three, + argument_four, + argument_five, + argument_six, + *rest, +): + ... diff --git a/.vim/bundle/black/tests/data/force_pyi.py b/.vim/bundle/black/tests/data/force_pyi.py new file mode 100644 index 0000000..07ed93c --- /dev/null +++ b/.vim/bundle/black/tests/data/force_pyi.py @@ -0,0 +1,65 @@ +from typing import Union + +@bird +def zoo(): ... + +class A: ... +@bar +class B: + def BMethod(self) -> None: ... + @overload + def BMethod(self, arg : List[str]) -> None: ... + +class C: ... +@hmm +class D: ... +class E: ... + +@baz +def foo() -> None: + ... + +class F (A , C): ... +def spam() -> None: ... + +@overload +def spam(arg: str) -> str: ... + +var : int = 1 + +def eggs() -> Union[str, int]: ... + +# output + +from typing import Union + +@bird +def zoo(): ... + +class A: ... + +@bar +class B: + def BMethod(self) -> None: ... + @overload + def BMethod(self, arg: List[str]) -> None: ... + +class C: ... + +@hmm +class D: ... + +class E: ... + +@baz +def foo() -> None: ... + +class F(A, C): ... + +def spam() -> None: ... +@overload +def spam(arg: str) -> str: ... + +var: int = 1 + +def eggs() -> Union[str, int]: ... diff --git a/.vim/bundle/black/tests/data/fstring.py b/.vim/bundle/black/tests/data/fstring.py new file mode 100644 index 0000000..4b33231 --- /dev/null +++ b/.vim/bundle/black/tests/data/fstring.py @@ -0,0 +1,21 @@ +f"f-string without formatted values is just a string" +f"{{NOT a formatted value}}" +f"{{NOT 'a' \"formatted\" \"value\"}}" +f"some f-string with {a} {few():.2f} {formatted.values!r}" +f'some f-string with {a} {few(""):.2f} {formatted.values!r}' +f"{f'''{'nested'} inner'''} outer" +f"\"{f'{nested} inner'}\" outer" +f"space between opening braces: { {a for a in (1, 2, 3)}}" +f'Hello \'{tricky + "example"}\'' + +# output + +f"f-string without formatted values is just a string" +f"{{NOT a formatted value}}" +f'{{NOT \'a\' "formatted" "value"}}' +f"some f-string with {a} {few():.2f} {formatted.values!r}" +f'some f-string with {a} {few(""):.2f} {formatted.values!r}' +f"{f'''{'nested'} inner'''} outer" +f"\"{f'{nested} inner'}\" outer" +f"space between opening braces: { {a for a in (1, 2, 3)}}" +f'Hello \'{tricky + "example"}\'' diff --git a/.vim/bundle/black/tests/data/function.py b/.vim/bundle/black/tests/data/function.py new file mode 100644 index 0000000..2d642c8 --- /dev/null +++ b/.vim/bundle/black/tests/data/function.py @@ -0,0 +1,247 @@ +#!/usr/bin/env python3 +import asyncio +import sys + +from third_party import X, Y, Z + +from library import some_connection, \ + some_decorator +f'trigger 3.6 mode' +def func_no_args(): + a; b; c + if True: raise RuntimeError + if False: ... + for i in range(10): + print(i) + continue + exec("new-style exec", {}, {}) + return None +async def coroutine(arg, exec=False): + "Single-line docstring. Multiline is harder to reformat." + async with some_connection() as conn: + await conn.do_what_i_mean('SELECT bobby, tables FROM xkcd', timeout=2) + await asyncio.sleep(1) +@asyncio.coroutine +@some_decorator( +with_args=True, +many_args=[1,2,3] +) +def function_signature_stress_test(number:int,no_annotation=None,text:str="default",* ,debug:bool=False,**kwargs) -> str: + return text[number:-1] +def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r''): + offset = attr.ib(default=attr.Factory( lambda: _r.uniform(10000, 200000))) + assert task._cancel_stack[:len(old_stack)] == old_stack +def spaces_types(a: int = 1, b: tuple = (), c: list = [], d: dict = {}, e: bool = True, f: int = -1, g: int = 1 if False else 2, h: str = "", i: str = r''): ... +def spaces2(result= _core.Value(None)): + assert fut is self._read_fut, (fut, self._read_fut) + # EMPTY LINE WITH WHITESPACE (this comment will be removed) +def example(session): + result = session.query(models.Customer.id).filter( + models.Customer.account_id == account_id, + models.Customer.email == email_address, + ).order_by( + models.Customer.id.asc() + ).all() +def long_lines(): + if True: + typedargslist.extend( + gen_annotated_params(ast_args.kwonlyargs, ast_args.kw_defaults, parameters, implicit_default=True) + ) + typedargslist.extend( + gen_annotated_params( + ast_args.kwonlyargs, ast_args.kw_defaults, parameters, implicit_default=True, + # trailing standalone comment + ) + ) + _type_comment_re = re.compile( + r""" + ^ + [\t ]* + \#[ ]type:[ ]* + (?P + [^#\t\n]+? + ) + (? to match + # a trailing space which is why we need the silliness below + (? + (?:\#[^\n]*)? + \n? + ) + $ + """, re.MULTILINE | re.VERBOSE + ) +def trailing_comma(): + mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), +} +def f( + a, + **kwargs, +) -> A: + return ( + yield from A( + very_long_argument_name1=very_long_value_for_the_argument, + very_long_argument_name2=very_long_value_for_the_argument, + **kwargs, + ) + ) +def __await__(): return (yield) + +# output + + +#!/usr/bin/env python3 +import asyncio +import sys + +from third_party import X, Y, Z + +from library import some_connection, some_decorator + +f"trigger 3.6 mode" + + +def func_no_args(): + a + b + c + if True: + raise RuntimeError + if False: + ... + for i in range(10): + print(i) + continue + exec("new-style exec", {}, {}) + return None + + +async def coroutine(arg, exec=False): + "Single-line docstring. Multiline is harder to reformat." + async with some_connection() as conn: + await conn.do_what_i_mean("SELECT bobby, tables FROM xkcd", timeout=2) + await asyncio.sleep(1) + + +@asyncio.coroutine +@some_decorator(with_args=True, many_args=[1, 2, 3]) +def function_signature_stress_test( + number: int, + no_annotation=None, + text: str = "default", + *, + debug: bool = False, + **kwargs, +) -> str: + return text[number:-1] + + +def spaces(a=1, b=(), c=[], d={}, e=True, f=-1, g=1 if False else 2, h="", i=r""): + offset = attr.ib(default=attr.Factory(lambda: _r.uniform(10000, 200000))) + assert task._cancel_stack[: len(old_stack)] == old_stack + + +def spaces_types( + a: int = 1, + b: tuple = (), + c: list = [], + d: dict = {}, + e: bool = True, + f: int = -1, + g: int = 1 if False else 2, + h: str = "", + i: str = r"", +): + ... + + +def spaces2(result=_core.Value(None)): + assert fut is self._read_fut, (fut, self._read_fut) + + +def example(session): + result = ( + session.query(models.Customer.id) + .filter( + models.Customer.account_id == account_id, + models.Customer.email == email_address, + ) + .order_by(models.Customer.id.asc()) + .all() + ) + + +def long_lines(): + if True: + typedargslist.extend( + gen_annotated_params( + ast_args.kwonlyargs, + ast_args.kw_defaults, + parameters, + implicit_default=True, + ) + ) + typedargslist.extend( + gen_annotated_params( + ast_args.kwonlyargs, + ast_args.kw_defaults, + parameters, + implicit_default=True, + # trailing standalone comment + ) + ) + _type_comment_re = re.compile( + r""" + ^ + [\t ]* + \#[ ]type:[ ]* + (?P + [^#\t\n]+? + ) + (? to match + # a trailing space which is why we need the silliness below + (? + (?:\#[^\n]*)? + \n? + ) + $ + """, + re.MULTILINE | re.VERBOSE, + ) + + +def trailing_comma(): + mapping = { + A: 0.25 * (10.0 / 12), + B: 0.1 * (10.0 / 12), + C: 0.1 * (10.0 / 12), + D: 0.1 * (10.0 / 12), + } + + +def f( + a, + **kwargs, +) -> A: + return ( + yield from A( + very_long_argument_name1=very_long_value_for_the_argument, + very_long_argument_name2=very_long_value_for_the_argument, + **kwargs, + ) + ) + + +def __await__(): + return (yield) diff --git a/.vim/bundle/black/tests/data/function2.py b/.vim/bundle/black/tests/data/function2.py new file mode 100644 index 0000000..cfc259e --- /dev/null +++ b/.vim/bundle/black/tests/data/function2.py @@ -0,0 +1,58 @@ +def f( + a, + **kwargs, +) -> A: + with cache_dir(): + if something: + result = ( + CliRunner().invoke(black.main, [str(src1), str(src2), "--diff", "--check"]) + ) + limited.append(-limited.pop()) # negate top + return A( + very_long_argument_name1=very_long_value_for_the_argument, + very_long_argument_name2=-very.long.value.for_the_argument, + **kwargs, + ) +def g(): + "Docstring." + def inner(): + pass + print("Inner defs should breathe a little.") +def h(): + def inner(): + pass + print("Inner defs should breathe a little.") + +# output + +def f( + a, + **kwargs, +) -> A: + with cache_dir(): + if something: + result = CliRunner().invoke( + black.main, [str(src1), str(src2), "--diff", "--check"] + ) + limited.append(-limited.pop()) # negate top + return A( + very_long_argument_name1=very_long_value_for_the_argument, + very_long_argument_name2=-very.long.value.for_the_argument, + **kwargs, + ) + + +def g(): + "Docstring." + + def inner(): + pass + + print("Inner defs should breathe a little.") + + +def h(): + def inner(): + pass + + print("Inner defs should breathe a little.") diff --git a/.vim/bundle/black/tests/data/function_trailing_comma.py b/.vim/bundle/black/tests/data/function_trailing_comma.py new file mode 100644 index 0000000..0207821 --- /dev/null +++ b/.vim/bundle/black/tests/data/function_trailing_comma.py @@ -0,0 +1,150 @@ +def f(a,): + d = {'key': 'value',} + tup = (1,) + +def f2(a,b,): + d = {'key': 'value', 'key2': 'value2',} + tup = (1,2,) + +def f(a:int=1,): + call(arg={'explode': 'this',}) + call2(arg=[1,2,3],) + x = { + "a": 1, + "b": 2, + }["a"] + if a == {"a": 1,"b": 2,"c": 3,"d": 4,"e": 5,"f": 6,"g": 7,"h": 8,}["a"]: + pass + +def xxxxxxxxxxxxxxxxxxxxxxxxxxxx() -> Set[ + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +]: + json = {"k": {"k2": {"k3": [1,]}}} + + + +# The type annotation shouldn't get a trailing comma since that would change its type. +# Relevant bug report: https://github.com/psf/black/issues/2381. +def some_function_with_a_really_long_name() -> ( + returning_a_deeply_nested_import_of_a_type_i_suppose +): + pass + + +def some_method_with_a_really_long_name(very_long_parameter_so_yeah: str, another_long_parameter: int) -> ( + another_case_of_returning_a_deeply_nested_import_of_a_type_i_suppose_cause_why_not +): + pass + + +def func() -> ( + also_super_long_type_annotation_that_may_cause_an_AST_related_crash_in_black(this_shouldn_t_get_a_trailing_comma_too) +): + pass + + +def func() -> ((also_super_long_type_annotation_that_may_cause_an_AST_related_crash_in_black( + this_shouldn_t_get_a_trailing_comma_too + )) +): + pass + +# output + +def f( + a, +): + d = { + "key": "value", + } + tup = (1,) + + +def f2( + a, + b, +): + d = { + "key": "value", + "key2": "value2", + } + tup = ( + 1, + 2, + ) + + +def f( + a: int = 1, +): + call( + arg={ + "explode": "this", + } + ) + call2( + arg=[1, 2, 3], + ) + x = { + "a": 1, + "b": 2, + }["a"] + if a == { + "a": 1, + "b": 2, + "c": 3, + "d": 4, + "e": 5, + "f": 6, + "g": 7, + "h": 8, + }["a"]: + pass + + +def xxxxxxxxxxxxxxxxxxxxxxxxxxxx() -> Set[ + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +]: + json = { + "k": { + "k2": { + "k3": [ + 1, + ] + } + } + } + + +# The type annotation shouldn't get a trailing comma since that would change its type. +# Relevant bug report: https://github.com/psf/black/issues/2381. +def some_function_with_a_really_long_name() -> ( + returning_a_deeply_nested_import_of_a_type_i_suppose +): + pass + + +def some_method_with_a_really_long_name( + very_long_parameter_so_yeah: str, another_long_parameter: int +) -> ( + another_case_of_returning_a_deeply_nested_import_of_a_type_i_suppose_cause_why_not +): + pass + + +def func() -> ( + also_super_long_type_annotation_that_may_cause_an_AST_related_crash_in_black( + this_shouldn_t_get_a_trailing_comma_too + ) +): + pass + + +def func() -> ( + ( + also_super_long_type_annotation_that_may_cause_an_AST_related_crash_in_black( + this_shouldn_t_get_a_trailing_comma_too + ) + ) +): + pass diff --git a/.vim/bundle/black/tests/data/import_spacing.py b/.vim/bundle/black/tests/data/import_spacing.py new file mode 100644 index 0000000..8e6e23c --- /dev/null +++ b/.vim/bundle/black/tests/data/import_spacing.py @@ -0,0 +1,118 @@ +"""The asyncio package, tracking PEP 3156.""" + +# flake8: noqa + +from logging import ( + WARNING +) +from logging import ( + ERROR, +) +import sys + +# This relies on each of the submodules having an __all__ variable. +from .base_events import * +from .coroutines import * +from .events import * # comment here + +from .futures import * +from .locks import * # comment here +from .protocols import * + +from ..runners import * # comment here +from ..queues import * +from ..streams import * + +from some_library import ( + Just, Enough, Libraries, To, Fit, In, This, Nice, Split, Which, We, No, Longer, Use +) +from name_of_a_company.extremely_long_project_name.component.ttypes import CuteLittleServiceHandlerFactoryyy +from name_of_a_company.extremely_long_project_name.extremely_long_component_name.ttypes import * + +from .a.b.c.subprocess import * +from . import (tasks) +from . import (A, B, C) +from . import SomeVeryLongNameAndAllOfItsAdditionalLetters1, \ + SomeVeryLongNameAndAllOfItsAdditionalLetters2 + +__all__ = ( + base_events.__all__ + + coroutines.__all__ + + events.__all__ + + futures.__all__ + + locks.__all__ + + protocols.__all__ + + runners.__all__ + + queues.__all__ + + streams.__all__ + + tasks.__all__ +) + + +# output + + +"""The asyncio package, tracking PEP 3156.""" + +# flake8: noqa + +from logging import WARNING +from logging import ( + ERROR, +) +import sys + +# This relies on each of the submodules having an __all__ variable. +from .base_events import * +from .coroutines import * +from .events import * # comment here + +from .futures import * +from .locks import * # comment here +from .protocols import * + +from ..runners import * # comment here +from ..queues import * +from ..streams import * + +from some_library import ( + Just, + Enough, + Libraries, + To, + Fit, + In, + This, + Nice, + Split, + Which, + We, + No, + Longer, + Use, +) +from name_of_a_company.extremely_long_project_name.component.ttypes import ( + CuteLittleServiceHandlerFactoryyy, +) +from name_of_a_company.extremely_long_project_name.extremely_long_component_name.ttypes import * + +from .a.b.c.subprocess import * +from . import tasks +from . import A, B, C +from . import ( + SomeVeryLongNameAndAllOfItsAdditionalLetters1, + SomeVeryLongNameAndAllOfItsAdditionalLetters2, +) + +__all__ = ( + base_events.__all__ + + coroutines.__all__ + + events.__all__ + + futures.__all__ + + locks.__all__ + + protocols.__all__ + + runners.__all__ + + queues.__all__ + + streams.__all__ + + tasks.__all__ +) diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/.gitignore b/.vim/bundle/black/tests/data/include_exclude_tests/.gitignore new file mode 100644 index 0000000..91f3456 --- /dev/null +++ b/.vim/bundle/black/tests/data/include_exclude_tests/.gitignore @@ -0,0 +1 @@ +dont_exclude/ diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.pie b/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.pie new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.py b/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.pyi b/.vim/bundle/black/tests/data/include_exclude_tests/b/.definitely_exclude/a.pyi new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.pie b/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.pie new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.py b/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.pyi b/.vim/bundle/black/tests/data/include_exclude_tests/b/dont_exclude/a.pyi new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.pie b/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.pie new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.py b/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.pyi b/.vim/bundle/black/tests/data/include_exclude_tests/b/exclude/a.pyi new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/include_exclude_tests/pyproject.toml b/.vim/bundle/black/tests/data/include_exclude_tests/pyproject.toml new file mode 100644 index 0000000..9ba7ec2 --- /dev/null +++ b/.vim/bundle/black/tests/data/include_exclude_tests/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools>=41.0", "setuptools-scm", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/.vim/bundle/black/tests/data/invalid_gitignore_tests/.gitignore b/.vim/bundle/black/tests/data/invalid_gitignore_tests/.gitignore new file mode 100644 index 0000000..cdf4cb4 --- /dev/null +++ b/.vim/bundle/black/tests/data/invalid_gitignore_tests/.gitignore @@ -0,0 +1 @@ +! diff --git a/.vim/bundle/black/tests/data/invalid_gitignore_tests/a.py b/.vim/bundle/black/tests/data/invalid_gitignore_tests/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/invalid_gitignore_tests/pyproject.toml b/.vim/bundle/black/tests/data/invalid_gitignore_tests/pyproject.toml new file mode 100644 index 0000000..3908e45 --- /dev/null +++ b/.vim/bundle/black/tests/data/invalid_gitignore_tests/pyproject.toml @@ -0,0 +1 @@ +# Empty configuration file; used in tests to avoid interference from Black's own config. diff --git a/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a.py b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a/.gitignore b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a/.gitignore new file mode 100644 index 0000000..cdf4cb4 --- /dev/null +++ b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a/.gitignore @@ -0,0 +1 @@ +! diff --git a/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a/a.py b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/a/a.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/pyproject.toml b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/pyproject.toml new file mode 100644 index 0000000..3908e45 --- /dev/null +++ b/.vim/bundle/black/tests/data/invalid_nested_gitignore_tests/pyproject.toml @@ -0,0 +1 @@ +# Empty configuration file; used in tests to avoid interference from Black's own config. diff --git a/.vim/bundle/black/tests/data/long_strings.py b/.vim/bundle/black/tests/data/long_strings.py new file mode 100644 index 0000000..430f760 --- /dev/null +++ b/.vim/bundle/black/tests/data/long_strings.py @@ -0,0 +1,661 @@ +x = "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + +x += "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + +y = ( + 'Short string' +) + +print('This is a really long string inside of a print statement with extra arguments attached at the end of it.', x, y, z) + +print("This is a really long string inside of a print statement with no extra arguments attached at the end of it.") + +D1 = {"The First": "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", "The Second": "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary."} + +D2 = {1.0: "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", 2.0: "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary."} + +D3 = {x: "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", y: "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary."} + +D4 = {"A long and ridiculous {}".format(string_key): "This is a really really really long string that has to go i,side of a dictionary. It is soooo bad.", some_func("calling", "some", "stuff"): "This is a really really really long string that has to go inside of a dictionary. It is {soooo} bad (#{x}).".format(sooo="soooo", x=2), "A %s %s" % ("formatted", "string"): "This is a really really really long string that has to go inside of a dictionary. It is %s bad (#%d)." % ("soooo", 2)} + +func_with_keywords(my_arg, my_kwarg="Long keyword strings also need to be wrapped, but they will probably need to be handled a little bit differently.") + +bad_split1 = ( + 'But what should happen when code has already been formatted but in the wrong way? Like' + " with a space at the end instead of the beginning. Or what about when it is split too soon?" +) + +bad_split2 = "But what should happen when code has already " \ + "been formatted but in the wrong way? Like " \ + "with a space at the end instead of the " \ + "beginning. Or what about when it is split too " \ + "soon? In the case of a split that is too " \ + "short, black will try to honer the custom " \ + "split." + +bad_split3 = ( + "What if we have inline comments on " # First Comment + "each line of a bad split? In that " # Second Comment + "case, we should just leave it alone." # Third Comment +) + +bad_split_func1( + "But what should happen when code has already " + "been formatted but in the wrong way? Like " + "with a space at the end instead of the " + "beginning. Or what about when it is split too " + "soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split.", + xxx, yyy, zzz +) + +bad_split_func2( + xxx, yyy, zzz, + long_string_kwarg="But what should happen when code has already been formatted but in the wrong way? Like " + "with a space at the end instead of the beginning. Or what about when it is split too " + "soon?", +) + +bad_split_func3( + ( + "But what should happen when code has already " + r"been formatted but in the wrong way? Like " + "with a space at the end instead of the " + r"beginning. Or what about when it is split too " + r"soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split." + ), + xxx, + yyy, + zzz, +) + +raw_string = r"This is a long raw string. When re-formatting this string, black needs to make sure it prepends the 'r' onto the new string." + +fmt_string1 = "We also need to be sure to preserve any and all {} which may or may not be attached to the string in question.".format("method calls") + +fmt_string2 = "But what about when the string is {} but {}".format("short", "the method call is really really really really really really really really long?") + +old_fmt_string1 = "While we are on the topic of %s, we should also note that old-style formatting must also be preserved, since some %s still uses it." % ("formatting", "code") + +old_fmt_string2 = "This is a %s %s %s %s" % ("really really really really really", "old", "way to format strings!", "Use f-strings instead!") + +old_fmt_string3 = "Whereas only the strings after the percent sign were long in the last example, this example uses a long initial string as well. This is another %s %s %s %s" % ("really really really really really", "old", "way to format strings!", "Use f-strings instead!") + +fstring = f"f-strings definitely make things more {difficult} than they need to be for {{black}}. But boy they sure are handy. The problem is that some lines will need to have the 'f' whereas others do not. This {line}, for example, needs one." + +fstring_with_no_fexprs = f"Some regular string that needs to get split certainly but is NOT an fstring by any means whatsoever." + +comment_string = "Long lines with inline comments should have their comments appended to the reformatted string's enclosing right parentheses." # This comment gets thrown to the top. + +arg_comment_string = print("Long lines with inline comments which are apart of (and not the only member of) an argument list should have their comments appended to the reformatted string's enclosing left parentheses.", # This comment stays on the bottom. + "Arg #2", "Arg #3", "Arg #4", "Arg #5") + +pragma_comment_string1 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa: E501 + +pragma_comment_string2 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa + +"""This is a really really really long triple quote string and it should not be touched.""" + +triple_quote_string = """This is a really really really long triple quote string assignment and it should not be touched.""" + +assert some_type_of_boolean_expression, "Followed by a really really really long string that is used to provide context to the AssertionError exception." + +assert some_type_of_boolean_expression, "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic string {}.".format("formatting") + +assert some_type_of_boolean_expression, "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic string %s." % "formatting" + +assert some_type_of_boolean_expression, "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic %s %s." % ("string", "formatting") + +some_function_call("With a reallly generic name and with a really really long string that is, at some point down the line, " + added + " to a variable and then added to another string.") + +some_function_call("With a reallly generic name and with a really really long string that is, at some point down the line, " + added + " to a variable and then added to another string. But then what happens when the final string is also supppppperrrrr long?! Well then that second (realllllllly long) string should be split too.", "and a second argument", and_a_third) + +return "A really really really really really really really really really really really really really long {} {}".format("return", "value") + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma which should NOT be there.", +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma which should NOT be there.", # comment after comma +) + +func_with_bad_comma( + ( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there." + ), +) + +func_with_bad_comma( + ( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there." + ), # comment after comma +) + +func_with_bad_parens_that_wont_fit_in_one_line( + ("short string that should have parens stripped"), + x, + y, + z +) + +func_with_bad_parens_that_wont_fit_in_one_line( + x, + y, + ("short string that should have parens stripped"), + z +) + +func_with_bad_parens( + ("short string that should have parens stripped"), + x, + y, + z, +) + +func_with_bad_parens( + x, + y, + ("short string that should have parens stripped"), + z, +) + +annotated_variable: Final = "This is a large " + STRING + " that has been " + CONCATENATED + "using the '+' operator." +annotated_variable: Final = "This is a large string that has a type annotation attached to it. A type annotation should NOT stop a long string from being wrapped." +annotated_variable: Literal["fakse_literal"] = "This is a large string that has a type annotation attached to it. A type annotation should NOT stop a long string from being wrapped." + +backslashes = "This is a really long string with \"embedded\" double quotes and 'single' quotes that also handles checking for an even number of backslashes \\" +backslashes = "This is a really long string with \"embedded\" double quotes and 'single' quotes that also handles checking for an even number of backslashes \\\\" +backslashes = "This is a really 'long' string with \"embedded double quotes\" and 'single' quotes that also handles checking for an odd number of backslashes \\\", like this...\\\\\\" + +short_string = ( + "Hi" + " there." +) + +func_call( + short_string=( + "Hi" + " there." + ) +) + +raw_strings = r"Don't" " get" r" merged" " unless they are all raw." + +def foo(): + yield "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + +x = f"This is a {{really}} long string that needs to be split without a doubt (i.e. most definitely). In short, this {string} that can't possibly be {{expected}} to fit all together on one line. In {fact} it may even take up three or more lines... like four or five... but probably just four." + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # type: ignore + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # noqa + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # pylint: disable=some-pylint-check + " of it." +) + +string_with_nameescape = ( + "........................................................................ \N{LAO KO LA}" +) + +string_with_nameescape = ( + "........................................................................... \N{LAO KO LA}" +) + +string_with_nameescape = ( + "............................................................................ \N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + "...................................................................... \\\N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + "......................................................................... \\\N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + ".......................................................................... \\\N{LAO KO LA}" +) + +string_with_escaped_nameescape = ( + "........................................................................ \\N{LAO KO LA}" +) + +string_with_escaped_nameescape = ( + "........................................................................... \\N{LAO KO LA}" +) + + +# output + + +x = ( + "This is a really long string that can't possibly be expected to fit all together" + " on one line. In fact it may even take up three or more lines... like four or" + " five... but probably just three." +) + +x += ( + "This is a really long string that can't possibly be expected to fit all together" + " on one line. In fact it may even take up three or more lines... like four or" + " five... but probably just three." +) + +y = "Short string" + +print( + "This is a really long string inside of a print statement with extra arguments" + " attached at the end of it.", + x, + y, + z, +) + +print( + "This is a really long string inside of a print statement with no extra arguments" + " attached at the end of it." +) + +D1 = { + "The First": ( + "This is a really long string that can't possibly be expected to fit all" + " together on one line. Also it is inside a dictionary, so formatting is more" + " difficult." + ), + "The Second": ( + "This is another really really (not really) long string that also can't be" + " expected to fit on one line and is, like the other string, inside a" + " dictionary." + ), +} + +D2 = { + 1.0: ( + "This is a really long string that can't possibly be expected to fit all" + " together on one line. Also it is inside a dictionary, so formatting is more" + " difficult." + ), + 2.0: ( + "This is another really really (not really) long string that also can't be" + " expected to fit on one line and is, like the other string, inside a" + " dictionary." + ), +} + +D3 = { + x: ( + "This is a really long string that can't possibly be expected to fit all" + " together on one line. Also it is inside a dictionary, so formatting is more" + " difficult." + ), + y: ( + "This is another really really (not really) long string that also can't be" + " expected to fit on one line and is, like the other string, inside a" + " dictionary." + ), +} + +D4 = { + "A long and ridiculous {}".format(string_key): ( + "This is a really really really long string that has to go i,side of a" + " dictionary. It is soooo bad." + ), + some_func("calling", "some", "stuff"): ( + "This is a really really really long string that has to go inside of a" + " dictionary. It is {soooo} bad (#{x}).".format(sooo="soooo", x=2) + ), + "A %s %s" + % ("formatted", "string"): ( + "This is a really really really long string that has to go inside of a" + " dictionary. It is %s bad (#%d)." + ) + % ("soooo", 2), +} + +func_with_keywords( + my_arg, + my_kwarg=( + "Long keyword strings also need to be wrapped, but they will probably need to" + " be handled a little bit differently." + ), +) + +bad_split1 = ( + "But what should happen when code has already been formatted but in the wrong way?" + " Like with a space at the end instead of the beginning. Or what about when it is" + " split too soon?" +) + +bad_split2 = ( + "But what should happen when code has already " + "been formatted but in the wrong way? Like " + "with a space at the end instead of the " + "beginning. Or what about when it is split too " + "soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split." +) + +bad_split3 = ( + "What if we have inline comments on " # First Comment + "each line of a bad split? In that " # Second Comment + "case, we should just leave it alone." # Third Comment +) + +bad_split_func1( + "But what should happen when code has already " + "been formatted but in the wrong way? Like " + "with a space at the end instead of the " + "beginning. Or what about when it is split too " + "soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split.", + xxx, + yyy, + zzz, +) + +bad_split_func2( + xxx, + yyy, + zzz, + long_string_kwarg=( + "But what should happen when code has already been formatted but in the wrong" + " way? Like with a space at the end instead of the beginning. Or what about" + " when it is split too soon?" + ), +) + +bad_split_func3( + ( + "But what should happen when code has already " + r"been formatted but in the wrong way? Like " + "with a space at the end instead of the " + r"beginning. Or what about when it is split too " + r"soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split." + ), + xxx, + yyy, + zzz, +) + +raw_string = ( + r"This is a long raw string. When re-formatting this string, black needs to make" + r" sure it prepends the 'r' onto the new string." +) + +fmt_string1 = ( + "We also need to be sure to preserve any and all {} which may or may not be" + " attached to the string in question.".format("method calls") +) + +fmt_string2 = "But what about when the string is {} but {}".format( + "short", + "the method call is really really really really really really really really long?", +) + +old_fmt_string1 = ( + "While we are on the topic of %s, we should also note that old-style formatting" + " must also be preserved, since some %s still uses it." % ("formatting", "code") +) + +old_fmt_string2 = "This is a %s %s %s %s" % ( + "really really really really really", + "old", + "way to format strings!", + "Use f-strings instead!", +) + +old_fmt_string3 = ( + "Whereas only the strings after the percent sign were long in the last example," + " this example uses a long initial string as well. This is another %s %s %s %s" + % ( + "really really really really really", + "old", + "way to format strings!", + "Use f-strings instead!", + ) +) + +fstring = ( + f"f-strings definitely make things more {difficult} than they need to be for" + " {black}. But boy they sure are handy. The problem is that some lines will need" + f" to have the 'f' whereas others do not. This {line}, for example, needs one." +) + +fstring_with_no_fexprs = ( + f"Some regular string that needs to get split certainly but is NOT an fstring by" + f" any means whatsoever." +) + +comment_string = ( # This comment gets thrown to the top. + "Long lines with inline comments should have their comments appended to the" + " reformatted string's enclosing right parentheses." +) + +arg_comment_string = print( + "Long lines with inline comments which are apart of (and not the only member of) an" + " argument list should have their comments appended to the reformatted string's" + " enclosing left parentheses.", # This comment stays on the bottom. + "Arg #2", + "Arg #3", + "Arg #4", + "Arg #5", +) + +pragma_comment_string1 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa: E501 + +pragma_comment_string2 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa + +"""This is a really really really long triple quote string and it should not be touched.""" + +triple_quote_string = """This is a really really really long triple quote string assignment and it should not be touched.""" + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to" + " the AssertionError exception." +) + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to" + " the AssertionError exception, which uses dynamic string {}.".format("formatting") +) + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to" + " the AssertionError exception, which uses dynamic string %s." % "formatting" +) + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to" + " the AssertionError exception, which uses dynamic %s %s." + % ("string", "formatting") +) + +some_function_call( + "With a reallly generic name and with a really really long string that is, at some" + " point down the line, " + + added + + " to a variable and then added to another string." +) + +some_function_call( + "With a reallly generic name and with a really really long string that is, at some" + " point down the line, " + + added + + " to a variable and then added to another string. But then what happens when the" + " final string is also supppppperrrrr long?! Well then that second (realllllllly" + " long) string should be split too.", + "and a second argument", + and_a_third, +) + +return ( + "A really really really really really really really really really really really" + " really really long {} {}".format("return", "value") +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there.", +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there.", # comment after comma +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there.", +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there.", # comment after comma +) + +func_with_bad_parens_that_wont_fit_in_one_line( + "short string that should have parens stripped", x, y, z +) + +func_with_bad_parens_that_wont_fit_in_one_line( + x, y, "short string that should have parens stripped", z +) + +func_with_bad_parens( + "short string that should have parens stripped", + x, + y, + z, +) + +func_with_bad_parens( + x, + y, + "short string that should have parens stripped", + z, +) + +annotated_variable: Final = ( + "This is a large " + + STRING + + " that has been " + + CONCATENATED + + "using the '+' operator." +) +annotated_variable: Final = ( + "This is a large string that has a type annotation attached to it. A type" + " annotation should NOT stop a long string from being wrapped." +) +annotated_variable: Literal["fakse_literal"] = ( + "This is a large string that has a type annotation attached to it. A type" + " annotation should NOT stop a long string from being wrapped." +) + +backslashes = ( + "This is a really long string with \"embedded\" double quotes and 'single' quotes" + " that also handles checking for an even number of backslashes \\" +) +backslashes = ( + "This is a really long string with \"embedded\" double quotes and 'single' quotes" + " that also handles checking for an even number of backslashes \\\\" +) +backslashes = ( + "This is a really 'long' string with \"embedded double quotes\" and 'single' quotes" + ' that also handles checking for an odd number of backslashes \\", like' + " this...\\\\\\" +) + +short_string = "Hi there." + +func_call(short_string="Hi there.") + +raw_strings = r"Don't" " get" r" merged" " unless they are all raw." + + +def foo(): + yield ( + "This is a really long string that can't possibly be expected to fit all" + " together on one line. In fact it may even take up three or more lines... like" + " four or five... but probably just three." + ) + + +x = ( + "This is a {really} long string that needs to be split without a doubt (i.e." + f" most definitely). In short, this {string} that can't possibly be {{expected}} to" + f" fit all together on one line. In {fact} it may even take up three or more" + " lines... like four or five... but probably just four." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # type: ignore + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # noqa + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # pylint: disable=some-pylint-check + " of it." +) + +string_with_nameescape = ( + "........................................................................" + " \N{LAO KO LA}" +) + +string_with_nameescape = ( + "..........................................................................." + " \N{LAO KO LA}" +) + +string_with_nameescape = ( + "............................................................................" + " \N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + "......................................................................" + " \\\N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + "........................................................................." + " \\\N{LAO KO LA}" +) + +string_with_nameescape_and_escaped_backslash = ( + ".........................................................................." + " \\\N{LAO KO LA}" +) + +string_with_escaped_nameescape = ( + "........................................................................ \\N{LAO" + " KO LA}" +) + +string_with_escaped_nameescape = ( + "..........................................................................." + " \\N{LAO KO LA}" +) diff --git a/.vim/bundle/black/tests/data/long_strings__edge_case.py b/.vim/bundle/black/tests/data/long_strings__edge_case.py new file mode 100644 index 0000000..2bc0b6e --- /dev/null +++ b/.vim/bundle/black/tests/data/long_strings__edge_case.py @@ -0,0 +1,140 @@ +some_variable = "This string is long but not so long that it needs to be split just yet" +some_variable = 'This string is long but not so long that it needs to be split just yet' +some_variable = "This string is long, just long enough that it needs to be split, u get?" +some_variable = 'This string is long, just long enough that it needs to be split, u get?' +some_variable = "This string is long, just long enough that it needs to be split, u get? So we stay" +some_variable = 'This string is long, just long enough that it needs to be split, u get? So we stay' +some_variable = "This string is long, just long enough that it needs to be split, u get? So we split" +some_variable = 'This string is long, just long enough that it needs to be split, u get? So we split' +some_variable = "This string is long but not so long that it needs hahahah toooooo be so greatttt {} that I just can't think of any more good words to say about it at alll".format("ha") +some_variable = "This string is long but not so long that it needs hahahah toooooo be so greatttt {} that I just can't think of any more good words to say about it at allll".format("ha") +some_variable = "This string is long but not so long that it needs hahahah toooooo be so greatttt {} that I just can't think of any more good words to say about it at alllllllllll".format("ha") +some_variable = "This string is long but not so long that it needs hahahah toooooo be so greatttt {} that I just can't think of any more good words to say about it at allllllllllll".format("ha") +some_variable = "This is a long string that will end with a method that is not calleddd".format +addition_inside_tuple = ( + some_string_inside_a_variable + + "Some string that is just long enough to cause a split to take place.............", + xyz, + "Some really long string that needs to get split eventually but I'm running out of things to say" + some_string_inside_a_variable +) +addition_inside_tuple = ( + some_string_inside_a_variable + + "Some string that is just long enough to cause a split to take place.............." +) +return "Hi there. This is areally really reallllly long string that needs to be split!!!" +ternary_expression = ( + "Short String" + if some_condition + else "This is a really long string that will eventually need to be split right here." +) +return f'{x}/b/c/d/d/d/dadfjsadjsaidoaisjdsfjaofjdfijaidfjaodfjaoifjodjafojdoajaaaaaaaaaaa' +return f'{x}/b/c/d/d/d/dadfjsadjsaidoaisjdsfjaofjdfijaidfjaodfjaoifjodjafojdoajaaaaaaaaaaaa' +assert str(result) == "This long string should be split at some point right close to or around hereeeeeee" +assert str(result) < "This long string should be split at some point right close to or around hereeeeee" +assert "A format string: %s" % "This long string should be split at some point right close to or around hereeeeeee" != result +msg += "This long string should be wrapped in parens at some point right around hereeeee" +msg += "This long string should be split at some point right close to or around hereeeeeeee" +msg += "This long string should not be split at any point ever since it is just righttt" + + +# output + + +some_variable = "This string is long but not so long that it needs to be split just yet" +some_variable = "This string is long but not so long that it needs to be split just yet" +some_variable = ( + "This string is long, just long enough that it needs to be split, u get?" +) +some_variable = ( + "This string is long, just long enough that it needs to be split, u get?" +) +some_variable = ( + "This string is long, just long enough that it needs to be split, u get? So we stay" +) +some_variable = ( + "This string is long, just long enough that it needs to be split, u get? So we stay" +) +some_variable = ( + "This string is long, just long enough that it needs to be split, u get? So we" + " split" +) +some_variable = ( + "This string is long, just long enough that it needs to be split, u get? So we" + " split" +) +some_variable = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" + " {} that I just can't think of any more good words to say about it at alll".format( + "ha" + ) +) +some_variable = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" + " {} that I just can't think of any more good words to say about it at allll" + .format("ha") +) +some_variable = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" + " {} that I just can't think of any more good words to say about it at alllllllllll" + .format("ha") +) +some_variable = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" + " {} that I just can't think of any more good words to say about it at" + " allllllllllll".format("ha") +) +some_variable = ( + "This is a long string that will end with a method that is not calleddd".format +) +addition_inside_tuple = ( + some_string_inside_a_variable + + "Some string that is just long enough to cause a split to take" + " place.............", + xyz, + "Some really long string that needs to get split eventually but I'm running out of" + " things to say" + + some_string_inside_a_variable, +) +addition_inside_tuple = ( + some_string_inside_a_variable + + "Some string that is just long enough to cause a split to take" + " place.............." +) +return ( + "Hi there. This is areally really reallllly long string that needs to be split!!!" +) +ternary_expression = ( + "Short String" + if some_condition + else ( + "This is a really long string that will eventually need to be split right here." + ) +) +return ( + f"{x}/b/c/d/d/d/dadfjsadjsaidoaisjdsfjaofjdfijaidfjaodfjaoifjodjafojdoajaaaaaaaaaaa" +) +return f"{x}/b/c/d/d/d/dadfjsadjsaidoaisjdsfjaofjdfijaidfjaodfjaoifjodjafojdoajaaaaaaaaaaaa" +assert ( + str(result) + == "This long string should be split at some point right close to or around" + " hereeeeeee" +) +assert ( + str(result) + < "This long string should be split at some point right close to or around" + " hereeeeee" +) +assert ( + "A format string: %s" + % "This long string should be split at some point right close to or around" + " hereeeeeee" + != result +) +msg += ( + "This long string should be wrapped in parens at some point right around hereeeee" +) +msg += ( + "This long string should be split at some point right close to or around" + " hereeeeeeee" +) +msg += "This long string should not be split at any point ever since it is just righttt" diff --git a/.vim/bundle/black/tests/data/long_strings__regression.py b/.vim/bundle/black/tests/data/long_strings__regression.py new file mode 100644 index 0000000..36f323e --- /dev/null +++ b/.vim/bundle/black/tests/data/long_strings__regression.py @@ -0,0 +1,1166 @@ +class A: + def foo(): + result = type(message)("") + + +# Don't merge multiline (e.g. triple-quoted) strings. +def foo(): + query = ( + """SELECT xxxxxxxxxxxxxxxxxxxx(xxx)""" + """ FROM xxxxxxxxxxxxxxxx WHERE xxxxxxxxxx AND xxx <> xxxxxxxxxxxxxx()""") + +# There was a bug where tuples were being identified as long strings. +long_tuple = ('Apple', 'Berry', 'Cherry', 'Dill', 'Evergreen', 'Fig', + 'Grape', 'Harry', 'Iglu', 'Jaguar') + +stupid_format_method_bug = "Some really long string that just so happens to be the {} {} to force the 'format' method to hang over the line length boundary. This is pretty annoying.".format("perfect", "length") + +class A: + def foo(): + os.system("This is a regression test. xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxxx.".format("xxxxxxxxxx", "xxxxxx", "xxxxxxxxxx")) + + +class A: + def foo(): + XXXXXXXXXXXX.append( + ( + "xxx_xxxxxxxxxx(xxxxx={}, xxxx={}, xxxxx, xxxx_xxxx_xxxxxxxxxx={})".format( + xxxxx, xxxx, xxxx_xxxx_xxxxxxxxxx + ), + my_var, + my_other_var, + ) + ) + +class A: + class B: + def foo(): + bar( + ( + "[{}]: xxx_xxxxxxxxxx(xxxxx={}, xxxx={}, xxxxx={}" + " xxxx_xxxx_xxxxxxxxxx={}, xxxx={})" + .format(xxxx._xxxxxxxxxxxxxx, xxxxx, xxxx, xxxx_xxxx_xxxxxxxxxx, xxxxxxx) + ), + varX, + varY, + varZ, + ) + +def foo(xxxx): + for (xxx_xxxx, _xxx_xxx, _xxx_xxxxx, xxx_xxxx) in xxxx: + for xxx in xxx_xxxx: + assert ("x" in xxx) or ( + xxx in xxx_xxx_xxxxx + ), "{0} xxxxxxx xx {1}, xxx {1} xx xxx xx xxxx xx xxx xxxx: xxx xxxx {2}".format( + xxx_xxxx, xxx, xxxxxx.xxxxxxx(xxx_xxx_xxxxx) + ) + +class A: + def disappearing_comment(): + return ( + ( # xx -x xxxxxxx xx xxx xxxxxxx. + '{{xxx_xxxxxxxxxx_xxxxxxxx}} xxx xxxx' + ' {} {{xxxx}} >&2' + .format( + "{xxxx} {xxxxxx}" + if xxxxx.xx_xxxxxxxxxx + else ( # Disappearing Comment + "--xxxxxxx --xxxxxx=x --xxxxxx-xxxxx=xxxxxx" + " --xxxxxx-xxxx=xxxxxxxxxxx.xxx" + ) + ) + ), + (x, y, z), + ) + +class A: + class B: + def foo(): + xxxxx_xxxx( + xx, "\t" + "@xxxxxx '{xxxx_xxx}\t' > {xxxxxx_xxxx}.xxxxxxx;" + "{xxxx_xxx} >> {xxxxxx_xxxx}.xxxxxxx 2>&1; xx=$$?;" + "xxxx $$xx" + .format(xxxx_xxx=xxxx_xxxxxxx, xxxxxx_xxxx=xxxxxxx + "/" + xxxx_xxx_xxxx, x=xxx_xxxxx_xxxxx_xxx), + x, + y, + z, + ) + +func_call_where_string_arg_has_method_call_and_bad_parens( + ( + "A long string with {}. This string is so long that it is ridiculous. It can't fit on one line at alllll.".format("formatting") + ), +) + +func_call_where_string_arg_has_old_fmt_and_bad_parens( + ( + "A long string with {}. This string is so long that it is ridiculous. It can't fit on one line at alllll." % "formatting" + ), +) + +func_call_where_string_arg_has_old_fmt_and_bad_parens( + ( + "A long string with {}. This {} is so long that it is ridiculous. It can't fit on one line at alllll." % ("formatting", "string") + ), +) + +class A: + def append(self): + if True: + xxxx.xxxxxxx.xxxxx( ('xxxxxxxxxx xxxx xx xxxxxx(%x) xx %x xxxx xx xxx %x.xx' + % (len(self) + 1, + xxxx.xxxxxxxxxx, + xxxx.xxxxxxxxxx)) + + (' %.3f (%s) to %.3f (%s).\n' + % (xxxx.xxxxxxxxx, + xxxx.xxxxxxxxxxxxxx(xxxx.xxxxxxxxx), + x, + xxxx.xxxxxxxxxxxxxx( xx) + ))) + +class A: + def foo(): + some_func_call( + 'xxxxxxxxxx', + ( + "xx {xxxxxxxxxxx}/xxxxxxxxxxx.xxx xxxx.xxx && xxxxxx -x " + "\"xxxx xxxxxxx xxxxxx xxxx; xxxx xxxxxx_xxxxx xxxxxx xxxx; " + "xxxx.xxxx_xxxxxx(['xxxx.xxx'], xxxx.xxxxxxx().xxxxxxxxxx)\" " + ), + None, + ('xxxxxxxxxxx',), + ), + +class A: + def foo(): + some_func_call( + ( + "xx {xxxxxxxxxxx}/xxxxxxxxxxx.xxx xxxx.xxx && xxxxxx -x " + "xxxx, ('xxxxxxx xxxxxx xxxx, xxxx') xxxxxx_xxxxx xxxxxx xxxx; " + "xxxx.xxxx_xxxxxx(['xxxx.xxx'], xxxx.xxxxxxx().xxxxxxxxxx)\" " + ), + None, + ('xxxxxxxxxxx',), + ), + +xxxxxxx = { 'xx' : 'xxxx xxxxxxx xxxxxxxxx -x xxx -x /xxx/{0} -x xxx,xxx -xx {1} \ +-xx {1} -xx xxx=xxx_xxxx,xxx_xx,xxx_xxx,xxx_xxxx,xxx_xx,xxx_xxx |\ + xxxxxx -x xxxxxxxx -x xxxxxxxx -x', + 'xx' : 'xxxx xxxxxxx xxxxxxxxx -x xxx -x /xxx/{0} -x xxx,xxx -xx {1} \ +-xx {1} -xx xxx=xxx_xxxx_xxx_xxxx,xxx_xx_xxx_xxxx,xxx_xxxx_xxx_xxxx,\ +xxx_xx_xxxx_xxxx,xxx_xxx_xxxx,xxx_xxx_xxxx xxxx=xxx | xxxxxx -x xxxxxxxx -x xxxxxxxx -x' +} + +class A: + def foo(self): + if True: + xxxxx_xxxxxxxxxxxx('xxx xxxxxx xxx xxxxxxxxx.xx xx xxxxxxxx. xxx xxxxxxxxxxxxx.xx xxxxxxx ' + + 'xx xxxxxx xxxxxx xxxxxx xx xxxxxxx xxx xxx ${0} xx x xxxxxxxx xxxxx'.xxxxxx(xxxxxx_xxxxxx_xxx)) + +class A: + class B: + def foo(): + row = { + 'xxxxxxxxxxxxxxx' : xxxxxx_xxxxx_xxxx, + # 'xxxxxxxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxx' + 'xxxxxxxxxx' : xxxxx_xxxxx, + } + +class A: + def xxxx_xxx_xx_xxxxxxxxxx_xxxx_xxxxxxxxx(xxxx): + xxxxxxxx = [ + xxxxxxxxxxxxxxxx( + 'xxxx', + xxxxxxxxxxx={ + 'xxxx' : 1.0, + }, + xxxxxx={'xxxxxx 1' : xxxxxx(xxxx='xxxxxx 1', xxxxxx=600.0)}, + xxxxxxxx_xxxxxxx=0.0, + ), + xxxxxxxxxxxxxxxx( + 'xxxxxxx', + xxxxxxxxxxx={ + 'xxxx' : 1.0, + }, + xxxxxx={'xxxxxx 1' : xxxxxx(xxxx='xxxxxx 1', xxxxxx=200.0)}, + xxxxxxxx_xxxxxxx=0.0, + ), + xxxxxxxxxxxxxxxx( + 'xxxx', + ), + ] + +some_dictionary = { + 'xxxxx006': ['xxx-xxx xxxxx3xxxx1xx2xxxxxxxxxxxxxx0xx6xxxxxxxxxx2xxxxxx9xxxxxxxxxx0xxxxx1xxx2x/xx9xx6+x+xxxxxxxxxxxxxx4xxxxxxxxxxxxxxxxxxxxx43xxx2xx2x4x++xxx6xxxxxxxxx+xxxxx/xx9x+xxxxxxxxxxxxxx8x15xxxxxxxxxxxxxxxxx82xx/xxxxxxxxxxxxxx/x5xxxxxxxxxxxxxx6xxxxxx74x4/xxx4x+xxxxxxxxx2xxxxxxxx87xxxxx4xxxxxxxx3xx0xxxxx4xxx1xx9xx5xxxxxxx/xxxxx5xx6xx4xxxx1x/x2xxxxxxxxxxxx64xxxxxxx1x0xx5xxxxxxxxxxxxxx== xxxxx000 xxxxxxxxxx\n', + 'xxx-xxx xxxxx3xxxx1xx2xxxxxxxxxxxxxx6xxxxxxxxxxxxxx9xxxxxxxxxxxxx3xxx9xxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx2xxxx2xxx6xxxxx/xx54xxxxxxxxx4xxx3xxxxxx9xx3xxxxx39xxxxxxxxx5xx91xxxx7xxxxxx8xxxxxxxxxxxxxxxx9xxx93xxxxxxxxxxxxxxxxx7xxx8xx8xx4/x1xxxxx1x3xxxxxxxxxxxxx3xxxxxx9xx4xx4x7xxxxxxxxxxxxx1xxxxxxxxx7xxxxxxxxxxxxxx4xx6xxxxxxxxx9xxx7xxxx2xxxxxxxxxxxxxxxxxxxxxx8xxxxxxxxxxxxxxxxxxxx6xx== xxxxx010 xxxxxxxxxx\n'], + 'xxxxx016': ['xxx-xxx xxxxx3xxxx1xx2xxxxxxxxxxxxxx0xx6xxxxxxxxxx2xxxxxx9xxxxxxxxxx0xxxxx1xxx2x/xx9xx6+x+xxxxxxxxxxxxxx4xxxxxxxxxxxxxxxxxxxxx43xxx2xx2x4x++xxx6xxxxxxxxx+xxxxx/xx9x+xxxxxxxxxxxxxx8x15xxxxxxxxxxxxxxxxx82xx/xxxxxxxxxxxxxx/x5xxxxxxxxxxxxxx6xxxxxx74x4/xxx4x+xxxxxxxxx2xxxxxxxx87xxxxx4xxxxxxxx3xx0xxxxx4xxx1xx9xx5xxxxxxx/xxxxx5xx6xx4xxxx1x/x2xxxxxxxxxxxx64xxxxxxx1x0xx5xxxxxxxxxxxxxx== xxxxx000 xxxxxxxxxx\n', + 'xxx-xxx xxxxx3xxxx1xx2xxxxxxxxxxxxxx6xxxxxxxxxxxxxx9xxxxxxxxxxxxx3xxx9xxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx2xxxx2xxx6xxxxx/xx54xxxxxxxxx4xxx3xxxxxx9xx3xxxxx39xxxxxxxxx5xx91xxxx7xxxxxx8xxxxxxxxxxxxxxxx9xxx93xxxxxxxxxxxxxxxxx7xxx8xx8xx4/x1xxxxx1x3xxxxxxxxxxxxx3xxxxxx9xx4xx4x7xxxxxxxxxxxxx1xxxxxxxxx7xxxxxxxxxxxxxx4xx6xxxxxxxxx9xxx7xxxx2xxxxxxxxxxxxxxxxxxxxxx8xxxxxxxxxxxxxxxxxxxx6xx== xxxxx010 xxxxxxxxxx\n'] +} + +def foo(): + xxx_xxx = ( + 'xxxx xxx xxxxxxxx_xxxx xx "xxxxxxxxxx".' + '\n xxx: xxxxxx xxxxxxxx_xxxx=xxxxxxxxxx' + ) # xxxx xxxxxxxxxx xxxx xx xxxx xx xxx xxxxxxxx xxxxxx xxxxx. + +some_tuple = ("some string", "some string" " which should be joined") + +some_commented_string = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" # This comment gets thrown to the top. + " {} that I just can't think of any more good words to say about it at" + " allllllllllll".format("ha") # comments here are fine +) + +some_commented_string = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" # But these + " {} that I just can't think of any more good words to say about it at" # comments will stay + " allllllllllll".format("ha") # comments here are fine +) + +lpar_and_rpar_have_comments = func_call( # LPAR Comment + "Long really ridiculous type of string that shouldn't really even exist at all. I mean commmme onnn!!!", # Comma Comment +) # RPAR Comment + +cmd_fstring = ( + f"sudo -E deluge-console info --detailed --sort-reverse=time_added " + f"{'' if ID is None else ID} | perl -nE 'print if /^{field}:/'" +) + +cmd_fstring = f"sudo -E deluge-console info --detailed --sort-reverse=time_added {'' if ID is None else ID} | perl -nE 'print if /^{field}:/'" + +cmd_fstring = f"sudo -E deluge-console info --detailed --sort-reverse=time_added {'{{}}' if ID is None else ID} | perl -nE 'print if /^{field}:/'" + +cmd_fstring = f"sudo -E deluge-console info --detailed --sort-reverse=time_added {{'' if ID is None else ID}} | perl -nE 'print if /^{field}:/'" + +fstring = f"This string really doesn't need to be an {{{{fstring}}}}, but this one most certainly, absolutely {does}." + +fstring = ( + f"We have to remember to escape {braces}." + " Like {these}." + f" But not {this}." +) + +class A: + class B: + def foo(): + st_error = STError( + f"This string ({string_leaf.value}) appears to be pointless (i.e. has" + " no parent)." + ) + +def foo(): + user_regex = _lazy_re_compile( + r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*\Z" # dot-atom + r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"\Z)', # quoted-string + re.IGNORECASE) + +def foo(): + user_regex = _lazy_re_compile( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # dot-atom + 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', # quoted-string + xyz + ) + +def foo(): + user_regex = _lazy_re_compile( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # dot-atom + 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', # quoted-string + xyz + ) + +class A: + class B: + def foo(): + if not hasattr(module, name): + raise ValueError( + "Could not find object %s in %s.\n" + "Please note that you cannot serialize things like inner " + "classes. Please move the object into the main module " + "body to use migrations.\n" + "For more information, see " + "https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values" + % (name, module_name, get_docs_version())) + +class A: + class B: + def foo(): + if not hasattr(module, name): + raise ValueError( + "Could not find object %s in %s.\nPlease note that you cannot serialize things like inner classes. Please move the object into the main module body to use migrations.\nFor more information, see https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values" + % (name, module_name, get_docs_version())) + +x = ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +) + +class Step(StepBase): + def who(self): + self.cmd = 'SR AAAA-CORRECT NAME IS {last_name} {first_name}{middle_name} {title}/P{passenger_association}'.format( + last_name=last_name, + first_name=first_name, + middle_name=middle_name, + title=title, + passenger_association=passenger_association, + ) + +xxxxxxx_xxxxxx_xxxxxxx = xxx( + [ + xxxxxxxxxxxx( + xxxxxx_xxxxxxx=( + '((x.aaaaaaaaa = "xxxxxx.xxxxxxxxxxxxxxxxxxxxx") || (x.xxxxxxxxx = "xxxxxxxxxxxx")) && ' + # xxxxx xxxxxxxxxxxx xxxx xxx (xxxxxxxxxxxxxxxx) xx x xxxxxxxxx xx xxxxxx. + "(x.bbbbbbbbbbbb.xxx != " + '"xxx:xxx:xxx::cccccccccccc:xxxxxxx-xxxx/xxxxxxxxxxx/xxxxxxxxxxxxxxxxx") && ' + ) + ) + ] +) + +if __name__ == "__main__": + for i in range(4, 8): + cmd = ( + r"for pid in $(ps aux | grep paster | grep -v grep | grep '\-%d' | awk '{print $2}'); do kill $pid; done" + % (i) + ) + +def A(): + def B(): + def C(): + def D(): + def E(): + def F(): + def G(): + assert ( + c_float(val[0][0] / val[0][1]).value + == c_float(value[0][0] / value[0][1]).value + ), "%s didn't roundtrip" % tag + +class xxxxxxxxxxxxxxxxxxxxx(xxxx.xxxxxxxxxxxxx): + def xxxxxxx_xxxxxx(xxxx): + assert xxxxxxx_xxxx in [ + x.xxxxx.xxxxxx.xxxxx.xxxxxx, + x.xxxxx.xxxxxx.xxxxx.xxxx, + ], ("xxxxxxxxxxx xxxxxxx xxxx (xxxxxx xxxx) %x xxx xxxxx" % xxxxxxx_xxxx) + +value.__dict__[ + key +] = "test" # set some Thrift field to non-None in the struct aa bb cc dd ee + +RE_ONE_BACKSLASH = { + "asdf_hjkl_jkl": re.compile( + r"(?>\n" +) + +assert str(suffix_arr) == ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) != ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) <= ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) >= ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) < ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) > ( + "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert str(suffix_arr) in "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', 'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', 'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +assert str(suffix_arr) not in "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', 'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', 'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +message = ( + f"1. Go to Google Developers Console and log in with your Google account." + "(https://console.developers.google.com/)" + "2. You should be prompted to create a new project (name does not matter)." + "3. Click on Enable APIs and Services at the top." + "4. In the list of APIs choose or search for YouTube Data API v3 and " + "click on it. Choose Enable." + "5. Click on Credentials on the left navigation bar." + "6. Click on Create Credential at the top." + '7. At the top click the link for "API key".' + "8. No application restrictions are needed. Click Create at the bottom." + "9. You now have a key to add to `{prefix}set api youtube api_key`" +) +message = ( + f"1. Go to Google Developers Console and log in with your Google account." + "(https://console.developers.google.com/)" + "2. You should be prompted to create a new project (name does not matter)." + f"3. Click on Enable APIs and Services at the top." + "4. In the list of APIs choose or search for YouTube Data API v3 and " + "click on it. Choose Enable." + f"5. Click on Credentials on the left navigation bar." + "6. Click on Create Credential at the top." + '7. At the top click the link for "API key".' + "8. No application restrictions are needed. Click Create at the bottom." + "9. You now have a key to add to `{prefix}set api youtube api_key`" +) +message = ( + f"1. Go to Google Developers Console and log in with your Google account." + "(https://console.developers.google.com/)" + "2. You should be prompted to create a new project (name does not matter)." + f"3. Click on Enable APIs and Services at the top." + "4. In the list of APIs choose or search for YouTube Data API v3 and " + "click on it. Choose Enable." + f"5. Click on Credentials on the left navigation bar." + "6. Click on Create Credential at the top." + '7. At the top click the link for "API key".' + "8. No application restrictions are needed. Click Create at the bottom." + f"9. You now have a key to add to `{prefix}set api youtube api_key`" +) + +# It shouldn't matter if the string prefixes are capitalized. +temp_msg = ( + F"{F'{humanize_number(pos)}.': <{pound_len+2}} " + F"{balance: <{bal_len + 5}} " + F"<<{author.display_name}>>\n" +) + +fstring = ( + F"We have to remember to escape {braces}." + " Like {these}." + F" But not {this}." +) + +welcome_to_programming = R"hello," R" world!" + +fstring = F"f-strings definitely make things more {difficult} than they need to be for {{black}}. But boy they sure are handy. The problem is that some lines will need to have the 'f' whereas others do not. This {line}, for example, needs one." + +x = F"This is a long string which contains an f-expr that should not split {{{[i for i in range(5)]}}}." + +x = ( + "\N{BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR}\N{VARIATION SELECTOR-16}" +) + +xxxxxx_xxx_xxxx_xx_xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxxxx_xxxx_xxxx_xxxxx = xxxx.xxxxxx.xxxxxxxxx.xxxxxxxxxxxxxxxxxxxx( + xx_xxxxxx={ + "x3_xxxxxxxx": "xxx3_xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxxxx_xxxxxxxx_xxxxxx_xxxxxxx", + }, +) + + +# output + + +class A: + def foo(): + result = type(message)("") + + +# Don't merge multiline (e.g. triple-quoted) strings. +def foo(): + query = ( + """SELECT xxxxxxxxxxxxxxxxxxxx(xxx)""" + """ FROM xxxxxxxxxxxxxxxx WHERE xxxxxxxxxx AND xxx <> xxxxxxxxxxxxxx()""" + ) + + +# There was a bug where tuples were being identified as long strings. +long_tuple = ( + "Apple", + "Berry", + "Cherry", + "Dill", + "Evergreen", + "Fig", + "Grape", + "Harry", + "Iglu", + "Jaguar", +) + +stupid_format_method_bug = ( + "Some really long string that just so happens to be the {} {} to force the 'format'" + " method to hang over the line length boundary. This is pretty annoying.".format( + "perfect", "length" + ) +) + + +class A: + def foo(): + os.system( + "This is a regression test. xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx" + " xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx" + " xxxx.".format("xxxxxxxxxx", "xxxxxx", "xxxxxxxxxx") + ) + + +class A: + def foo(): + XXXXXXXXXXXX.append( + ( + "xxx_xxxxxxxxxx(xxxxx={}, xxxx={}, xxxxx, xxxx_xxxx_xxxxxxxxxx={})" + .format(xxxxx, xxxx, xxxx_xxxx_xxxxxxxxxx), + my_var, + my_other_var, + ) + ) + + +class A: + class B: + def foo(): + bar( + "[{}]: xxx_xxxxxxxxxx(xxxxx={}, xxxx={}, xxxxx={}" + " xxxx_xxxx_xxxxxxxxxx={}, xxxx={})".format( + xxxx._xxxxxxxxxxxxxx, xxxxx, xxxx, xxxx_xxxx_xxxxxxxxxx, xxxxxxx + ), + varX, + varY, + varZ, + ) + + +def foo(xxxx): + for (xxx_xxxx, _xxx_xxx, _xxx_xxxxx, xxx_xxxx) in xxxx: + for xxx in xxx_xxxx: + assert ("x" in xxx) or (xxx in xxx_xxx_xxxxx), ( + "{0} xxxxxxx xx {1}, xxx {1} xx xxx xx xxxx xx xxx xxxx: xxx xxxx {2}" + .format(xxx_xxxx, xxx, xxxxxx.xxxxxxx(xxx_xxx_xxxxx)) + ) + + +class A: + def disappearing_comment(): + return ( + ( # xx -x xxxxxxx xx xxx xxxxxxx. + "{{xxx_xxxxxxxxxx_xxxxxxxx}} xxx xxxx {} {{xxxx}} >&2".format( + "{xxxx} {xxxxxx}" + if xxxxx.xx_xxxxxxxxxx + else ( # Disappearing Comment + "--xxxxxxx --xxxxxx=x --xxxxxx-xxxxx=xxxxxx" + " --xxxxxx-xxxx=xxxxxxxxxxx.xxx" + ) + ) + ), + (x, y, z), + ) + + +class A: + class B: + def foo(): + xxxxx_xxxx( + xx, + "\t" + "@xxxxxx '{xxxx_xxx}\t' > {xxxxxx_xxxx}.xxxxxxx;" + "{xxxx_xxx} >> {xxxxxx_xxxx}.xxxxxxx 2>&1; xx=$$?;" + "xxxx $$xx".format( + xxxx_xxx=xxxx_xxxxxxx, + xxxxxx_xxxx=xxxxxxx + "/" + xxxx_xxx_xxxx, + x=xxx_xxxxx_xxxxx_xxx, + ), + x, + y, + z, + ) + + +func_call_where_string_arg_has_method_call_and_bad_parens( + "A long string with {}. This string is so long that it is ridiculous. It can't fit" + " on one line at alllll.".format("formatting"), +) + +func_call_where_string_arg_has_old_fmt_and_bad_parens( + "A long string with {}. This string is so long that it is ridiculous. It can't fit" + " on one line at alllll." % "formatting", +) + +func_call_where_string_arg_has_old_fmt_and_bad_parens( + "A long string with {}. This {} is so long that it is ridiculous. It can't fit on" + " one line at alllll." % ("formatting", "string"), +) + + +class A: + def append(self): + if True: + xxxx.xxxxxxx.xxxxx( + "xxxxxxxxxx xxxx xx xxxxxx(%x) xx %x xxxx xx xxx %x.xx" + % (len(self) + 1, xxxx.xxxxxxxxxx, xxxx.xxxxxxxxxx) + + " %.3f (%s) to %.3f (%s).\n" + % ( + xxxx.xxxxxxxxx, + xxxx.xxxxxxxxxxxxxx(xxxx.xxxxxxxxx), + x, + xxxx.xxxxxxxxxxxxxx(xx), + ) + ) + + +class A: + def foo(): + some_func_call( + "xxxxxxxxxx", + "xx {xxxxxxxxxxx}/xxxxxxxxxxx.xxx xxxx.xxx && xxxxxx -x " + '"xxxx xxxxxxx xxxxxx xxxx; xxxx xxxxxx_xxxxx xxxxxx xxxx; ' + "xxxx.xxxx_xxxxxx(['xxxx.xxx'], xxxx.xxxxxxx().xxxxxxxxxx)\" ", + None, + ("xxxxxxxxxxx",), + ), + + +class A: + def foo(): + some_func_call( + "xx {xxxxxxxxxxx}/xxxxxxxxxxx.xxx xxxx.xxx && xxxxxx -x " + "xxxx, ('xxxxxxx xxxxxx xxxx, xxxx') xxxxxx_xxxxx xxxxxx xxxx; " + "xxxx.xxxx_xxxxxx(['xxxx.xxx'], xxxx.xxxxxxx().xxxxxxxxxx)\" ", + None, + ("xxxxxxxxxxx",), + ), + + +xxxxxxx = { + "xx": ( + "xxxx xxxxxxx xxxxxxxxx -x xxx -x /xxx/{0} -x xxx,xxx -xx {1} -xx {1} -xx" + " xxx=xxx_xxxx,xxx_xx,xxx_xxx,xxx_xxxx,xxx_xx,xxx_xxx | xxxxxx -x xxxxxxxx -x" + " xxxxxxxx -x" + ), + "xx": ( + "xxxx xxxxxxx xxxxxxxxx -x xxx -x /xxx/{0} -x xxx,xxx -xx {1} -xx {1} -xx" + " xxx=xxx_xxxx_xxx_xxxx,xxx_xx_xxx_xxxx,xxx_xxxx_xxx_xxxx,xxx_xx_xxxx_xxxx,xxx_xxx_xxxx,xxx_xxx_xxxx" + " xxxx=xxx | xxxxxx -x xxxxxxxx -x xxxxxxxx -x" + ), +} + + +class A: + def foo(self): + if True: + xxxxx_xxxxxxxxxxxx( + "xxx xxxxxx xxx xxxxxxxxx.xx xx xxxxxxxx. xxx xxxxxxxxxxxxx.xx" + " xxxxxxx " + + "xx xxxxxx xxxxxx xxxxxx xx xxxxxxx xxx xxx ${0} xx x xxxxxxxx xxxxx" + .xxxxxx(xxxxxx_xxxxxx_xxx) + ) + + +class A: + class B: + def foo(): + row = { + "xxxxxxxxxxxxxxx": xxxxxx_xxxxx_xxxx, + # 'xxxxxxxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxxx' + # 'xxxxxxxxxxxxxxxxx' + "xxxxxxxxxx": xxxxx_xxxxx, + } + + +class A: + def xxxx_xxx_xx_xxxxxxxxxx_xxxx_xxxxxxxxx(xxxx): + xxxxxxxx = [ + xxxxxxxxxxxxxxxx( + "xxxx", + xxxxxxxxxxx={ + "xxxx": 1.0, + }, + xxxxxx={"xxxxxx 1": xxxxxx(xxxx="xxxxxx 1", xxxxxx=600.0)}, + xxxxxxxx_xxxxxxx=0.0, + ), + xxxxxxxxxxxxxxxx( + "xxxxxxx", + xxxxxxxxxxx={ + "xxxx": 1.0, + }, + xxxxxx={"xxxxxx 1": xxxxxx(xxxx="xxxxxx 1", xxxxxx=200.0)}, + xxxxxxxx_xxxxxxx=0.0, + ), + xxxxxxxxxxxxxxxx( + "xxxx", + ), + ] + + +some_dictionary = { + "xxxxx006": [ + "xxx-xxx" + " xxxxx3xxxx1xx2xxxxxxxxxxxxxx0xx6xxxxxxxxxx2xxxxxx9xxxxxxxxxx0xxxxx1xxx2x/xx9xx6+x+xxxxxxxxxxxxxx4xxxxxxxxxxxxxxxxxxxxx43xxx2xx2x4x++xxx6xxxxxxxxx+xxxxx/xx9x+xxxxxxxxxxxxxx8x15xxxxxxxxxxxxxxxxx82xx/xxxxxxxxxxxxxx/x5xxxxxxxxxxxxxx6xxxxxx74x4/xxx4x+xxxxxxxxx2xxxxxxxx87xxxxx4xxxxxxxx3xx0xxxxx4xxx1xx9xx5xxxxxxx/xxxxx5xx6xx4xxxx1x/x2xxxxxxxxxxxx64xxxxxxx1x0xx5xxxxxxxxxxxxxx==" + " xxxxx000 xxxxxxxxxx\n", + "xxx-xxx" + " xxxxx3xxxx1xx2xxxxxxxxxxxxxx6xxxxxxxxxxxxxx9xxxxxxxxxxxxx3xxx9xxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx2xxxx2xxx6xxxxx/xx54xxxxxxxxx4xxx3xxxxxx9xx3xxxxx39xxxxxxxxx5xx91xxxx7xxxxxx8xxxxxxxxxxxxxxxx9xxx93xxxxxxxxxxxxxxxxx7xxx8xx8xx4/x1xxxxx1x3xxxxxxxxxxxxx3xxxxxx9xx4xx4x7xxxxxxxxxxxxx1xxxxxxxxx7xxxxxxxxxxxxxx4xx6xxxxxxxxx9xxx7xxxx2xxxxxxxxxxxxxxxxxxxxxx8xxxxxxxxxxxxxxxxxxxx6xx==" + " xxxxx010 xxxxxxxxxx\n", + ], + "xxxxx016": [ + "xxx-xxx" + " xxxxx3xxxx1xx2xxxxxxxxxxxxxx0xx6xxxxxxxxxx2xxxxxx9xxxxxxxxxx0xxxxx1xxx2x/xx9xx6+x+xxxxxxxxxxxxxx4xxxxxxxxxxxxxxxxxxxxx43xxx2xx2x4x++xxx6xxxxxxxxx+xxxxx/xx9x+xxxxxxxxxxxxxx8x15xxxxxxxxxxxxxxxxx82xx/xxxxxxxxxxxxxx/x5xxxxxxxxxxxxxx6xxxxxx74x4/xxx4x+xxxxxxxxx2xxxxxxxx87xxxxx4xxxxxxxx3xx0xxxxx4xxx1xx9xx5xxxxxxx/xxxxx5xx6xx4xxxx1x/x2xxxxxxxxxxxx64xxxxxxx1x0xx5xxxxxxxxxxxxxx==" + " xxxxx000 xxxxxxxxxx\n", + "xxx-xxx" + " xxxxx3xxxx1xx2xxxxxxxxxxxxxx6xxxxxxxxxxxxxx9xxxxxxxxxxxxx3xxx9xxxxxxxxxxxxxxxx0xxxxxxxxxxxxxxxxx2xxxx2xxx6xxxxx/xx54xxxxxxxxx4xxx3xxxxxx9xx3xxxxx39xxxxxxxxx5xx91xxxx7xxxxxx8xxxxxxxxxxxxxxxx9xxx93xxxxxxxxxxxxxxxxx7xxx8xx8xx4/x1xxxxx1x3xxxxxxxxxxxxx3xxxxxx9xx4xx4x7xxxxxxxxxxxxx1xxxxxxxxx7xxxxxxxxxxxxxx4xx6xxxxxxxxx9xxx7xxxx2xxxxxxxxxxxxxxxxxxxxxx8xxxxxxxxxxxxxxxxxxxx6xx==" + " xxxxx010 xxxxxxxxxx\n", + ], +} + + +def foo(): + xxx_xxx = ( # xxxx xxxxxxxxxx xxxx xx xxxx xx xxx xxxxxxxx xxxxxx xxxxx. + 'xxxx xxx xxxxxxxx_xxxx xx "xxxxxxxxxx".\n xxx: xxxxxx xxxxxxxx_xxxx=xxxxxxxxxx' + ) + + +some_tuple = ("some string", "some string which should be joined") + +some_commented_string = ( # This comment gets thrown to the top. + "This string is long but not so long that it needs hahahah toooooo be so greatttt" + " {} that I just can't think of any more good words to say about it at" + " allllllllllll".format("ha") # comments here are fine +) + +some_commented_string = ( + "This string is long but not so long that it needs hahahah toooooo be so greatttt" # But these + " {} that I just can't think of any more good words to say about it at" # comments will stay + " allllllllllll".format("ha") # comments here are fine +) + +lpar_and_rpar_have_comments = func_call( # LPAR Comment + "Long really ridiculous type of string that shouldn't really even exist at all. I" + " mean commmme onnn!!!", # Comma Comment +) # RPAR Comment + +cmd_fstring = ( + "sudo -E deluge-console info --detailed --sort-reverse=time_added " + f"{'' if ID is None else ID} | perl -nE 'print if /^{field}:/'" +) + +cmd_fstring = ( + "sudo -E deluge-console info --detailed --sort-reverse=time_added" + f" {'' if ID is None else ID} | perl -nE 'print if /^{field}:/'" +) + +cmd_fstring = ( + "sudo -E deluge-console info --detailed --sort-reverse=time_added" + f" {'{{}}' if ID is None else ID} | perl -nE 'print if /^{field}:/'" +) + +cmd_fstring = ( + "sudo -E deluge-console info --detailed --sort-reverse=time_added {'' if ID is" + f" None else ID}} | perl -nE 'print if /^{field}:/'" +) + +fstring = ( + "This string really doesn't need to be an {{fstring}}, but this one most" + f" certainly, absolutely {does}." +) + +fstring = f"We have to remember to escape {braces}. Like {{these}}. But not {this}." + + +class A: + class B: + def foo(): + st_error = STError( + f"This string ({string_leaf.value}) appears to be pointless (i.e. has" + " no parent)." + ) + + +def foo(): + user_regex = _lazy_re_compile( + r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*\Z" # dot-atom + r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"\Z)', # quoted-string + re.IGNORECASE, + ) + + +def foo(): + user_regex = _lazy_re_compile( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # dot-atom + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # quoted-string + xyz, + ) + + +def foo(): + user_regex = _lazy_re_compile( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # dot-atom + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", # quoted-string + xyz, + ) + + +class A: + class B: + def foo(): + if not hasattr(module, name): + raise ValueError( + "Could not find object %s in %s.\n" + "Please note that you cannot serialize things like inner " + "classes. Please move the object into the main module " + "body to use migrations.\n" + "For more information, see " + "https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values" + % (name, module_name, get_docs_version()) + ) + + +class A: + class B: + def foo(): + if not hasattr(module, name): + raise ValueError( + "Could not find object %s in %s.\nPlease note that you cannot" + " serialize things like inner classes. Please move the object into" + " the main module body to use migrations.\nFor more information," + " see https://docs.djangoproject.com/en/%s/topics/migrations/#serializing-values" + % (name, module_name, get_docs_version()) + ) + + +x = ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +) + + +class Step(StepBase): + def who(self): + self.cmd = ( + "SR AAAA-CORRECT NAME IS {last_name} {first_name}{middle_name}" + " {title}/P{passenger_association}".format( + last_name=last_name, + first_name=first_name, + middle_name=middle_name, + title=title, + passenger_association=passenger_association, + ) + ) + + +xxxxxxx_xxxxxx_xxxxxxx = xxx( + [ + xxxxxxxxxxxx( + xxxxxx_xxxxxxx=( + '((x.aaaaaaaaa = "xxxxxx.xxxxxxxxxxxxxxxxxxxxx") || (x.xxxxxxxxx =' + ' "xxxxxxxxxxxx")) && ' + # xxxxx xxxxxxxxxxxx xxxx xxx (xxxxxxxxxxxxxxxx) xx x xxxxxxxxx xx xxxxxx. + "(x.bbbbbbbbbbbb.xxx != " + '"xxx:xxx:xxx::cccccccccccc:xxxxxxx-xxxx/xxxxxxxxxxx/xxxxxxxxxxxxxxxxx") && ' + ) + ) + ] +) + +if __name__ == "__main__": + for i in range(4, 8): + cmd = ( + r"for pid in $(ps aux | grep paster | grep -v grep | grep '\-%d' | awk" + r" '{print $2}'); do kill $pid; done" % (i) + ) + + +def A(): + def B(): + def C(): + def D(): + def E(): + def F(): + def G(): + assert ( + c_float(val[0][0] / val[0][1]).value + == c_float(value[0][0] / value[0][1]).value + ), "%s didn't roundtrip" % tag + + +class xxxxxxxxxxxxxxxxxxxxx(xxxx.xxxxxxxxxxxxx): + def xxxxxxx_xxxxxx(xxxx): + assert xxxxxxx_xxxx in [ + x.xxxxx.xxxxxx.xxxxx.xxxxxx, + x.xxxxx.xxxxxx.xxxxx.xxxx, + ], ( + "xxxxxxxxxxx xxxxxxx xxxx (xxxxxx xxxx) %x xxx xxxxx" % xxxxxxx_xxxx + ) + + +value.__dict__[ + key +] = "test" # set some Thrift field to non-None in the struct aa bb cc dd ee + +RE_ONE_BACKSLASH = { + "asdf_hjkl_jkl": re.compile( + r"(?>\n" +) + +assert ( + str(suffix_arr) + == "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + != "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + <= "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + >= "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + < "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + > "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', " + "'grykangaroo$', 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', " + "'o$', 'oo$', 'roo$', 'rykangaroo$', 'ykangaroo$']" +) +assert ( + str(suffix_arr) + in "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', 'grykangaroo$'," + " 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', 'o$', 'oo$', 'roo$', 'rykangaroo$'," + " 'ykangaroo$']" +) +assert ( + str(suffix_arr) + not in "['$', 'angaroo$', 'angrykangaroo$', 'aroo$', 'garoo$', 'grykangaroo$'," + " 'kangaroo$', 'ngaroo$', 'ngrykangaroo$', 'o$', 'oo$', 'roo$'," + " 'rykangaroo$', 'ykangaroo$']" +) +message = ( + f"1. Go to Google Developers Console and log in with your Google account." + f"(https://console.developers.google.com/)" + f"2. You should be prompted to create a new project (name does not matter)." + f"3. Click on Enable APIs and Services at the top." + f"4. In the list of APIs choose or search for YouTube Data API v3 and " + f"click on it. Choose Enable." + f"5. Click on Credentials on the left navigation bar." + f"6. Click on Create Credential at the top." + f'7. At the top click the link for "API key".' + f"8. No application restrictions are needed. Click Create at the bottom." + f"9. You now have a key to add to `{{prefix}}set api youtube api_key`" +) +message = ( + f"1. Go to Google Developers Console and log in with your Google account." + f"(https://console.developers.google.com/)" + f"2. You should be prompted to create a new project (name does not matter)." + f"3. Click on Enable APIs and Services at the top." + f"4. In the list of APIs choose or search for YouTube Data API v3 and " + f"click on it. Choose Enable." + f"5. Click on Credentials on the left navigation bar." + f"6. Click on Create Credential at the top." + f'7. At the top click the link for "API key".' + f"8. No application restrictions are needed. Click Create at the bottom." + f"9. You now have a key to add to `{{prefix}}set api youtube api_key`" +) +message = ( + "1. Go to Google Developers Console and log in with your Google account." + "(https://console.developers.google.com/)" + "2. You should be prompted to create a new project (name does not matter)." + "3. Click on Enable APIs and Services at the top." + "4. In the list of APIs choose or search for YouTube Data API v3 and " + "click on it. Choose Enable." + "5. Click on Credentials on the left navigation bar." + "6. Click on Create Credential at the top." + '7. At the top click the link for "API key".' + "8. No application restrictions are needed. Click Create at the bottom." + f"9. You now have a key to add to `{prefix}set api youtube api_key`" +) + +# It shouldn't matter if the string prefixes are capitalized. +temp_msg = ( + f"{F'{humanize_number(pos)}.': <{pound_len+2}} " + f"{balance: <{bal_len + 5}} " + f"<<{author.display_name}>>\n" +) + +fstring = f"We have to remember to escape {braces}. Like {{these}}. But not {this}." + +welcome_to_programming = R"hello," R" world!" + +fstring = ( + f"f-strings definitely make things more {difficult} than they need to be for" + " {black}. But boy they sure are handy. The problem is that some lines will need" + f" to have the 'f' whereas others do not. This {line}, for example, needs one." +) + +x = ( + "This is a long string which contains an f-expr that should not split" + f" {{{[i for i in range(5)]}}}." +) + +x = ( + "\N{BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR}\N{VARIATION SELECTOR-16}" +) + +xxxxxx_xxx_xxxx_xx_xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxxxx_xxxx_xxxx_xxxxx = xxxx.xxxxxx.xxxxxxxxx.xxxxxxxxxxxxxxxxxxxx( + xx_xxxxxx={ + "x3_xxxxxxxx": ( + "xxx3_xxxxx_xxxxxxxx_xxxxxxxx_xxxxxxxxxx_xxxxxxxx_xxxxxx_xxxxxxx" + ), + }, +) diff --git a/.vim/bundle/black/tests/data/long_strings_flag_disabled.py b/.vim/bundle/black/tests/data/long_strings_flag_disabled.py new file mode 100644 index 0000000..ef3094f --- /dev/null +++ b/.vim/bundle/black/tests/data/long_strings_flag_disabled.py @@ -0,0 +1,289 @@ +x = "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + +x += "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + +y = "Short string" + +print( + "This is a really long string inside of a print statement with extra arguments attached at the end of it.", + x, + y, + z, +) + +print( + "This is a really long string inside of a print statement with no extra arguments attached at the end of it." +) + +D1 = { + "The First": "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", + "The Second": "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary.", +} + +D2 = { + 1.0: "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", + 2.0: "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary.", +} + +D3 = { + x: "This is a really long string that can't possibly be expected to fit all together on one line. Also it is inside a dictionary, so formatting is more difficult.", + y: "This is another really really (not really) long string that also can't be expected to fit on one line and is, like the other string, inside a dictionary.", +} + +D4 = { + "A long and ridiculous {}".format( + string_key + ): "This is a really really really long string that has to go i,side of a dictionary. It is soooo bad.", + some_func( + "calling", "some", "stuff" + ): "This is a really really really long string that has to go inside of a dictionary. It is {soooo} bad (#{x}).".format( + sooo="soooo", x=2 + ), + "A %s %s" + % ( + "formatted", + "string", + ): "This is a really really really long string that has to go inside of a dictionary. It is %s bad (#%d)." + % ("soooo", 2), +} + +func_with_keywords( + my_arg, + my_kwarg="Long keyword strings also need to be wrapped, but they will probably need to be handled a little bit differently.", +) + +bad_split1 = ( + "But what should happen when code has already been formatted but in the wrong way? Like" + " with a space at the end instead of the beginning. Or what about when it is split too soon?" +) + +bad_split2 = ( + "But what should happen when code has already " + "been formatted but in the wrong way? Like " + "with a space at the end instead of the " + "beginning. Or what about when it is split too " + "soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split." +) + +bad_split3 = ( + "What if we have inline comments on " # First Comment + "each line of a bad split? In that " # Second Comment + "case, we should just leave it alone." # Third Comment +) + +bad_split_func1( + "But what should happen when code has already " + "been formatted but in the wrong way? Like " + "with a space at the end instead of the " + "beginning. Or what about when it is split too " + "soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split.", + xxx, + yyy, + zzz, +) + +bad_split_func2( + xxx, + yyy, + zzz, + long_string_kwarg="But what should happen when code has already been formatted but in the wrong way? Like " + "with a space at the end instead of the beginning. Or what about when it is split too " + "soon?", +) + +bad_split_func3( + ( + "But what should happen when code has already " + r"been formatted but in the wrong way? Like " + "with a space at the end instead of the " + r"beginning. Or what about when it is split too " + r"soon? In the case of a split that is too " + "short, black will try to honer the custom " + "split." + ), + xxx, + yyy, + zzz, +) + +raw_string = r"This is a long raw string. When re-formatting this string, black needs to make sure it prepends the 'r' onto the new string." + +fmt_string1 = "We also need to be sure to preserve any and all {} which may or may not be attached to the string in question.".format( + "method calls" +) + +fmt_string2 = "But what about when the string is {} but {}".format( + "short", + "the method call is really really really really really really really really long?", +) + +old_fmt_string1 = ( + "While we are on the topic of %s, we should also note that old-style formatting must also be preserved, since some %s still uses it." + % ("formatting", "code") +) + +old_fmt_string2 = "This is a %s %s %s %s" % ( + "really really really really really", + "old", + "way to format strings!", + "Use f-strings instead!", +) + +old_fmt_string3 = "Whereas only the strings after the percent sign were long in the last example, this example uses a long initial string as well. This is another %s %s %s %s" % ( + "really really really really really", + "old", + "way to format strings!", + "Use f-strings instead!", +) + +fstring = f"f-strings definitely make things more {difficult} than they need to be for {{black}}. But boy they sure are handy. The problem is that some lines will need to have the 'f' whereas others do not. This {line}, for example, needs one." + +fstring_with_no_fexprs = f"Some regular string that needs to get split certainly but is NOT an fstring by any means whatsoever." + +comment_string = "Long lines with inline comments should have their comments appended to the reformatted string's enclosing right parentheses." # This comment gets thrown to the top. + +arg_comment_string = print( + "Long lines with inline comments which are apart of (and not the only member of) an argument list should have their comments appended to the reformatted string's enclosing left parentheses.", # This comment stays on the bottom. + "Arg #2", + "Arg #3", + "Arg #4", + "Arg #5", +) + +pragma_comment_string1 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa: E501 + +pragma_comment_string2 = "Lines which end with an inline pragma comment of the form `# : <...>` should be left alone." # noqa + +"""This is a really really really long triple quote string and it should not be touched.""" + +triple_quote_string = """This is a really really really long triple quote string assignment and it should not be touched.""" + +assert ( + some_type_of_boolean_expression +), "Followed by a really really really long string that is used to provide context to the AssertionError exception." + +assert ( + some_type_of_boolean_expression +), "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic string {}.".format( + "formatting" +) + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic string %s." + % "formatting" +) + +assert some_type_of_boolean_expression, ( + "Followed by a really really really long string that is used to provide context to the AssertionError exception, which uses dynamic %s %s." + % ("string", "formatting") +) + +some_function_call( + "With a reallly generic name and with a really really long string that is, at some point down the line, " + + added + + " to a variable and then added to another string." +) + +some_function_call( + "With a reallly generic name and with a really really long string that is, at some point down the line, " + + added + + " to a variable and then added to another string. But then what happens when the final string is also supppppperrrrr long?! Well then that second (realllllllly long) string should be split too.", + "and a second argument", + and_a_third, +) + +return "A really really really really really really really really really really really really really long {} {}".format( + "return", "value" +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma which should NOT be there.", +) + +func_with_bad_comma( + "This is a really long string argument to a function that has a trailing comma which should NOT be there.", # comment after comma +) + +func_with_bad_comma( + ( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there." + ), +) + +func_with_bad_comma( + ( + "This is a really long string argument to a function that has a trailing comma" + " which should NOT be there." + ), # comment after comma +) + +func_with_bad_parens_that_wont_fit_in_one_line( + ("short string that should have parens stripped"), x, y, z +) + +func_with_bad_parens_that_wont_fit_in_one_line( + x, y, ("short string that should have parens stripped"), z +) + +func_with_bad_parens( + ("short string that should have parens stripped"), + x, + y, + z, +) + +func_with_bad_parens( + x, + y, + ("short string that should have parens stripped"), + z, +) + +annotated_variable: Final = ( + "This is a large " + + STRING + + " that has been " + + CONCATENATED + + "using the '+' operator." +) +annotated_variable: Final = "This is a large string that has a type annotation attached to it. A type annotation should NOT stop a long string from being wrapped." +annotated_variable: Literal[ + "fakse_literal" +] = "This is a large string that has a type annotation attached to it. A type annotation should NOT stop a long string from being wrapped." + +backslashes = "This is a really long string with \"embedded\" double quotes and 'single' quotes that also handles checking for an even number of backslashes \\" +backslashes = "This is a really long string with \"embedded\" double quotes and 'single' quotes that also handles checking for an even number of backslashes \\\\" +backslashes = "This is a really 'long' string with \"embedded double quotes\" and 'single' quotes that also handles checking for an odd number of backslashes \\\", like this...\\\\\\" + +short_string = "Hi" " there." + +func_call(short_string=("Hi" " there.")) + +raw_strings = r"Don't" " get" r" merged" " unless they are all raw." + + +def foo(): + yield "This is a really long string that can't possibly be expected to fit all together on one line. In fact it may even take up three or more lines... like four or five... but probably just three." + + +x = f"This is a {{really}} long string that needs to be split without a doubt (i.e. most definitely). In short, this {string} that can't possibly be {{expected}} to fit all together on one line. In {fact} it may even take up three or more lines... like four or five... but probably just four." + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # type: ignore + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # noqa + " of it." +) + +long_unmergable_string_with_pragma = ( + "This is a really long string that can't be merged because it has a likely pragma at the end" # pylint: disable=some-pylint-check + " of it." +) diff --git a/.vim/bundle/black/tests/data/missing_final_newline.diff b/.vim/bundle/black/tests/data/missing_final_newline.diff new file mode 100644 index 0000000..6d991c7 --- /dev/null +++ b/.vim/bundle/black/tests/data/missing_final_newline.diff @@ -0,0 +1,8 @@ +--- [Deterministic header] ++++ [Deterministic header] +@@ -1,3 +1,3 @@ + # A comment-only file, with no final EOL character + # This triggers https://bugs.python.org/issue2142 +-# This is the line without the EOL character +\ No newline at end of file ++# This is the line without the EOL character diff --git a/.vim/bundle/black/tests/data/missing_final_newline.py b/.vim/bundle/black/tests/data/missing_final_newline.py new file mode 100644 index 0000000..687e136 --- /dev/null +++ b/.vim/bundle/black/tests/data/missing_final_newline.py @@ -0,0 +1,3 @@ +# A comment-only file, with no final EOL character +# This triggers https://bugs.python.org/issue2142 +# This is the line without the EOL character \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/pyproject.toml b/.vim/bundle/black/tests/data/nested_gitignore_tests/pyproject.toml new file mode 100644 index 0000000..9ba7ec2 --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["setuptools>=41.0", "setuptools-scm", "wheel"] +build-backend = "setuptools.build_meta" diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/.gitignore b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/.gitignore new file mode 100644 index 0000000..2987e7b --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/.gitignore @@ -0,0 +1 @@ +a.py diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/a.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/a.py new file mode 100644 index 0000000..7135cfd --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/a.py @@ -0,0 +1 @@ +# should be excluded (root/.gitignore) diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/b.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/b.py new file mode 100644 index 0000000..bdeeca3 --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/b.py @@ -0,0 +1 @@ +# should be included diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/c.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/c.py new file mode 100644 index 0000000..bdeeca3 --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/c.py @@ -0,0 +1 @@ +# should be included diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/.gitignore b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/.gitignore new file mode 100644 index 0000000..6df81dd --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/.gitignore @@ -0,0 +1 @@ +b.py diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/a.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/a.py new file mode 100644 index 0000000..7135cfd --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/a.py @@ -0,0 +1 @@ +# should be excluded (root/.gitignore) diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/b.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/b.py new file mode 100644 index 0000000..c91d479 --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/b.py @@ -0,0 +1 @@ +# should be excluded (child/.gitignore) diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/c.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/c.py new file mode 100644 index 0000000..bdeeca3 --- /dev/null +++ b/.vim/bundle/black/tests/data/nested_gitignore_tests/root/child/c.py @@ -0,0 +1 @@ +# should be included diff --git a/.vim/bundle/black/tests/data/nested_gitignore_tests/x.py b/.vim/bundle/black/tests/data/nested_gitignore_tests/x.py new file mode 100644 index 0000000..e69de29 diff --git a/.vim/bundle/black/tests/data/non_python_notebook.ipynb b/.vim/bundle/black/tests/data/non_python_notebook.ipynb new file mode 100644 index 0000000..da5cdd8 --- /dev/null +++ b/.vim/bundle/black/tests/data/non_python_notebook.ipynb @@ -0,0 +1 @@ +{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"library(tidyverse) ","metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle"},"execution_count":null,"outputs":[]}]} \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/notebook_empty_metadata.ipynb b/.vim/bundle/black/tests/data/notebook_empty_metadata.ipynb new file mode 100644 index 0000000..7dc1f80 --- /dev/null +++ b/.vim/bundle/black/tests/data/notebook_empty_metadata.ipynb @@ -0,0 +1,27 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "print('foo')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.vim/bundle/black/tests/data/notebook_no_trailing_newline.ipynb b/.vim/bundle/black/tests/data/notebook_no_trailing_newline.ipynb new file mode 100644 index 0000000..79f95be --- /dev/null +++ b/.vim/bundle/black/tests/data/notebook_no_trailing_newline.ipynb @@ -0,0 +1,39 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "print('foo')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "e758f3098b5b55f4d87fe30bbdc1367f20f246b483f96267ee70e6c40cb185d8" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit ('black': venv)", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/notebook_trailing_newline.ipynb b/.vim/bundle/black/tests/data/notebook_trailing_newline.ipynb new file mode 100644 index 0000000..4f82869 --- /dev/null +++ b/.vim/bundle/black/tests/data/notebook_trailing_newline.ipynb @@ -0,0 +1,39 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "print('foo')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "e758f3098b5b55f4d87fe30bbdc1367f20f246b483f96267ee70e6c40cb185d8" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit ('black': venv)", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.vim/bundle/black/tests/data/notebook_which_cant_be_parsed.ipynb b/.vim/bundle/black/tests/data/notebook_which_cant_be_parsed.ipynb new file mode 100644 index 0000000..257cc56 --- /dev/null +++ b/.vim/bundle/black/tests/data/notebook_which_cant_be_parsed.ipynb @@ -0,0 +1 @@ +foo diff --git a/.vim/bundle/black/tests/data/notebook_without_changes.ipynb b/.vim/bundle/black/tests/data/notebook_without_changes.ipynb new file mode 100644 index 0000000..ac6c7e6 --- /dev/null +++ b/.vim/bundle/black/tests/data/notebook_without_changes.ipynb @@ -0,0 +1,46 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "%%time\n", + "\n", + "print(\"foo\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This notebook should not be reformatted" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "e758f3098b5b55f4d87fe30bbdc1367f20f246b483f96267ee70e6c40cb185d8" + }, + "kernelspec": { + "display_name": "Python 3.8.10 64-bit ('black': venv)", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/numeric_literals.py b/.vim/bundle/black/tests/data/numeric_literals.py new file mode 100644 index 0000000..254da68 --- /dev/null +++ b/.vim/bundle/black/tests/data/numeric_literals.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3.6 + +x = 123456789 +x = 123456 +x = .1 +x = 1. +x = 1E+1 +x = 1E-1 +x = 1.000_000_01 +x = 123456789.123456789 +x = 123456789.123456789E123456789 +x = 123456789E123456789 +x = 123456789J +x = 123456789.123456789J +x = 0XB1ACC +x = 0B1011 +x = 0O777 +x = 0.000000006 +x = 10000 +x = 133333 + +# output + + +#!/usr/bin/env python3.6 + +x = 123456789 +x = 123456 +x = 0.1 +x = 1.0 +x = 1e1 +x = 1e-1 +x = 1.000_000_01 +x = 123456789.123456789 +x = 123456789.123456789e123456789 +x = 123456789e123456789 +x = 123456789j +x = 123456789.123456789j +x = 0xB1ACC +x = 0b1011 +x = 0o777 +x = 0.000000006 +x = 10000 +x = 133333 diff --git a/.vim/bundle/black/tests/data/numeric_literals_py2.py b/.vim/bundle/black/tests/data/numeric_literals_py2.py new file mode 100644 index 0000000..8f85c43 --- /dev/null +++ b/.vim/bundle/black/tests/data/numeric_literals_py2.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python2.7 + +x = 123456789L +x = 123456789l +x = 123456789 +x = 0xb1acc + +# output + + +#!/usr/bin/env python2.7 + +x = 123456789L +x = 123456789L +x = 123456789 +x = 0xB1ACC diff --git a/.vim/bundle/black/tests/data/numeric_literals_skip_underscores.py b/.vim/bundle/black/tests/data/numeric_literals_skip_underscores.py new file mode 100644 index 0000000..e345bb9 --- /dev/null +++ b/.vim/bundle/black/tests/data/numeric_literals_skip_underscores.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3.6 + +x = 123456789 +x = 1_2_3_4_5_6_7 +x = 1E+1 +x = 0xb1acc +x = 0.00_00_006 +x = 12_34_567J +x = .1_2 +x = 1_2. + +# output + +#!/usr/bin/env python3.6 + +x = 123456789 +x = 1_2_3_4_5_6_7 +x = 1e1 +x = 0xB1ACC +x = 0.00_00_006 +x = 12_34_567j +x = 0.1_2 +x = 1_2.0 \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/pep_570.py b/.vim/bundle/black/tests/data/pep_570.py new file mode 100644 index 0000000..ca8f7ab --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_570.py @@ -0,0 +1,44 @@ +def positional_only_arg(a, /): + pass + + +def all_markers(a, b, /, c, d, *, e, f): + pass + + +def all_markers_with_args_and_kwargs( + a_long_one, + b_long_one, + /, + c_long_one, + d_long_one, + *args, + e_long_one, + f_long_one, + **kwargs, +): + pass + + +def all_markers_with_defaults(a, b=1, /, c=2, d=3, *, e=4, f=5): + pass + + +def long_one_with_long_parameter_names( + but_all_of_them, + are_positional_only, + arguments_mmmmkay, + so_this_is_only_valid_after, + three_point_eight, + /, +): + pass + + +lambda a, /: a + +lambda a, b, /, c, d, *, e, f: a + +lambda a, b, /, c, d, *args, e, f, **kwargs: args + +lambda a, b=1, /, c=2, d=3, *, e=4, f=5: 1 diff --git a/.vim/bundle/black/tests/data/pep_572.py b/.vim/bundle/black/tests/data/pep_572.py new file mode 100644 index 0000000..c6867f2 --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_572.py @@ -0,0 +1,47 @@ +(a := 1) +(a := a) +if (match := pattern.search(data)) is None: + pass +if match := pattern.search(data): + pass +[y := f(x), y ** 2, y ** 3] +filtered_data = [y for x in data if (y := f(x)) is None] +(y := f(x)) +y0 = (y1 := f(x)) +foo(x=(y := f(x))) + + +def foo(answer=(p := 42)): + pass + + +def foo(answer: (p := 42) = 5): + pass + + +lambda: (x := 1) +(x := lambda: 1) +(x := lambda: (y := 1)) +lambda line: (m := re.match(pattern, line)) and m.group(1) +x = (y := 0) +(z := (y := (x := 0))) +(info := (name, phone, *rest)) +(x := 1, 2) +(total := total + tax) +len(lines := f.readlines()) +foo(x := 3, cat="vector") +foo(cat=(category := "vector")) +if any(len(longline := l) >= 100 for l in lines): + print(longline) +if env_base := os.environ.get("PYTHONUSERBASE", None): + return env_base +if self._is_special and (ans := self._check_nans(context=context)): + return ans +foo(b := 2, a=1) +foo((b := 2), a=1) +foo(c=(b := 2), a=1) + +while x := f(x): + pass +while x := f(x): + pass diff --git a/.vim/bundle/black/tests/data/pep_572_do_not_remove_parens.py b/.vim/bundle/black/tests/data/pep_572_do_not_remove_parens.py new file mode 100644 index 0000000..20e80a6 --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_572_do_not_remove_parens.py @@ -0,0 +1,21 @@ +# Most of the following examples are really dumb, some of them aren't even accepted by Python, +# we're fixing them only so fuzzers (which follow the grammar which actually allows these +# examples matter of fact!) don't yell at us :p + +del (a := [1]) + +try: + pass +except (a := 1) as (b := why_does_this_exist): + pass + +for (z := 124) in (x := -124): + pass + +with (y := [3, 2, 1]) as (funfunfun := indeed): + pass + + +@(please := stop) +def sigh(): + pass diff --git a/.vim/bundle/black/tests/data/pep_572_py310.py b/.vim/bundle/black/tests/data/pep_572_py310.py new file mode 100644 index 0000000..2aef589 --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_572_py310.py @@ -0,0 +1,4 @@ +# Unparenthesized walruses are now allowed in indices since Python 3.10. +x[a:=0] +x[a:=0, b:=1] +x[5, b:=0] diff --git a/.vim/bundle/black/tests/data/pep_572_py39.py b/.vim/bundle/black/tests/data/pep_572_py39.py new file mode 100644 index 0000000..7bbd509 --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_572_py39.py @@ -0,0 +1,7 @@ +# Unparenthesized walruses are now allowed in set literals & set comprehensions +# since Python 3.9 +{x := 1, 2, 3} +{x4 := x ** 5 for x in range(7)} +# We better not remove the parentheses here (since it's a 3.10 feature) +x[(a := 1)] +x[(a := 1), (b := 3)] diff --git a/.vim/bundle/black/tests/data/pep_572_remove_parens.py b/.vim/bundle/black/tests/data/pep_572_remove_parens.py new file mode 100644 index 0000000..9718d95 --- /dev/null +++ b/.vim/bundle/black/tests/data/pep_572_remove_parens.py @@ -0,0 +1,105 @@ +if (foo := 0): + pass + +if (foo := 1): + pass + +if (y := 5 + 5): + pass + +y = (x := 0) + +y += (x := 0) + +(y := 5 + 5) + +test: int = (test2 := 2) + +a, b = (test := (1, 2)) + +# see also https://github.com/psf/black/issues/2139 +assert (foo := 42 - 12) + +foo(x=(y := f(x))) + + +def foo(answer=(p := 42)): + ... + + +def foo2(answer: (p := 42) = 5): + ... + + +lambda: (x := 1) + +a[(x := 12)] +a[:(x := 13)] + +# we don't touch expressions in f-strings but if we do one day, don't break 'em +f'{(x:=10)}' + + +def a(): + return (x := 3) + await (b := 1) + yield (a := 2) + raise (c := 3) + +def this_is_so_dumb() -> (please := no): + pass + + +# output +if foo := 0: + pass + +if foo := 1: + pass + +if y := 5 + 5: + pass + +y = (x := 0) + +y += (x := 0) + +(y := 5 + 5) + +test: int = (test2 := 2) + +a, b = (test := (1, 2)) + +# see also https://github.com/psf/black/issues/2139 +assert (foo := 42 - 12) + +foo(x=(y := f(x))) + + +def foo(answer=(p := 42)): + ... + + +def foo2(answer: (p := 42) = 5): + ... + + +lambda: (x := 1) + +a[(x := 12)] +a[:(x := 13)] + +# we don't touch expressions in f-strings but if we do one day, don't break 'em +f"{(x:=10)}" + + +def a(): + return (x := 3) + await (b := 1) + yield (a := 2) + raise (c := 3) + + +def this_is_so_dumb() -> (please := no): + pass + diff --git a/.vim/bundle/black/tests/data/percent_precedence.py b/.vim/bundle/black/tests/data/percent_precedence.py new file mode 100644 index 0000000..b895443 --- /dev/null +++ b/.vim/bundle/black/tests/data/percent_precedence.py @@ -0,0 +1,41 @@ +("" % a) ** 2 +("" % a)[0] +("" % a)() +("" % a).b + +2 * ("" % a) +2 @ ("" % a) +2 / ("" % a) +2 // ("" % a) +2 % ("" % a) ++("" % a) +b + ("" % a) +-("" % a) +b - ("" % a) +b + -("" % a) +~("" % a) +2 ** ("" % a) +await ("" % a) +b[("" % a)] +b(("" % a)) +# output +("" % a) ** 2 +("" % a)[0] +("" % a)() +("" % a).b + +2 * ("" % a) +2 @ ("" % a) +2 / ("" % a) +2 // ("" % a) +2 % ("" % a) ++("" % a) +b + "" % a +-("" % a) +b - "" % a +b + -("" % a) +~("" % a) +2 ** ("" % a) +await ("" % a) +b[("" % a)] +b(("" % a)) diff --git a/.vim/bundle/black/tests/data/python2.py b/.vim/bundle/black/tests/data/python2.py new file mode 100644 index 0000000..4a22f46 --- /dev/null +++ b/.vim/bundle/black/tests/data/python2.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python2 + +import sys + +print >> sys.stderr , "Warning:" , +print >> sys.stderr , "this is a blast from the past." +print >> sys.stderr , "Look, a repr:", `sys` + + +def function((_globals, _locals)): + exec ur"print 'hi from exec!'" in _globals, _locals + + +function((globals(), locals())) + + +# output + + +#!/usr/bin/env python2 + +import sys + +print >>sys.stderr, "Warning:", +print >>sys.stderr, "this is a blast from the past." +print >>sys.stderr, "Look, a repr:", ` sys ` + + +def function((_globals, _locals)): + exec ur"print 'hi from exec!'" in _globals, _locals + + +function((globals(), locals())) diff --git a/.vim/bundle/black/tests/data/python2_print_function.py b/.vim/bundle/black/tests/data/python2_print_function.py new file mode 100755 index 0000000..81b8d8a --- /dev/null +++ b/.vim/bundle/black/tests/data/python2_print_function.py @@ -0,0 +1,16 @@ +#!/usr/bin/env python2 +from __future__ import print_function + +print('hello') +print(u'hello') +print(a, file=sys.stderr) + +# output + + +#!/usr/bin/env python2 +from __future__ import print_function + +print("hello") +print(u"hello") +print(a, file=sys.stderr) diff --git a/.vim/bundle/black/tests/data/python2_unicode_literals.py b/.vim/bundle/black/tests/data/python2_unicode_literals.py new file mode 100644 index 0000000..2fe7039 --- /dev/null +++ b/.vim/bundle/black/tests/data/python2_unicode_literals.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python2 +from __future__ import unicode_literals as _unicode_literals +from __future__ import absolute_import +from __future__ import print_function as lol, with_function + +u'hello' +U"hello" +Ur"hello" + +# output + + +#!/usr/bin/env python2 +from __future__ import unicode_literals as _unicode_literals +from __future__ import absolute_import +from __future__ import print_function as lol, with_function + +"hello" +"hello" +r"hello" diff --git a/.vim/bundle/black/tests/data/python37.py b/.vim/bundle/black/tests/data/python37.py new file mode 100644 index 0000000..dab8b40 --- /dev/null +++ b/.vim/bundle/black/tests/data/python37.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3.7 + + +def f(): + return (i * 2 async for i in arange(42)) + + +def g(): + return ( + something_long * something_long + async for something_long in async_generator(with_an_argument) + ) + + +async def func(): + if test: + out_batched = [ + i + async for i in aitertools._async_map( + self.async_inc, arange(8), batch_size=3 + ) + ] + + +def awaited_generator_value(n): + return (await awaitable for awaitable in awaitable_list) + + +def make_arange(n): + return (i * 2 for i in range(n) if await wrap(i)) + + +# output + + +#!/usr/bin/env python3.7 + + +def f(): + return (i * 2 async for i in arange(42)) + + +def g(): + return ( + something_long * something_long + async for something_long in async_generator(with_an_argument) + ) + + +async def func(): + if test: + out_batched = [ + i + async for i in aitertools._async_map( + self.async_inc, arange(8), batch_size=3 + ) + ] + + +def awaited_generator_value(n): + return (await awaitable for awaitable in awaitable_list) + + +def make_arange(n): + return (i * 2 for i in range(n) if await wrap(i)) diff --git a/.vim/bundle/black/tests/data/python38.py b/.vim/bundle/black/tests/data/python38.py new file mode 100644 index 0000000..63b0588 --- /dev/null +++ b/.vim/bundle/black/tests/data/python38.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python3.8 + + +def starred_return(): + my_list = ["value2", "value3"] + return "value1", *my_list + + +def starred_yield(): + my_list = ["value2", "value3"] + yield "value1", *my_list + + +# all right hand side expressions allowed in regular assignments are now also allowed in +# annotated assignments +a : Tuple[ str, int] = "1", 2 +a: Tuple[int , ... ] = b, *c, d +def t(): + a : str = yield "a" + + +# output + + +#!/usr/bin/env python3.8 + + +def starred_return(): + my_list = ["value2", "value3"] + return "value1", *my_list + + +def starred_yield(): + my_list = ["value2", "value3"] + yield "value1", *my_list + + +# all right hand side expressions allowed in regular assignments are now also allowed in +# annotated assignments +a: Tuple[str, int] = "1", 2 +a: Tuple[int, ...] = b, *c, d + + +def t(): + a: str = yield "a" diff --git a/.vim/bundle/black/tests/data/python39.py b/.vim/bundle/black/tests/data/python39.py new file mode 100644 index 0000000..ae67c22 --- /dev/null +++ b/.vim/bundle/black/tests/data/python39.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3.9 + +@relaxed_decorator[0] +def f(): + ... + +@relaxed_decorator[extremely_long_name_that_definitely_will_not_fit_on_one_line_of_standard_length] +def f(): + ... + +@extremely_long_variable_name_that_doesnt_fit := complex.expression(with_long="arguments_value_that_wont_fit_at_the_end_of_the_line") +def f(): + ... + +# output + + +#!/usr/bin/env python3.9 + + +@relaxed_decorator[0] +def f(): + ... + + +@relaxed_decorator[ + extremely_long_name_that_definitely_will_not_fit_on_one_line_of_standard_length +] +def f(): + ... + + +@extremely_long_variable_name_that_doesnt_fit := complex.expression( + with_long="arguments_value_that_wont_fit_at_the_end_of_the_line" +) +def f(): + ... \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/remove_parens.py b/.vim/bundle/black/tests/data/remove_parens.py new file mode 100644 index 0000000..abd5f71 --- /dev/null +++ b/.vim/bundle/black/tests/data/remove_parens.py @@ -0,0 +1,142 @@ +x = (1) +x = (1.2) + +data = ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +).encode() + +async def show_status(): + while True: + try: + if report_host: + data = ( + f"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ).encode() + except Exception as e: + pass + +def example(): + return (("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")) + + +def example1(): + return ((1111111111111111111111111111111111111111111111111111111111111111111111111111111111111)) + + +def example1point5(): + return ((((((1111111111111111111111111111111111111111111111111111111111111111111111111111111111111)))))) + + +def example2(): + return (("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")) + + +def example3(): + return ((1111111111111111111111111111111111111111111111111111111111111111111111111111111)) + + +def example4(): + return ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((True)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + + +def example5(): + return ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + + +def example6(): + return ((((((((({a:a for a in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]}))))))))) + + +def example7(): + return ((((((((({a:a for a in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20000000000000000000]}))))))))) + + +def example8(): + return (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((None))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) + +# output +x = 1 +x = 1.2 + +data = ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" +).encode() + + +async def show_status(): + while True: + try: + if report_host: + data = ( + f"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ).encode() + except Exception as e: + pass + + +def example(): + return "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + + +def example1(): + return 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111 + + +def example1point5(): + return 1111111111111111111111111111111111111111111111111111111111111111111111111111111111111 + + +def example2(): + return ( + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" + ) + + +def example3(): + return ( + 1111111111111111111111111111111111111111111111111111111111111111111111111111111 + ) + + +def example4(): + return True + + +def example5(): + return () + + +def example6(): + return {a: a for a in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]} + + +def example7(): + return { + a: a + for a in [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20000000000000000000, + ] + } + + +def example8(): + return None diff --git a/.vim/bundle/black/tests/data/slices.py b/.vim/bundle/black/tests/data/slices.py new file mode 100644 index 0000000..7a42678 --- /dev/null +++ b/.vim/bundle/black/tests/data/slices.py @@ -0,0 +1,31 @@ +slice[a.b : c.d] +slice[d :: d + 1] +slice[d + 1 :: d] +slice[d::d] +slice[0] +slice[-1] +slice[:-1] +slice[::-1] +slice[:c, c - 1] +slice[c, c + 1, d::] +slice[ham[c::d] :: 1] +slice[ham[cheese ** 2 : -1] : 1 : 1, ham[1:2]] +slice[:-1:] +slice[lambda: None : lambda: None] +slice[lambda x, y, *args, really=2, **kwargs: None :, None::] +slice[1 or 2 : True and False] +slice[not so_simple : 1 < val <= 10] +slice[(1 for i in range(42)) : x] +slice[:: [i for i in range(42)]] + + +async def f(): + slice[await x : [i async for i in arange(42)] : 42] + + +# These are from PEP-8: +ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:] +ham[lower:upper], ham[lower:upper:], ham[lower::step] +# ham[lower+offset : upper+offset] +ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)] +ham[lower + offset : upper + offset] diff --git a/.vim/bundle/black/tests/data/string_prefixes.py b/.vim/bundle/black/tests/data/string_prefixes.py new file mode 100644 index 0000000..9ddc2b5 --- /dev/null +++ b/.vim/bundle/black/tests/data/string_prefixes.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3.6 + +name = R"Łukasz" +F"hello {name}" +B"hello" +r"hello" +fR"hello" + + +def docstring_singleline(): + R"""2020 was one hell of a year. The good news is that we were able to""" + + +def docstring_multiline(): + R""" + clear out all of the issues opened in that time :p + """ + + +# output + + +#!/usr/bin/env python3.6 + +name = R"Łukasz" +f"hello {name}" +b"hello" +r"hello" +fR"hello" + + +def docstring_singleline(): + R"""2020 was one hell of a year. The good news is that we were able to""" + + +def docstring_multiline(): + R""" + clear out all of the issues opened in that time :p + """ diff --git a/.vim/bundle/black/tests/data/string_quotes.py b/.vim/bundle/black/tests/data/string_quotes.py new file mode 100644 index 0000000..3384241 --- /dev/null +++ b/.vim/bundle/black/tests/data/string_quotes.py @@ -0,0 +1,112 @@ +'''''' +'\'' +'"' +"'" +"\"" +"Hello" +"Don't do that" +'Here is a "' +'What\'s the deal here?' +"What's the deal \"here\"?" +"And \"here\"?" +"""Strings with "" in them""" +'''Strings with "" in them''' +'''Here's a "''' +'''Here's a " ''' +'''Just a normal triple +quote''' +f"just a normal {f} string" +f'''This is a triple-quoted {f}-string''' +f'MOAR {" ".join([])}' +f"MOAR {' '.join([])}" +r"raw string ftw" +r'Date d\'expiration:(.*)' +r'Tricky "quote' +r'Not-so-tricky \"quote' +rf'{yay}' +'\n\ +The \"quick\"\n\ +brown fox\n\ +jumps over\n\ +the \'lazy\' dog.\n\ +' +re.compile(r'[\\"]') +"x = ''; y = \"\"" +"x = '''; y = \"\"" +"x = ''''; y = \"\"" +"x = '' ''; y = \"\"" +"x = ''; y = \"\"\"" +"x = '''; y = \"\"\"\"" +"x = ''''; y = \"\"\"\"\"" +"x = '' ''; y = \"\"\"\"\"" +'unnecessary \"\"escaping' +"unnecessary \'\'escaping" +'\\""' +"\\''" +'Lots of \\\\\\\\\'quotes\'' +f'{y * " "} \'{z}\'' +f'{{y * " "}} \'{z}\'' +f'\'{z}\' {y * " "}' +f'{y * x} \'{z}\'' +'\'{z}\' {y * " "}' +'{y * x} \'{z}\'' + +# We must bail out if changing the quotes would introduce backslashes in f-string +# expressions. xref: https://github.com/psf/black/issues/2348 +f"\"{b}\"{' ' * (long-len(b)+1)}: \"{sts}\",\n" +f"\"{a}\"{'hello' * b}\"{c}\"" + +# output + +"""""" +"'" +'"' +"'" +'"' +"Hello" +"Don't do that" +'Here is a "' +"What's the deal here?" +'What\'s the deal "here"?' +'And "here"?' +"""Strings with "" in them""" +"""Strings with "" in them""" +'''Here's a "''' +"""Here's a " """ +"""Just a normal triple +quote""" +f"just a normal {f} string" +f"""This is a triple-quoted {f}-string""" +f'MOAR {" ".join([])}' +f"MOAR {' '.join([])}" +r"raw string ftw" +r"Date d\'expiration:(.*)" +r'Tricky "quote' +r"Not-so-tricky \"quote" +rf"{yay}" +"\nThe \"quick\"\nbrown fox\njumps over\nthe 'lazy' dog.\n" +re.compile(r'[\\"]') +"x = ''; y = \"\"" +"x = '''; y = \"\"" +"x = ''''; y = \"\"" +"x = '' ''; y = \"\"" +'x = \'\'; y = """' +'x = \'\'\'; y = """"' +'x = \'\'\'\'; y = """""' +'x = \'\' \'\'; y = """""' +'unnecessary ""escaping' +"unnecessary ''escaping" +'\\""' +"\\''" +"Lots of \\\\\\\\'quotes'" +f'{y * " "} \'{z}\'' +f"{{y * \" \"}} '{z}'" +f'\'{z}\' {y * " "}' +f"{y * x} '{z}'" +"'{z}' {y * \" \"}" +"{y * x} '{z}'" + +# We must bail out if changing the quotes would introduce backslashes in f-string +# expressions. xref: https://github.com/psf/black/issues/2348 +f"\"{b}\"{' ' * (long-len(b)+1)}: \"{sts}\",\n" +f"\"{a}\"{'hello' * b}\"{c}\"" diff --git a/.vim/bundle/black/tests/data/stub.pyi b/.vim/bundle/black/tests/data/stub.pyi new file mode 100644 index 0000000..94ba852 --- /dev/null +++ b/.vim/bundle/black/tests/data/stub.pyi @@ -0,0 +1,35 @@ +X: int + +def f(): ... + +class C: + ... + +class B: + ... + +class A: + def f(self) -> int: + ... + + def g(self) -> str: ... + +def g(): + ... + +def h(): ... + +# output +X: int + +def f(): ... + +class C: ... +class B: ... + +class A: + def f(self) -> int: ... + def g(self) -> str: ... + +def g(): ... +def h(): ... diff --git a/.vim/bundle/black/tests/data/trailing_comma_optional_parens1.py b/.vim/bundle/black/tests/data/trailing_comma_optional_parens1.py new file mode 100644 index 0000000..5ad29a8 --- /dev/null +++ b/.vim/bundle/black/tests/data/trailing_comma_optional_parens1.py @@ -0,0 +1,3 @@ +if e1234123412341234.winerror not in (_winapi.ERROR_SEM_TIMEOUT, + _winapi.ERROR_PIPE_BUSY) or _check_timeout(t): + pass \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/trailing_comma_optional_parens2.py b/.vim/bundle/black/tests/data/trailing_comma_optional_parens2.py new file mode 100644 index 0000000..2817073 --- /dev/null +++ b/.vim/bundle/black/tests/data/trailing_comma_optional_parens2.py @@ -0,0 +1,3 @@ +if (e123456.get_tk_patchlevel() >= (8, 6, 0, 'final') or + (8, 5, 8) <= get_tk_patchlevel() < (8, 6)): + pass \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/trailing_comma_optional_parens3.py b/.vim/bundle/black/tests/data/trailing_comma_optional_parens3.py new file mode 100644 index 0000000..e6a673e --- /dev/null +++ b/.vim/bundle/black/tests/data/trailing_comma_optional_parens3.py @@ -0,0 +1,8 @@ +if True: + if True: + if True: + return _( + "qweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweas " + + "qweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqwegqweasdzxcqweasdzxc.", + "qweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqweasdzxcqwe", + ) % {"reported_username": reported_username, "report_reason": report_reason} \ No newline at end of file diff --git a/.vim/bundle/black/tests/data/tricky_unicode_symbols.py b/.vim/bundle/black/tests/data/tricky_unicode_symbols.py new file mode 100644 index 0000000..366a92f --- /dev/null +++ b/.vim/bundle/black/tests/data/tricky_unicode_symbols.py @@ -0,0 +1,6 @@ +ä = 1 +µ = 2 +蟒 = 3 +x󠄀 = 4 +មុ = 1 +Q̇_per_meter = 4 diff --git a/.vim/bundle/black/tests/data/tupleassign.py b/.vim/bundle/black/tests/data/tupleassign.py new file mode 100644 index 0000000..d948fee --- /dev/null +++ b/.vim/bundle/black/tests/data/tupleassign.py @@ -0,0 +1,23 @@ +# This is a standalone comment. +sdfjklsdfsjldkflkjsf, sdfjsdfjlksdljkfsdlkf, sdfsdjfklsdfjlksdljkf, sdsfsdfjskdflsfsdf = 1, 2, 3 + +# This is as well. +this_will_be_wrapped_in_parens, = struct.unpack(b"12345678901234567890") + +(a,) = call() + +# output + + +# This is a standalone comment. +( + sdfjklsdfsjldkflkjsf, + sdfjsdfjlksdljkfsdlkf, + sdfsdjfklsdfjlksdljkf, + sdsfsdfjskdflsfsdf, +) = (1, 2, 3) + +# This is as well. +(this_will_be_wrapped_in_parens,) = struct.unpack(b"12345678901234567890") + +(a,) = call() \ No newline at end of file diff --git a/.vim/bundle/black/tests/empty.toml b/.vim/bundle/black/tests/empty.toml new file mode 100644 index 0000000..3908e45 --- /dev/null +++ b/.vim/bundle/black/tests/empty.toml @@ -0,0 +1 @@ +# Empty configuration file; used in tests to avoid interference from Black's own config. diff --git a/.vim/bundle/black/tests/optional.py b/.vim/bundle/black/tests/optional.py new file mode 100644 index 0000000..e12b94c --- /dev/null +++ b/.vim/bundle/black/tests/optional.py @@ -0,0 +1,119 @@ +""" +Allows configuring optional test markers in config, see pyproject.toml. + +Run optional tests with `pytest --run-optional=...`. + +Mark tests to run only if an optional test ISN'T selected by prepending the mark with +"no_". + +You can specify a "no_" prefix straight in config, in which case you can mark tests +to run when this tests ISN'T selected by omitting the "no_" prefix. + +Specifying the name of the default behavior in `--run-optional=` is harmless. + +Adapted from https://pypi.org/project/pytest-optional-tests/, (c) 2019 Reece Hart +""" + +from functools import lru_cache +import itertools +import logging +import re +from typing import FrozenSet, List, Set, TYPE_CHECKING + +import pytest +from _pytest.store import StoreKey + +log = logging.getLogger(__name__) + + +if TYPE_CHECKING: + from _pytest.config.argparsing import Parser + from _pytest.config import Config + from _pytest.mark.structures import MarkDecorator + from _pytest.nodes import Node + + +ALL_POSSIBLE_OPTIONAL_MARKERS = StoreKey[FrozenSet[str]]() +ENABLED_OPTIONAL_MARKERS = StoreKey[FrozenSet[str]]() + + +def pytest_addoption(parser: "Parser") -> None: + group = parser.getgroup("collect") + group.addoption( + "--run-optional", + action="append", + dest="run_optional", + default=None, + help="Optional test markers to run; comma-separated", + ) + parser.addini("optional-tests", "List of optional tests markers", "linelist") + + +def pytest_configure(config: "Config") -> None: + """Optional tests are markers. + + Use the syntax in https://docs.pytest.org/en/stable/mark.html#registering-marks. + """ + ot_ini = config.inicfg.get("optional-tests") or [] + ot_markers = set() + ot_run: Set[str] = set() + if isinstance(ot_ini, str): + ot_ini = ot_ini.strip().split("\n") + marker_re = re.compile(r"^\s*(?Pno_)?(?P\w+)(:\s*(?P.*))?") + for ot in ot_ini: + m = marker_re.match(ot) + if not m: + raise ValueError(f"{ot!r} doesn't match pytest marker syntax") + + marker = (m.group("no") or "") + m.group("marker") + description = m.group("description") + config.addinivalue_line("markers", f"{marker}: {description}") + config.addinivalue_line( + "markers", f"{no(marker)}: run when `{marker}` not passed" + ) + ot_markers.add(marker) + + # collect requested optional tests + passed_args = config.getoption("run_optional") + if passed_args: + ot_run.update(itertools.chain.from_iterable(a.split(",") for a in passed_args)) + ot_run |= {no(excluded) for excluded in ot_markers - ot_run} + ot_markers |= {no(m) for m in ot_markers} + + log.info("optional tests to run:", ot_run) + unknown_tests = ot_run - ot_markers + if unknown_tests: + raise ValueError(f"Unknown optional tests wanted: {unknown_tests!r}") + + store = config._store + store[ALL_POSSIBLE_OPTIONAL_MARKERS] = frozenset(ot_markers) + store[ENABLED_OPTIONAL_MARKERS] = frozenset(ot_run) + + +def pytest_collection_modifyitems(config: "Config", items: "List[Node]") -> None: + store = config._store + all_possible_optional_markers = store[ALL_POSSIBLE_OPTIONAL_MARKERS] + enabled_optional_markers = store[ENABLED_OPTIONAL_MARKERS] + + for item in items: + all_markers_on_test = set(m.name for m in item.iter_markers()) + optional_markers_on_test = all_markers_on_test & all_possible_optional_markers + if not optional_markers_on_test or ( + optional_markers_on_test & enabled_optional_markers + ): + continue + log.info("skipping non-requested optional", item) + item.add_marker(skip_mark(frozenset(optional_markers_on_test))) + + +@lru_cache() +def skip_mark(tests: FrozenSet[str]) -> "MarkDecorator": + names = ", ".join(sorted(tests)) + return pytest.mark.skip(reason=f"Marked with disabled optional tests ({names})") + + +@lru_cache() +def no(name: str) -> str: + if name.startswith("no_"): + return name[len("no_") :] + return "no_" + name diff --git a/.vim/bundle/black/tests/test.toml b/.vim/bundle/black/tests/test.toml new file mode 100644 index 0000000..d3ab1e6 --- /dev/null +++ b/.vim/bundle/black/tests/test.toml @@ -0,0 +1,16 @@ +[tool.black] +verbose = 1 +--check = "no" +diff = "y" +color = true +line-length = 79 +target-version = ["py36", "py37", "py38"] +exclude='\.pyi?$' +include='\.py?$' + +[v1.0.0-syntax] +# This shouldn't break Black. +contributors = [ + "Foo Bar ", + { name = "Baz Qux", email = "bazqux@example.com", url = "https://example.com/bazqux" } +] diff --git a/.vim/bundle/black/tests/test_black.py b/.vim/bundle/black/tests/test_black.py new file mode 100644 index 0000000..beb56cf --- /dev/null +++ b/.vim/bundle/black/tests/test_black.py @@ -0,0 +1,2040 @@ +#!/usr/bin/env python3 + +import asyncio +import inspect +import io +import logging +import multiprocessing +import os +import sys +import types +import unittest +from concurrent.futures import ThreadPoolExecutor +from contextlib import contextmanager +from dataclasses import replace +from io import BytesIO +from pathlib import Path +from platform import system +from tempfile import TemporaryDirectory +from typing import ( + Any, + Callable, + Dict, + Iterator, + List, + Optional, + Sequence, + TypeVar, + Union, +) +from unittest.mock import MagicMock, patch + +import click +import pytest +import regex as re +from click import unstyle +from click.testing import CliRunner +from pathspec import PathSpec + +import black +import black.files +from black import Feature, TargetVersion +from black import re_compile_maybe_verbose as compile_pattern +from black.cache import get_cache_file +from black.debug import DebugVisitor +from black.output import color_diff, diff +from black.report import Report + +# Import other test classes +from tests.util import ( + DATA_DIR, + DEFAULT_MODE, + DETERMINISTIC_HEADER, + PY36_VERSIONS, + THIS_DIR, + BlackBaseTestCase, + assert_format, + change_directory, + dump_to_stderr, + ff, + fs, + read_data, +) + +THIS_FILE = Path(__file__) +PY36_ARGS = [f"--target-version={version.name.lower()}" for version in PY36_VERSIONS] +DEFAULT_EXCLUDE = black.re_compile_maybe_verbose(black.const.DEFAULT_EXCLUDES) +DEFAULT_INCLUDE = black.re_compile_maybe_verbose(black.const.DEFAULT_INCLUDES) +T = TypeVar("T") +R = TypeVar("R") + +# Match the time output in a diff, but nothing else +DIFF_TIME = re.compile(r"\t[\d-:+\. ]+") + + +@contextmanager +def cache_dir(exists: bool = True) -> Iterator[Path]: + with TemporaryDirectory() as workspace: + cache_dir = Path(workspace) + if not exists: + cache_dir = cache_dir / "new" + with patch("black.cache.CACHE_DIR", cache_dir): + yield cache_dir + + +@contextmanager +def event_loop() -> Iterator[None]: + policy = asyncio.get_event_loop_policy() + loop = policy.new_event_loop() + asyncio.set_event_loop(loop) + try: + yield + + finally: + loop.close() + + +class FakeContext(click.Context): + """A fake click Context for when calling functions that need it.""" + + def __init__(self) -> None: + self.default_map: Dict[str, Any] = {} + + +class FakeParameter(click.Parameter): + """A fake click Parameter for when calling functions that need it.""" + + def __init__(self) -> None: + pass + + +class BlackRunner(CliRunner): + """Make sure STDOUT and STDERR are kept separate when testing Black via its CLI.""" + + def __init__(self) -> None: + super().__init__(mix_stderr=False) + + +def invokeBlack( + args: List[str], exit_code: int = 0, ignore_config: bool = True +) -> None: + runner = BlackRunner() + if ignore_config: + args = ["--verbose", "--config", str(THIS_DIR / "empty.toml"), *args] + result = runner.invoke(black.main, args) + assert result.stdout_bytes is not None + assert result.stderr_bytes is not None + msg = ( + f"Failed with args: {args}\n" + f"stdout: {result.stdout_bytes.decode()!r}\n" + f"stderr: {result.stderr_bytes.decode()!r}\n" + f"exception: {result.exception}" + ) + assert result.exit_code == exit_code, msg + + +class BlackTestCase(BlackBaseTestCase): + invokeBlack = staticmethod(invokeBlack) + + def test_empty_ff(self) -> None: + expected = "" + tmp_file = Path(black.dump_to_file()) + try: + self.assertFalse(ff(tmp_file, write_back=black.WriteBack.YES)) + with open(tmp_file, encoding="utf8") as f: + actual = f.read() + finally: + os.unlink(tmp_file) + self.assertFormatEqual(expected, actual) + + def test_piping(self) -> None: + source, expected = read_data("src/black/__init__", data=False) + result = BlackRunner().invoke( + black.main, + ["-", "--fast", f"--line-length={black.DEFAULT_LINE_LENGTH}"], + input=BytesIO(source.encode("utf8")), + ) + self.assertEqual(result.exit_code, 0) + self.assertFormatEqual(expected, result.output) + if source != result.output: + black.assert_equivalent(source, result.output) + black.assert_stable(source, result.output, DEFAULT_MODE) + + def test_piping_diff(self) -> None: + diff_header = re.compile( + r"(STDIN|STDOUT)\t\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d\d\d\d " + r"\+\d\d\d\d" + ) + source, _ = read_data("expression.py") + expected, _ = read_data("expression.diff") + config = THIS_DIR / "data" / "empty_pyproject.toml" + args = [ + "-", + "--fast", + f"--line-length={black.DEFAULT_LINE_LENGTH}", + "--diff", + f"--config={config}", + ] + result = BlackRunner().invoke( + black.main, args, input=BytesIO(source.encode("utf8")) + ) + self.assertEqual(result.exit_code, 0) + actual = diff_header.sub(DETERMINISTIC_HEADER, result.output) + actual = actual.rstrip() + "\n" # the diff output has a trailing space + self.assertEqual(expected, actual) + + def test_piping_diff_with_color(self) -> None: + source, _ = read_data("expression.py") + config = THIS_DIR / "data" / "empty_pyproject.toml" + args = [ + "-", + "--fast", + f"--line-length={black.DEFAULT_LINE_LENGTH}", + "--diff", + "--color", + f"--config={config}", + ] + result = BlackRunner().invoke( + black.main, args, input=BytesIO(source.encode("utf8")) + ) + actual = result.output + # Again, the contents are checked in a different test, so only look for colors. + self.assertIn("\033[1;37m", actual) + self.assertIn("\033[36m", actual) + self.assertIn("\033[32m", actual) + self.assertIn("\033[31m", actual) + self.assertIn("\033[0m", actual) + + @patch("black.dump_to_file", dump_to_stderr) + def _test_wip(self) -> None: + source, expected = read_data("wip") + sys.settrace(tracefunc) + mode = replace( + DEFAULT_MODE, + experimental_string_processing=False, + target_versions={black.TargetVersion.PY38}, + ) + actual = fs(source, mode=mode) + sys.settrace(None) + self.assertFormatEqual(expected, actual) + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, black.FileMode()) + + @unittest.expectedFailure + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability1(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens1") + actual = fs(source) + black.assert_stable(source, actual, DEFAULT_MODE) + + @unittest.expectedFailure + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability2(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens2") + actual = fs(source) + black.assert_stable(source, actual, DEFAULT_MODE) + + @unittest.expectedFailure + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability3(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens3") + actual = fs(source) + black.assert_stable(source, actual, DEFAULT_MODE) + + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability1_pass2(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens1") + actual = fs(fs(source)) # this is what `format_file_contents` does with --safe + black.assert_stable(source, actual, DEFAULT_MODE) + + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability2_pass2(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens2") + actual = fs(fs(source)) # this is what `format_file_contents` does with --safe + black.assert_stable(source, actual, DEFAULT_MODE) + + @patch("black.dump_to_file", dump_to_stderr) + def test_trailing_comma_optional_parens_stability3_pass2(self) -> None: + source, _expected = read_data("trailing_comma_optional_parens3") + actual = fs(fs(source)) # this is what `format_file_contents` does with --safe + black.assert_stable(source, actual, DEFAULT_MODE) + + def test_pep_572_version_detection(self) -> None: + source, _ = read_data("pep_572") + root = black.lib2to3_parse(source) + features = black.get_features_used(root) + self.assertIn(black.Feature.ASSIGNMENT_EXPRESSIONS, features) + versions = black.detect_target_versions(root) + self.assertIn(black.TargetVersion.PY38, versions) + + def test_expression_ff(self) -> None: + source, expected = read_data("expression") + tmp_file = Path(black.dump_to_file(source)) + try: + self.assertTrue(ff(tmp_file, write_back=black.WriteBack.YES)) + with open(tmp_file, encoding="utf8") as f: + actual = f.read() + finally: + os.unlink(tmp_file) + self.assertFormatEqual(expected, actual) + with patch("black.dump_to_file", dump_to_stderr): + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, DEFAULT_MODE) + + def test_expression_diff(self) -> None: + source, _ = read_data("expression.py") + config = THIS_DIR / "data" / "empty_pyproject.toml" + expected, _ = read_data("expression.diff") + tmp_file = Path(black.dump_to_file(source)) + diff_header = re.compile( + rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d " + r"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) + try: + result = BlackRunner().invoke( + black.main, ["--diff", str(tmp_file), f"--config={config}"] + ) + self.assertEqual(result.exit_code, 0) + finally: + os.unlink(tmp_file) + actual = result.output + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) + if expected != actual: + dump = black.dump_to_file(actual) + msg = ( + "Expected diff isn't equal to the actual. If you made changes to" + " expression.py and this is an anticipated difference, overwrite" + f" tests/data/expression.diff with {dump}" + ) + self.assertEqual(expected, actual, msg) + + def test_expression_diff_with_color(self) -> None: + source, _ = read_data("expression.py") + config = THIS_DIR / "data" / "empty_pyproject.toml" + expected, _ = read_data("expression.diff") + tmp_file = Path(black.dump_to_file(source)) + try: + result = BlackRunner().invoke( + black.main, ["--diff", "--color", str(tmp_file), f"--config={config}"] + ) + finally: + os.unlink(tmp_file) + actual = result.output + # We check the contents of the diff in `test_expression_diff`. All + # we need to check here is that color codes exist in the result. + self.assertIn("\033[1;37m", actual) + self.assertIn("\033[36m", actual) + self.assertIn("\033[32m", actual) + self.assertIn("\033[31m", actual) + self.assertIn("\033[0m", actual) + + def test_detect_pos_only_arguments(self) -> None: + source, _ = read_data("pep_570") + root = black.lib2to3_parse(source) + features = black.get_features_used(root) + self.assertIn(black.Feature.POS_ONLY_ARGUMENTS, features) + versions = black.detect_target_versions(root) + self.assertIn(black.TargetVersion.PY38, versions) + + @patch("black.dump_to_file", dump_to_stderr) + def test_string_quotes(self) -> None: + source, expected = read_data("string_quotes") + mode = black.Mode(experimental_string_processing=True) + assert_format(source, expected, mode) + mode = replace(mode, string_normalization=False) + not_normalized = fs(source, mode=mode) + self.assertFormatEqual(source.replace("\\\n", ""), not_normalized) + black.assert_equivalent(source, not_normalized) + black.assert_stable(source, not_normalized, mode=mode) + + def test_skip_magic_trailing_comma(self) -> None: + source, _ = read_data("expression.py") + expected, _ = read_data("expression_skip_magic_trailing_comma.diff") + tmp_file = Path(black.dump_to_file(source)) + diff_header = re.compile( + rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d " + r"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) + try: + result = BlackRunner().invoke(black.main, ["-C", "--diff", str(tmp_file)]) + self.assertEqual(result.exit_code, 0) + finally: + os.unlink(tmp_file) + actual = result.output + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) + actual = actual.rstrip() + "\n" # the diff output has a trailing space + if expected != actual: + dump = black.dump_to_file(actual) + msg = ( + "Expected diff isn't equal to the actual. If you made changes to" + " expression.py and this is an anticipated difference, overwrite" + f" tests/data/expression_skip_magic_trailing_comma.diff with {dump}" + ) + self.assertEqual(expected, actual, msg) + + @patch("black.dump_to_file", dump_to_stderr) + def test_async_as_identifier(self) -> None: + source_path = (THIS_DIR / "data" / "async_as_identifier.py").resolve() + source, expected = read_data("async_as_identifier") + actual = fs(source) + self.assertFormatEqual(expected, actual) + major, minor = sys.version_info[:2] + if major < 3 or (major <= 3 and minor < 7): + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, DEFAULT_MODE) + # ensure black can parse this when the target is 3.6 + self.invokeBlack([str(source_path), "--target-version", "py36"]) + # but not on 3.7, because async/await is no longer an identifier + self.invokeBlack([str(source_path), "--target-version", "py37"], exit_code=123) + + @patch("black.dump_to_file", dump_to_stderr) + def test_python37(self) -> None: + source_path = (THIS_DIR / "data" / "python37.py").resolve() + source, expected = read_data("python37") + actual = fs(source) + self.assertFormatEqual(expected, actual) + major, minor = sys.version_info[:2] + if major > 3 or (major == 3 and minor >= 7): + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, DEFAULT_MODE) + # ensure black can parse this when the target is 3.7 + self.invokeBlack([str(source_path), "--target-version", "py37"]) + # but not on 3.6, because we use async as a reserved keyword + self.invokeBlack([str(source_path), "--target-version", "py36"], exit_code=123) + + def test_tab_comment_indentation(self) -> None: + contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t# comment\n\tpass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + self.assertFormatEqual(contents_spc, fs(contents_spc)) + self.assertFormatEqual(contents_spc, fs(contents_tab)) + + contents_tab = "if 1:\n\tif 2:\n\t\tpass\n\t\t# comment\n\tpass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + self.assertFormatEqual(contents_spc, fs(contents_spc)) + self.assertFormatEqual(contents_spc, fs(contents_tab)) + + # mixed tabs and spaces (valid Python 2 code) + contents_tab = "if 1:\n if 2:\n\t\tpass\n\t# comment\n pass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + self.assertFormatEqual(contents_spc, fs(contents_spc)) + self.assertFormatEqual(contents_spc, fs(contents_tab)) + + contents_tab = "if 1:\n if 2:\n\t\tpass\n\t\t# comment\n pass\n" + contents_spc = "if 1:\n if 2:\n pass\n # comment\n pass\n" + self.assertFormatEqual(contents_spc, fs(contents_spc)) + self.assertFormatEqual(contents_spc, fs(contents_tab)) + + def test_report_verbose(self) -> None: + report = Report(verbose=True) + out_lines = [] + err_lines = [] + + def out(msg: str, **kwargs: Any) -> None: + out_lines.append(msg) + + def err(msg: str, **kwargs: Any) -> None: + err_lines.append(msg) + + with patch("black.output._out", out), patch("black.output._err", err): + report.done(Path("f1"), black.Changed.NO) + self.assertEqual(len(out_lines), 1) + self.assertEqual(len(err_lines), 0) + self.assertEqual(out_lines[-1], "f1 already well formatted, good job.") + self.assertEqual(unstyle(str(report)), "1 file left unchanged.") + self.assertEqual(report.return_code, 0) + report.done(Path("f2"), black.Changed.YES) + self.assertEqual(len(out_lines), 2) + self.assertEqual(len(err_lines), 0) + self.assertEqual(out_lines[-1], "reformatted f2") + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file left unchanged." + ) + report.done(Path("f3"), black.Changed.CACHED) + self.assertEqual(len(out_lines), 3) + self.assertEqual(len(err_lines), 0) + self.assertEqual( + out_lines[-1], "f3 wasn't modified on disk since last run." + ) + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 2 files left unchanged." + ) + self.assertEqual(report.return_code, 0) + report.check = True + self.assertEqual(report.return_code, 1) + report.check = False + report.failed(Path("e1"), "boom") + self.assertEqual(len(out_lines), 3) + self.assertEqual(len(err_lines), 1) + self.assertEqual(err_lines[-1], "error: cannot format e1: boom") + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f3"), black.Changed.YES) + self.assertEqual(len(out_lines), 4) + self.assertEqual(len(err_lines), 1) + self.assertEqual(out_lines[-1], "reformatted f3") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.failed(Path("e2"), "boom") + self.assertEqual(len(out_lines), 4) + self.assertEqual(len(err_lines), 2) + self.assertEqual(err_lines[-1], "error: cannot format e2: boom") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.path_ignored(Path("wat"), "no match") + self.assertEqual(len(out_lines), 5) + self.assertEqual(len(err_lines), 2) + self.assertEqual(out_lines[-1], "wat ignored: no match") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f4"), black.Changed.NO) + self.assertEqual(len(out_lines), 6) + self.assertEqual(len(err_lines), 2) + self.assertEqual(out_lines[-1], "f4 already well formatted, good job.") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 3 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.check = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + + def test_report_quiet(self) -> None: + report = Report(quiet=True) + out_lines = [] + err_lines = [] + + def out(msg: str, **kwargs: Any) -> None: + out_lines.append(msg) + + def err(msg: str, **kwargs: Any) -> None: + err_lines.append(msg) + + with patch("black.output._out", out), patch("black.output._err", err): + report.done(Path("f1"), black.Changed.NO) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 0) + self.assertEqual(unstyle(str(report)), "1 file left unchanged.") + self.assertEqual(report.return_code, 0) + report.done(Path("f2"), black.Changed.YES) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 0) + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file left unchanged." + ) + report.done(Path("f3"), black.Changed.CACHED) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 0) + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 2 files left unchanged." + ) + self.assertEqual(report.return_code, 0) + report.check = True + self.assertEqual(report.return_code, 1) + report.check = False + report.failed(Path("e1"), "boom") + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 1) + self.assertEqual(err_lines[-1], "error: cannot format e1: boom") + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f3"), black.Changed.YES) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 1) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.failed(Path("e2"), "boom") + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 2) + self.assertEqual(err_lines[-1], "error: cannot format e2: boom") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.path_ignored(Path("wat"), "no match") + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 2) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f4"), black.Changed.NO) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 2) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 3 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.check = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + + def test_report_normal(self) -> None: + report = black.Report() + out_lines = [] + err_lines = [] + + def out(msg: str, **kwargs: Any) -> None: + out_lines.append(msg) + + def err(msg: str, **kwargs: Any) -> None: + err_lines.append(msg) + + with patch("black.output._out", out), patch("black.output._err", err): + report.done(Path("f1"), black.Changed.NO) + self.assertEqual(len(out_lines), 0) + self.assertEqual(len(err_lines), 0) + self.assertEqual(unstyle(str(report)), "1 file left unchanged.") + self.assertEqual(report.return_code, 0) + report.done(Path("f2"), black.Changed.YES) + self.assertEqual(len(out_lines), 1) + self.assertEqual(len(err_lines), 0) + self.assertEqual(out_lines[-1], "reformatted f2") + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 1 file left unchanged." + ) + report.done(Path("f3"), black.Changed.CACHED) + self.assertEqual(len(out_lines), 1) + self.assertEqual(len(err_lines), 0) + self.assertEqual(out_lines[-1], "reformatted f2") + self.assertEqual( + unstyle(str(report)), "1 file reformatted, 2 files left unchanged." + ) + self.assertEqual(report.return_code, 0) + report.check = True + self.assertEqual(report.return_code, 1) + report.check = False + report.failed(Path("e1"), "boom") + self.assertEqual(len(out_lines), 1) + self.assertEqual(len(err_lines), 1) + self.assertEqual(err_lines[-1], "error: cannot format e1: boom") + self.assertEqual( + unstyle(str(report)), + "1 file reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f3"), black.Changed.YES) + self.assertEqual(len(out_lines), 2) + self.assertEqual(len(err_lines), 1) + self.assertEqual(out_lines[-1], "reformatted f3") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 1 file failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.failed(Path("e2"), "boom") + self.assertEqual(len(out_lines), 2) + self.assertEqual(len(err_lines), 2) + self.assertEqual(err_lines[-1], "error: cannot format e2: boom") + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.path_ignored(Path("wat"), "no match") + self.assertEqual(len(out_lines), 2) + self.assertEqual(len(err_lines), 2) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 2 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.done(Path("f4"), black.Changed.NO) + self.assertEqual(len(out_lines), 2) + self.assertEqual(len(err_lines), 2) + self.assertEqual( + unstyle(str(report)), + "2 files reformatted, 3 files left unchanged, 2 files failed to" + " reformat.", + ) + self.assertEqual(report.return_code, 123) + report.check = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + report.check = False + report.diff = True + self.assertEqual( + unstyle(str(report)), + "2 files would be reformatted, 3 files would be left unchanged, 2 files" + " would fail to reformat.", + ) + + def test_lib2to3_parse(self) -> None: + with self.assertRaises(black.InvalidInput): + black.lib2to3_parse("invalid syntax") + + straddling = "x + y" + black.lib2to3_parse(straddling) + black.lib2to3_parse(straddling, {TargetVersion.PY27}) + black.lib2to3_parse(straddling, {TargetVersion.PY36}) + black.lib2to3_parse(straddling, {TargetVersion.PY27, TargetVersion.PY36}) + + py2_only = "print x" + black.lib2to3_parse(py2_only) + black.lib2to3_parse(py2_only, {TargetVersion.PY27}) + with self.assertRaises(black.InvalidInput): + black.lib2to3_parse(py2_only, {TargetVersion.PY36}) + with self.assertRaises(black.InvalidInput): + black.lib2to3_parse(py2_only, {TargetVersion.PY27, TargetVersion.PY36}) + + py3_only = "exec(x, end=y)" + black.lib2to3_parse(py3_only) + with self.assertRaises(black.InvalidInput): + black.lib2to3_parse(py3_only, {TargetVersion.PY27}) + black.lib2to3_parse(py3_only, {TargetVersion.PY36}) + black.lib2to3_parse(py3_only, {TargetVersion.PY27, TargetVersion.PY36}) + + def test_get_features_used_decorator(self) -> None: + # Test the feature detection of new decorator syntax + # since this makes some test cases of test_get_features_used() + # fails if it fails, this is tested first so that a useful case + # is identified + simples, relaxed = read_data("decorators") + # skip explanation comments at the top of the file + for simple_test in simples.split("##")[1:]: + node = black.lib2to3_parse(simple_test) + decorator = str(node.children[0].children[0]).strip() + self.assertNotIn( + Feature.RELAXED_DECORATORS, + black.get_features_used(node), + msg=( + f"decorator '{decorator}' follows python<=3.8 syntax" + "but is detected as 3.9+" + # f"The full node is\n{node!r}" + ), + ) + # skip the '# output' comment at the top of the output part + for relaxed_test in relaxed.split("##")[1:]: + node = black.lib2to3_parse(relaxed_test) + decorator = str(node.children[0].children[0]).strip() + self.assertIn( + Feature.RELAXED_DECORATORS, + black.get_features_used(node), + msg=( + f"decorator '{decorator}' uses python3.9+ syntax" + "but is detected as python<=3.8" + # f"The full node is\n{node!r}" + ), + ) + + def test_get_features_used(self) -> None: + node = black.lib2to3_parse("def f(*, arg): ...\n") + self.assertEqual(black.get_features_used(node), set()) + node = black.lib2to3_parse("def f(*, arg,): ...\n") + self.assertEqual(black.get_features_used(node), {Feature.TRAILING_COMMA_IN_DEF}) + node = black.lib2to3_parse("f(*arg,)\n") + self.assertEqual( + black.get_features_used(node), {Feature.TRAILING_COMMA_IN_CALL} + ) + node = black.lib2to3_parse("def f(*, arg): f'string'\n") + self.assertEqual(black.get_features_used(node), {Feature.F_STRINGS}) + node = black.lib2to3_parse("123_456\n") + self.assertEqual(black.get_features_used(node), {Feature.NUMERIC_UNDERSCORES}) + node = black.lib2to3_parse("123456\n") + self.assertEqual(black.get_features_used(node), set()) + source, expected = read_data("function") + node = black.lib2to3_parse(source) + expected_features = { + Feature.TRAILING_COMMA_IN_CALL, + Feature.TRAILING_COMMA_IN_DEF, + Feature.F_STRINGS, + } + self.assertEqual(black.get_features_used(node), expected_features) + node = black.lib2to3_parse(expected) + self.assertEqual(black.get_features_used(node), expected_features) + source, expected = read_data("expression") + node = black.lib2to3_parse(source) + self.assertEqual(black.get_features_used(node), set()) + node = black.lib2to3_parse(expected) + self.assertEqual(black.get_features_used(node), set()) + node = black.lib2to3_parse("lambda a, /, b: ...") + self.assertEqual(black.get_features_used(node), {Feature.POS_ONLY_ARGUMENTS}) + node = black.lib2to3_parse("def fn(a, /, b): ...") + self.assertEqual(black.get_features_used(node), {Feature.POS_ONLY_ARGUMENTS}) + + def test_get_future_imports(self) -> None: + node = black.lib2to3_parse("\n") + self.assertEqual(set(), black.get_future_imports(node)) + node = black.lib2to3_parse("from __future__ import black\n") + self.assertEqual({"black"}, black.get_future_imports(node)) + node = black.lib2to3_parse("from __future__ import multiple, imports\n") + self.assertEqual({"multiple", "imports"}, black.get_future_imports(node)) + node = black.lib2to3_parse("from __future__ import (parenthesized, imports)\n") + self.assertEqual({"parenthesized", "imports"}, black.get_future_imports(node)) + node = black.lib2to3_parse( + "from __future__ import multiple\nfrom __future__ import imports\n" + ) + self.assertEqual({"multiple", "imports"}, black.get_future_imports(node)) + node = black.lib2to3_parse("# comment\nfrom __future__ import black\n") + self.assertEqual({"black"}, black.get_future_imports(node)) + node = black.lib2to3_parse('"""docstring"""\nfrom __future__ import black\n') + self.assertEqual({"black"}, black.get_future_imports(node)) + node = black.lib2to3_parse("some(other, code)\nfrom __future__ import black\n") + self.assertEqual(set(), black.get_future_imports(node)) + node = black.lib2to3_parse("from some.module import black\n") + self.assertEqual(set(), black.get_future_imports(node)) + node = black.lib2to3_parse( + "from __future__ import unicode_literals as _unicode_literals" + ) + self.assertEqual({"unicode_literals"}, black.get_future_imports(node)) + node = black.lib2to3_parse( + "from __future__ import unicode_literals as _lol, print" + ) + self.assertEqual({"unicode_literals", "print"}, black.get_future_imports(node)) + + def test_debug_visitor(self) -> None: + source, _ = read_data("debug_visitor.py") + expected, _ = read_data("debug_visitor.out") + out_lines = [] + err_lines = [] + + def out(msg: str, **kwargs: Any) -> None: + out_lines.append(msg) + + def err(msg: str, **kwargs: Any) -> None: + err_lines.append(msg) + + with patch("black.debug.out", out): + DebugVisitor.show(source) + actual = "\n".join(out_lines) + "\n" + log_name = "" + if expected != actual: + log_name = black.dump_to_file(*out_lines) + self.assertEqual( + expected, + actual, + f"AST print out is different. Actual version dumped to {log_name}", + ) + + def test_format_file_contents(self) -> None: + empty = "" + mode = DEFAULT_MODE + with self.assertRaises(black.NothingChanged): + black.format_file_contents(empty, mode=mode, fast=False) + just_nl = "\n" + with self.assertRaises(black.NothingChanged): + black.format_file_contents(just_nl, mode=mode, fast=False) + same = "j = [1, 2, 3]\n" + with self.assertRaises(black.NothingChanged): + black.format_file_contents(same, mode=mode, fast=False) + different = "j = [1,2,3]" + expected = same + actual = black.format_file_contents(different, mode=mode, fast=False) + self.assertEqual(expected, actual) + invalid = "return if you can" + with self.assertRaises(black.InvalidInput) as e: + black.format_file_contents(invalid, mode=mode, fast=False) + self.assertEqual(str(e.exception), "Cannot parse: 1:7: return if you can") + + def test_endmarker(self) -> None: + n = black.lib2to3_parse("\n") + self.assertEqual(n.type, black.syms.file_input) + self.assertEqual(len(n.children), 1) + self.assertEqual(n.children[0].type, black.token.ENDMARKER) + + @unittest.skipIf(os.environ.get("SKIP_AST_PRINT"), "user set SKIP_AST_PRINT") + def test_assertFormatEqual(self) -> None: + out_lines = [] + err_lines = [] + + def out(msg: str, **kwargs: Any) -> None: + out_lines.append(msg) + + def err(msg: str, **kwargs: Any) -> None: + err_lines.append(msg) + + with patch("black.output._out", out), patch("black.output._err", err): + with self.assertRaises(AssertionError): + self.assertFormatEqual("j = [1, 2, 3]", "j = [1, 2, 3,]") + + out_str = "".join(out_lines) + self.assertTrue("Expected tree:" in out_str) + self.assertTrue("Actual tree:" in out_str) + self.assertEqual("".join(err_lines), "") + + @event_loop() + @patch("black.ProcessPoolExecutor", MagicMock(side_effect=OSError)) + def test_works_in_mono_process_only_environment(self) -> None: + with cache_dir() as workspace: + for f in [ + (workspace / "one.py").resolve(), + (workspace / "two.py").resolve(), + ]: + f.write_text('print("hello")\n') + self.invokeBlack([str(workspace)]) + + @event_loop() + def test_check_diff_use_together(self) -> None: + with cache_dir(): + # Files which will be reformatted. + src1 = (THIS_DIR / "data" / "string_quotes.py").resolve() + self.invokeBlack([str(src1), "--diff", "--check"], exit_code=1) + # Files which will not be reformatted. + src2 = (THIS_DIR / "data" / "composition.py").resolve() + self.invokeBlack([str(src2), "--diff", "--check"]) + # Multi file command. + self.invokeBlack([str(src1), str(src2), "--diff", "--check"], exit_code=1) + + def test_no_files(self) -> None: + with cache_dir(): + # Without an argument, black exits with error code 0. + self.invokeBlack([]) + + def test_broken_symlink(self) -> None: + with cache_dir() as workspace: + symlink = workspace / "broken_link.py" + try: + symlink.symlink_to("nonexistent.py") + except OSError as e: + self.skipTest(f"Can't create symlinks: {e}") + self.invokeBlack([str(workspace.resolve())]) + + def test_single_file_force_pyi(self) -> None: + pyi_mode = replace(DEFAULT_MODE, is_pyi=True) + contents, expected = read_data("force_pyi") + with cache_dir() as workspace: + path = (workspace / "file.py").resolve() + with open(path, "w") as fh: + fh.write(contents) + self.invokeBlack([str(path), "--pyi"]) + with open(path, "r") as fh: + actual = fh.read() + # verify cache with --pyi is separate + pyi_cache = black.read_cache(pyi_mode) + self.assertIn(str(path), pyi_cache) + normal_cache = black.read_cache(DEFAULT_MODE) + self.assertNotIn(str(path), normal_cache) + self.assertFormatEqual(expected, actual) + black.assert_equivalent(contents, actual) + black.assert_stable(contents, actual, pyi_mode) + + @event_loop() + def test_multi_file_force_pyi(self) -> None: + reg_mode = DEFAULT_MODE + pyi_mode = replace(DEFAULT_MODE, is_pyi=True) + contents, expected = read_data("force_pyi") + with cache_dir() as workspace: + paths = [ + (workspace / "file1.py").resolve(), + (workspace / "file2.py").resolve(), + ] + for path in paths: + with open(path, "w") as fh: + fh.write(contents) + self.invokeBlack([str(p) for p in paths] + ["--pyi"]) + for path in paths: + with open(path, "r") as fh: + actual = fh.read() + self.assertEqual(actual, expected) + # verify cache with --pyi is separate + pyi_cache = black.read_cache(pyi_mode) + normal_cache = black.read_cache(reg_mode) + for path in paths: + self.assertIn(str(path), pyi_cache) + self.assertNotIn(str(path), normal_cache) + + def test_pipe_force_pyi(self) -> None: + source, expected = read_data("force_pyi") + result = CliRunner().invoke( + black.main, ["-", "-q", "--pyi"], input=BytesIO(source.encode("utf8")) + ) + self.assertEqual(result.exit_code, 0) + actual = result.output + self.assertFormatEqual(actual, expected) + + def test_single_file_force_py36(self) -> None: + reg_mode = DEFAULT_MODE + py36_mode = replace(DEFAULT_MODE, target_versions=PY36_VERSIONS) + source, expected = read_data("force_py36") + with cache_dir() as workspace: + path = (workspace / "file.py").resolve() + with open(path, "w") as fh: + fh.write(source) + self.invokeBlack([str(path), *PY36_ARGS]) + with open(path, "r") as fh: + actual = fh.read() + # verify cache with --target-version is separate + py36_cache = black.read_cache(py36_mode) + self.assertIn(str(path), py36_cache) + normal_cache = black.read_cache(reg_mode) + self.assertNotIn(str(path), normal_cache) + self.assertEqual(actual, expected) + + @event_loop() + def test_multi_file_force_py36(self) -> None: + reg_mode = DEFAULT_MODE + py36_mode = replace(DEFAULT_MODE, target_versions=PY36_VERSIONS) + source, expected = read_data("force_py36") + with cache_dir() as workspace: + paths = [ + (workspace / "file1.py").resolve(), + (workspace / "file2.py").resolve(), + ] + for path in paths: + with open(path, "w") as fh: + fh.write(source) + self.invokeBlack([str(p) for p in paths] + PY36_ARGS) + for path in paths: + with open(path, "r") as fh: + actual = fh.read() + self.assertEqual(actual, expected) + # verify cache with --target-version is separate + pyi_cache = black.read_cache(py36_mode) + normal_cache = black.read_cache(reg_mode) + for path in paths: + self.assertIn(str(path), pyi_cache) + self.assertNotIn(str(path), normal_cache) + + def test_pipe_force_py36(self) -> None: + source, expected = read_data("force_py36") + result = CliRunner().invoke( + black.main, + ["-", "-q", "--target-version=py36"], + input=BytesIO(source.encode("utf8")), + ) + self.assertEqual(result.exit_code, 0) + actual = result.output + self.assertFormatEqual(actual, expected) + + def test_reformat_one_with_stdin(self) -> None: + with patch( + "black.format_stdin_to_stdout", + return_value=lambda *args, **kwargs: black.Changed.YES, + ) as fsts: + report = MagicMock() + path = Path("-") + black.reformat_one( + path, + fast=True, + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + report=report, + ) + fsts.assert_called_once() + report.done.assert_called_with(path, black.Changed.YES) + + def test_reformat_one_with_stdin_filename(self) -> None: + with patch( + "black.format_stdin_to_stdout", + return_value=lambda *args, **kwargs: black.Changed.YES, + ) as fsts: + report = MagicMock() + p = "foo.py" + path = Path(f"__BLACK_STDIN_FILENAME__{p}") + expected = Path(p) + black.reformat_one( + path, + fast=True, + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + report=report, + ) + fsts.assert_called_once_with( + fast=True, write_back=black.WriteBack.YES, mode=DEFAULT_MODE + ) + # __BLACK_STDIN_FILENAME__ should have been stripped + report.done.assert_called_with(expected, black.Changed.YES) + + def test_reformat_one_with_stdin_filename_pyi(self) -> None: + with patch( + "black.format_stdin_to_stdout", + return_value=lambda *args, **kwargs: black.Changed.YES, + ) as fsts: + report = MagicMock() + p = "foo.pyi" + path = Path(f"__BLACK_STDIN_FILENAME__{p}") + expected = Path(p) + black.reformat_one( + path, + fast=True, + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + report=report, + ) + fsts.assert_called_once_with( + fast=True, + write_back=black.WriteBack.YES, + mode=replace(DEFAULT_MODE, is_pyi=True), + ) + # __BLACK_STDIN_FILENAME__ should have been stripped + report.done.assert_called_with(expected, black.Changed.YES) + + def test_reformat_one_with_stdin_filename_ipynb(self) -> None: + with patch( + "black.format_stdin_to_stdout", + return_value=lambda *args, **kwargs: black.Changed.YES, + ) as fsts: + report = MagicMock() + p = "foo.ipynb" + path = Path(f"__BLACK_STDIN_FILENAME__{p}") + expected = Path(p) + black.reformat_one( + path, + fast=True, + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + report=report, + ) + fsts.assert_called_once_with( + fast=True, + write_back=black.WriteBack.YES, + mode=replace(DEFAULT_MODE, is_ipynb=True), + ) + # __BLACK_STDIN_FILENAME__ should have been stripped + report.done.assert_called_with(expected, black.Changed.YES) + + def test_reformat_one_with_stdin_and_existing_path(self) -> None: + with patch( + "black.format_stdin_to_stdout", + return_value=lambda *args, **kwargs: black.Changed.YES, + ) as fsts: + report = MagicMock() + # Even with an existing file, since we are forcing stdin, black + # should output to stdout and not modify the file inplace + p = Path(str(THIS_DIR / "data/collections.py")) + # Make sure is_file actually returns True + self.assertTrue(p.is_file()) + path = Path(f"__BLACK_STDIN_FILENAME__{p}") + expected = Path(p) + black.reformat_one( + path, + fast=True, + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + report=report, + ) + fsts.assert_called_once() + # __BLACK_STDIN_FILENAME__ should have been stripped + report.done.assert_called_with(expected, black.Changed.YES) + + def test_reformat_one_with_stdin_empty(self) -> None: + output = io.StringIO() + with patch("io.TextIOWrapper", lambda *args, **kwargs: output): + try: + black.format_stdin_to_stdout( + fast=True, + content="", + write_back=black.WriteBack.YES, + mode=DEFAULT_MODE, + ) + except io.UnsupportedOperation: + pass # StringIO does not support detach + assert output.getvalue() == "" + + def test_invalid_cli_regex(self) -> None: + for option in ["--include", "--exclude", "--extend-exclude", "--force-exclude"]: + self.invokeBlack(["-", option, "**()(!!*)"], exit_code=2) + + def test_required_version_matches_version(self) -> None: + self.invokeBlack( + ["--required-version", black.__version__], exit_code=0, ignore_config=True + ) + + def test_required_version_does_not_match_version(self) -> None: + self.invokeBlack( + ["--required-version", "20.99b"], exit_code=1, ignore_config=True + ) + + def test_preserves_line_endings(self) -> None: + with TemporaryDirectory() as workspace: + test_file = Path(workspace) / "test.py" + for nl in ["\n", "\r\n"]: + contents = nl.join(["def f( ):", " pass"]) + test_file.write_bytes(contents.encode()) + ff(test_file, write_back=black.WriteBack.YES) + updated_contents: bytes = test_file.read_bytes() + self.assertIn(nl.encode(), updated_contents) + if nl == "\n": + self.assertNotIn(b"\r\n", updated_contents) + + def test_preserves_line_endings_via_stdin(self) -> None: + for nl in ["\n", "\r\n"]: + contents = nl.join(["def f( ):", " pass"]) + runner = BlackRunner() + result = runner.invoke( + black.main, ["-", "--fast"], input=BytesIO(contents.encode("utf8")) + ) + self.assertEqual(result.exit_code, 0) + output = result.stdout_bytes + self.assertIn(nl.encode("utf8"), output) + if nl == "\n": + self.assertNotIn(b"\r\n", output) + + def test_assert_equivalent_different_asts(self) -> None: + with self.assertRaises(AssertionError): + black.assert_equivalent("{}", "None") + + def test_shhh_click(self) -> None: + try: + from click import _unicodefun + except ModuleNotFoundError: + self.skipTest("Incompatible Click version") + if not hasattr(_unicodefun, "_verify_python3_env"): + self.skipTest("Incompatible Click version") + # First, let's see if Click is crashing with a preferred ASCII charset. + with patch("locale.getpreferredencoding") as gpe: + gpe.return_value = "ASCII" + with self.assertRaises(RuntimeError): + _unicodefun._verify_python3_env() # type: ignore + # Now, let's silence Click... + black.patch_click() + # ...and confirm it's silent. + with patch("locale.getpreferredencoding") as gpe: + gpe.return_value = "ASCII" + try: + _unicodefun._verify_python3_env() # type: ignore + except RuntimeError as re: + self.fail(f"`patch_click()` failed, exception still raised: {re}") + + def test_root_logger_not_used_directly(self) -> None: + def fail(*args: Any, **kwargs: Any) -> None: + self.fail("Record created with root logger") + + with patch.multiple( + logging.root, + debug=fail, + info=fail, + warning=fail, + error=fail, + critical=fail, + log=fail, + ): + ff(THIS_DIR / "util.py") + + def test_invalid_config_return_code(self) -> None: + tmp_file = Path(black.dump_to_file()) + try: + tmp_config = Path(black.dump_to_file()) + tmp_config.unlink() + args = ["--config", str(tmp_config), str(tmp_file)] + self.invokeBlack(args, exit_code=2, ignore_config=False) + finally: + tmp_file.unlink() + + def test_parse_pyproject_toml(self) -> None: + test_toml_file = THIS_DIR / "test.toml" + config = black.parse_pyproject_toml(str(test_toml_file)) + self.assertEqual(config["verbose"], 1) + self.assertEqual(config["check"], "no") + self.assertEqual(config["diff"], "y") + self.assertEqual(config["color"], True) + self.assertEqual(config["line_length"], 79) + self.assertEqual(config["target_version"], ["py36", "py37", "py38"]) + self.assertEqual(config["exclude"], r"\.pyi?$") + self.assertEqual(config["include"], r"\.py?$") + + def test_read_pyproject_toml(self) -> None: + test_toml_file = THIS_DIR / "test.toml" + fake_ctx = FakeContext() + black.read_pyproject_toml(fake_ctx, FakeParameter(), str(test_toml_file)) + config = fake_ctx.default_map + self.assertEqual(config["verbose"], "1") + self.assertEqual(config["check"], "no") + self.assertEqual(config["diff"], "y") + self.assertEqual(config["color"], "True") + self.assertEqual(config["line_length"], "79") + self.assertEqual(config["target_version"], ["py36", "py37", "py38"]) + self.assertEqual(config["exclude"], r"\.pyi?$") + self.assertEqual(config["include"], r"\.py?$") + + def test_find_project_root(self) -> None: + with TemporaryDirectory() as workspace: + root = Path(workspace) + test_dir = root / "test" + test_dir.mkdir() + + src_dir = root / "src" + src_dir.mkdir() + + root_pyproject = root / "pyproject.toml" + root_pyproject.touch() + src_pyproject = src_dir / "pyproject.toml" + src_pyproject.touch() + src_python = src_dir / "foo.py" + src_python.touch() + + self.assertEqual( + black.find_project_root((src_dir, test_dir)), root.resolve() + ) + self.assertEqual(black.find_project_root((src_dir,)), src_dir.resolve()) + self.assertEqual(black.find_project_root((src_python,)), src_dir.resolve()) + + @patch( + "black.files.find_user_pyproject_toml", + black.files.find_user_pyproject_toml.__wrapped__, + ) + def test_find_user_pyproject_toml_linux(self) -> None: + if system() == "Windows": + return + + # Test if XDG_CONFIG_HOME is checked + with TemporaryDirectory() as workspace: + tmp_user_config = Path(workspace) / "black" + with patch.dict("os.environ", {"XDG_CONFIG_HOME": workspace}): + self.assertEqual( + black.files.find_user_pyproject_toml(), tmp_user_config.resolve() + ) + + # Test fallback for XDG_CONFIG_HOME + with patch.dict("os.environ"): + os.environ.pop("XDG_CONFIG_HOME", None) + fallback_user_config = Path("~/.config").expanduser() / "black" + self.assertEqual( + black.files.find_user_pyproject_toml(), fallback_user_config.resolve() + ) + + def test_find_user_pyproject_toml_windows(self) -> None: + if system() != "Windows": + return + + user_config_path = Path.home() / ".black" + self.assertEqual( + black.files.find_user_pyproject_toml(), user_config_path.resolve() + ) + + def test_bpo_33660_workaround(self) -> None: + if system() == "Windows": + return + + # https://bugs.python.org/issue33660 + root = Path("/") + with change_directory(root): + path = Path("workspace") / "project" + report = black.Report(verbose=True) + normalized_path = black.normalize_path_maybe_ignore(path, root, report) + self.assertEqual(normalized_path, "workspace/project") + + def test_newline_comment_interaction(self) -> None: + source = "class A:\\\r\n# type: ignore\n pass\n" + output = black.format_str(source, mode=DEFAULT_MODE) + black.assert_stable(source, output, mode=DEFAULT_MODE) + + def test_bpo_2142_workaround(self) -> None: + + # https://bugs.python.org/issue2142 + + source, _ = read_data("missing_final_newline.py") + # read_data adds a trailing newline + source = source.rstrip() + expected, _ = read_data("missing_final_newline.diff") + tmp_file = Path(black.dump_to_file(source, ensure_final_newline=False)) + diff_header = re.compile( + rf"{re.escape(str(tmp_file))}\t\d\d\d\d-\d\d-\d\d " + r"\d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) + try: + result = BlackRunner().invoke(black.main, ["--diff", str(tmp_file)]) + self.assertEqual(result.exit_code, 0) + finally: + os.unlink(tmp_file) + actual = result.output + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) + self.assertEqual(actual, expected) + + @pytest.mark.python2 + def test_docstring_reformat_for_py27(self) -> None: + """ + Check that stripping trailing whitespace from Python 2 docstrings + doesn't trigger a "not equivalent to source" error + """ + source = ( + b'def foo():\r\n """Testing\r\n Testing """\r\n print "Foo"\r\n' + ) + expected = 'def foo():\n """Testing\n Testing"""\n print "Foo"\n' + + result = CliRunner().invoke( + black.main, + ["-", "-q", "--target-version=py27"], + input=BytesIO(source), + ) + + self.assertEqual(result.exit_code, 0) + actual = result.output + self.assertFormatEqual(actual, expected) + + @staticmethod + def compare_results( + result: click.testing.Result, expected_value: str, expected_exit_code: int + ) -> None: + """Helper method to test the value and exit code of a click Result.""" + assert ( + result.output == expected_value + ), "The output did not match the expected value." + assert result.exit_code == expected_exit_code, "The exit code is incorrect." + + def test_code_option(self) -> None: + """Test the code option with no changes.""" + code = 'print("Hello world")\n' + args = ["--code", code] + result = CliRunner().invoke(black.main, args) + + self.compare_results(result, code, 0) + + def test_code_option_changed(self) -> None: + """Test the code option when changes are required.""" + code = "print('hello world')" + formatted = black.format_str(code, mode=DEFAULT_MODE) + + args = ["--code", code] + result = CliRunner().invoke(black.main, args) + + self.compare_results(result, formatted, 0) + + def test_code_option_check(self) -> None: + """Test the code option when check is passed.""" + args = ["--check", "--code", 'print("Hello world")\n'] + result = CliRunner().invoke(black.main, args) + self.compare_results(result, "", 0) + + def test_code_option_check_changed(self) -> None: + """Test the code option when changes are required, and check is passed.""" + args = ["--check", "--code", "print('hello world')"] + result = CliRunner().invoke(black.main, args) + self.compare_results(result, "", 1) + + def test_code_option_diff(self) -> None: + """Test the code option when diff is passed.""" + code = "print('hello world')" + formatted = black.format_str(code, mode=DEFAULT_MODE) + result_diff = diff(code, formatted, "STDIN", "STDOUT") + + args = ["--diff", "--code", code] + result = CliRunner().invoke(black.main, args) + + # Remove time from diff + output = DIFF_TIME.sub("", result.output) + + assert output == result_diff, "The output did not match the expected value." + assert result.exit_code == 0, "The exit code is incorrect." + + def test_code_option_color_diff(self) -> None: + """Test the code option when color and diff are passed.""" + code = "print('hello world')" + formatted = black.format_str(code, mode=DEFAULT_MODE) + + result_diff = diff(code, formatted, "STDIN", "STDOUT") + result_diff = color_diff(result_diff) + + args = ["--diff", "--color", "--code", code] + result = CliRunner().invoke(black.main, args) + + # Remove time from diff + output = DIFF_TIME.sub("", result.output) + + assert output == result_diff, "The output did not match the expected value." + assert result.exit_code == 0, "The exit code is incorrect." + + def test_code_option_safe(self) -> None: + """Test that the code option throws an error when the sanity checks fail.""" + # Patch black.assert_equivalent to ensure the sanity checks fail + with patch.object(black, "assert_equivalent", side_effect=AssertionError): + code = 'print("Hello world")' + error_msg = f"{code}\nerror: cannot format : \n" + + args = ["--safe", "--code", code] + result = CliRunner().invoke(black.main, args) + + self.compare_results(result, error_msg, 123) + + def test_code_option_fast(self) -> None: + """Test that the code option ignores errors when the sanity checks fail.""" + # Patch black.assert_equivalent to ensure the sanity checks fail + with patch.object(black, "assert_equivalent", side_effect=AssertionError): + code = 'print("Hello world")' + formatted = black.format_str(code, mode=DEFAULT_MODE) + + args = ["--fast", "--code", code] + result = CliRunner().invoke(black.main, args) + + self.compare_results(result, formatted, 0) + + def test_code_option_config(self) -> None: + """ + Test that the code option finds the pyproject.toml in the current directory. + """ + with patch.object(black, "parse_pyproject_toml", return_value={}) as parse: + args = ["--code", "print"] + CliRunner().invoke(black.main, args) + + pyproject_path = Path(Path().cwd(), "pyproject.toml").resolve() + assert ( + len(parse.mock_calls) >= 1 + ), "Expected config parse to be called with the current directory." + + _, call_args, _ = parse.mock_calls[0] + assert ( + call_args[0].lower() == str(pyproject_path).lower() + ), "Incorrect config loaded." + + def test_code_option_parent_config(self) -> None: + """ + Test that the code option finds the pyproject.toml in the parent directory. + """ + with patch.object(black, "parse_pyproject_toml", return_value={}) as parse: + with change_directory(Path("tests")): + args = ["--code", "print"] + CliRunner().invoke(black.main, args) + + pyproject_path = Path(Path().cwd().parent, "pyproject.toml").resolve() + assert ( + len(parse.mock_calls) >= 1 + ), "Expected config parse to be called with the current directory." + + _, call_args, _ = parse.mock_calls[0] + assert ( + call_args[0].lower() == str(pyproject_path).lower() + ), "Incorrect config loaded." + + +class TestCaching: + def test_cache_broken_file(self) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace: + cache_file = get_cache_file(mode) + cache_file.write_text("this is not a pickle") + assert black.read_cache(mode) == {} + src = (workspace / "test.py").resolve() + src.write_text("print('hello')") + invokeBlack([str(src)]) + cache = black.read_cache(mode) + assert str(src) in cache + + def test_cache_single_file_already_cached(self) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace: + src = (workspace / "test.py").resolve() + src.write_text("print('hello')") + black.write_cache({}, [src], mode) + invokeBlack([str(src)]) + assert src.read_text() == "print('hello')" + + @event_loop() + def test_cache_multiple_files(self) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace, patch( + "black.ProcessPoolExecutor", new=ThreadPoolExecutor + ): + one = (workspace / "one.py").resolve() + with one.open("w") as fobj: + fobj.write("print('hello')") + two = (workspace / "two.py").resolve() + with two.open("w") as fobj: + fobj.write("print('hello')") + black.write_cache({}, [one], mode) + invokeBlack([str(workspace)]) + with one.open("r") as fobj: + assert fobj.read() == "print('hello')" + with two.open("r") as fobj: + assert fobj.read() == 'print("hello")\n' + cache = black.read_cache(mode) + assert str(one) in cache + assert str(two) in cache + + @pytest.mark.parametrize("color", [False, True], ids=["no-color", "with-color"]) + def test_no_cache_when_writeback_diff(self, color: bool) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace: + src = (workspace / "test.py").resolve() + with src.open("w") as fobj: + fobj.write("print('hello')") + with patch("black.read_cache") as read_cache, patch( + "black.write_cache" + ) as write_cache: + cmd = [str(src), "--diff"] + if color: + cmd.append("--color") + invokeBlack(cmd) + cache_file = get_cache_file(mode) + assert cache_file.exists() is False + write_cache.assert_not_called() + read_cache.assert_not_called() + + @pytest.mark.parametrize("color", [False, True], ids=["no-color", "with-color"]) + @event_loop() + def test_output_locking_when_writeback_diff(self, color: bool) -> None: + with cache_dir() as workspace: + for tag in range(0, 4): + src = (workspace / f"test{tag}.py").resolve() + with src.open("w") as fobj: + fobj.write("print('hello')") + with patch("black.Manager", wraps=multiprocessing.Manager) as mgr: + cmd = ["--diff", str(workspace)] + if color: + cmd.append("--color") + invokeBlack(cmd, exit_code=0) + # this isn't quite doing what we want, but if it _isn't_ + # called then we cannot be using the lock it provides + mgr.assert_called() + + def test_no_cache_when_stdin(self) -> None: + mode = DEFAULT_MODE + with cache_dir(): + result = CliRunner().invoke( + black.main, ["-"], input=BytesIO(b"print('hello')") + ) + assert not result.exit_code + cache_file = get_cache_file(mode) + assert not cache_file.exists() + + def test_read_cache_no_cachefile(self) -> None: + mode = DEFAULT_MODE + with cache_dir(): + assert black.read_cache(mode) == {} + + def test_write_cache_read_cache(self) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace: + src = (workspace / "test.py").resolve() + src.touch() + black.write_cache({}, [src], mode) + cache = black.read_cache(mode) + assert str(src) in cache + assert cache[str(src)] == black.get_cache_info(src) + + def test_filter_cached(self) -> None: + with TemporaryDirectory() as workspace: + path = Path(workspace) + uncached = (path / "uncached").resolve() + cached = (path / "cached").resolve() + cached_but_changed = (path / "changed").resolve() + uncached.touch() + cached.touch() + cached_but_changed.touch() + cache = { + str(cached): black.get_cache_info(cached), + str(cached_but_changed): (0.0, 0), + } + todo, done = black.filter_cached( + cache, {uncached, cached, cached_but_changed} + ) + assert todo == {uncached, cached_but_changed} + assert done == {cached} + + def test_write_cache_creates_directory_if_needed(self) -> None: + mode = DEFAULT_MODE + with cache_dir(exists=False) as workspace: + assert not workspace.exists() + black.write_cache({}, [], mode) + assert workspace.exists() + + @event_loop() + def test_failed_formatting_does_not_get_cached(self) -> None: + mode = DEFAULT_MODE + with cache_dir() as workspace, patch( + "black.ProcessPoolExecutor", new=ThreadPoolExecutor + ): + failing = (workspace / "failing.py").resolve() + with failing.open("w") as fobj: + fobj.write("not actually python") + clean = (workspace / "clean.py").resolve() + with clean.open("w") as fobj: + fobj.write('print("hello")\n') + invokeBlack([str(workspace)], exit_code=123) + cache = black.read_cache(mode) + assert str(failing) not in cache + assert str(clean) in cache + + def test_write_cache_write_fail(self) -> None: + mode = DEFAULT_MODE + with cache_dir(), patch.object(Path, "open") as mock: + mock.side_effect = OSError + black.write_cache({}, [], mode) + + def test_read_cache_line_lengths(self) -> None: + mode = DEFAULT_MODE + short_mode = replace(DEFAULT_MODE, line_length=1) + with cache_dir() as workspace: + path = (workspace / "file.py").resolve() + path.touch() + black.write_cache({}, [path], mode) + one = black.read_cache(mode) + assert str(path) in one + two = black.read_cache(short_mode) + assert str(path) not in two + + +def assert_collected_sources( + src: Sequence[Union[str, Path]], + expected: Sequence[Union[str, Path]], + *, + exclude: Optional[str] = None, + include: Optional[str] = None, + extend_exclude: Optional[str] = None, + force_exclude: Optional[str] = None, + stdin_filename: Optional[str] = None, +) -> None: + gs_src = tuple(str(Path(s)) for s in src) + gs_expected = [Path(s) for s in expected] + gs_exclude = None if exclude is None else compile_pattern(exclude) + gs_include = DEFAULT_INCLUDE if include is None else compile_pattern(include) + gs_extend_exclude = ( + None if extend_exclude is None else compile_pattern(extend_exclude) + ) + gs_force_exclude = None if force_exclude is None else compile_pattern(force_exclude) + collected = black.get_sources( + ctx=FakeContext(), + src=gs_src, + quiet=False, + verbose=False, + include=gs_include, + exclude=gs_exclude, + extend_exclude=gs_extend_exclude, + force_exclude=gs_force_exclude, + report=black.Report(), + stdin_filename=stdin_filename, + ) + assert sorted(list(collected)) == sorted(gs_expected) + + +class TestFileCollection: + def test_include_exclude(self) -> None: + path = THIS_DIR / "data" / "include_exclude_tests" + src = [path] + expected = [ + Path(path / "b/dont_exclude/a.py"), + Path(path / "b/dont_exclude/a.pyi"), + ] + assert_collected_sources( + src, + expected, + include=r"\.pyi?$", + exclude=r"/exclude/|/\.definitely_exclude/", + ) + + def test_gitignore_used_as_default(self) -> None: + base = Path(DATA_DIR / "include_exclude_tests") + expected = [ + base / "b/.definitely_exclude/a.py", + base / "b/.definitely_exclude/a.pyi", + ] + src = [base / "b/"] + assert_collected_sources(src, expected, extend_exclude=r"/exclude/") + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_exclude_for_issue_1572(self) -> None: + # Exclude shouldn't touch files that were explicitly given to Black through the + # CLI. Exclude is supposed to only apply to the recursive discovery of files. + # https://github.com/psf/black/issues/1572 + path = DATA_DIR / "include_exclude_tests" + src = [path / "b/exclude/a.py"] + expected = [path / "b/exclude/a.py"] + assert_collected_sources(src, expected, include="", exclude=r"/exclude/|a\.py") + + def test_gitignore_exclude(self) -> None: + path = THIS_DIR / "data" / "include_exclude_tests" + include = re.compile(r"\.pyi?$") + exclude = re.compile(r"") + report = black.Report() + gitignore = PathSpec.from_lines( + "gitwildmatch", ["exclude/", ".definitely_exclude"] + ) + sources: List[Path] = [] + expected = [ + Path(path / "b/dont_exclude/a.py"), + Path(path / "b/dont_exclude/a.pyi"), + ] + this_abs = THIS_DIR.resolve() + sources.extend( + black.gen_python_files( + path.iterdir(), + this_abs, + include, + exclude, + None, + None, + report, + gitignore, + verbose=False, + quiet=False, + ) + ) + assert sorted(expected) == sorted(sources) + + def test_nested_gitignore(self) -> None: + path = Path(THIS_DIR / "data" / "nested_gitignore_tests") + include = re.compile(r"\.pyi?$") + exclude = re.compile(r"") + root_gitignore = black.files.get_gitignore(path) + report = black.Report() + expected: List[Path] = [ + Path(path / "x.py"), + Path(path / "root/b.py"), + Path(path / "root/c.py"), + Path(path / "root/child/c.py"), + ] + this_abs = THIS_DIR.resolve() + sources = list( + black.gen_python_files( + path.iterdir(), + this_abs, + include, + exclude, + None, + None, + report, + root_gitignore, + verbose=False, + quiet=False, + ) + ) + assert sorted(expected) == sorted(sources) + + def test_invalid_gitignore(self) -> None: + path = THIS_DIR / "data" / "invalid_gitignore_tests" + empty_config = path / "pyproject.toml" + result = BlackRunner().invoke( + black.main, ["--verbose", "--config", str(empty_config), str(path)] + ) + assert result.exit_code == 1 + assert result.stderr_bytes is not None + + gitignore = path / ".gitignore" + assert f"Could not parse {gitignore}" in result.stderr_bytes.decode() + + def test_invalid_nested_gitignore(self) -> None: + path = THIS_DIR / "data" / "invalid_nested_gitignore_tests" + empty_config = path / "pyproject.toml" + result = BlackRunner().invoke( + black.main, ["--verbose", "--config", str(empty_config), str(path)] + ) + assert result.exit_code == 1 + assert result.stderr_bytes is not None + + gitignore = path / "a" / ".gitignore" + assert f"Could not parse {gitignore}" in result.stderr_bytes.decode() + + def test_empty_include(self) -> None: + path = DATA_DIR / "include_exclude_tests" + src = [path] + expected = [ + Path(path / "b/exclude/a.pie"), + Path(path / "b/exclude/a.py"), + Path(path / "b/exclude/a.pyi"), + Path(path / "b/dont_exclude/a.pie"), + Path(path / "b/dont_exclude/a.py"), + Path(path / "b/dont_exclude/a.pyi"), + Path(path / "b/.definitely_exclude/a.pie"), + Path(path / "b/.definitely_exclude/a.py"), + Path(path / "b/.definitely_exclude/a.pyi"), + Path(path / ".gitignore"), + Path(path / "pyproject.toml"), + ] + # Setting exclude explicitly to an empty string to block .gitignore usage. + assert_collected_sources(src, expected, include="", exclude="") + + def test_extend_exclude(self) -> None: + path = DATA_DIR / "include_exclude_tests" + src = [path] + expected = [ + Path(path / "b/exclude/a.py"), + Path(path / "b/dont_exclude/a.py"), + ] + assert_collected_sources( + src, expected, exclude=r"\.pyi$", extend_exclude=r"\.definitely_exclude" + ) + + def test_symlink_out_of_root_directory(self) -> None: + path = MagicMock() + root = THIS_DIR.resolve() + child = MagicMock() + include = re.compile(black.DEFAULT_INCLUDES) + exclude = re.compile(black.DEFAULT_EXCLUDES) + report = black.Report() + gitignore = PathSpec.from_lines("gitwildmatch", []) + # `child` should behave like a symlink which resolved path is clearly + # outside of the `root` directory. + path.iterdir.return_value = [child] + child.resolve.return_value = Path("/a/b/c") + child.as_posix.return_value = "/a/b/c" + child.is_symlink.return_value = True + try: + list( + black.gen_python_files( + path.iterdir(), + root, + include, + exclude, + None, + None, + report, + gitignore, + verbose=False, + quiet=False, + ) + ) + except ValueError as ve: + pytest.fail(f"`get_python_files_in_dir()` failed: {ve}") + path.iterdir.assert_called_once() + child.resolve.assert_called_once() + child.is_symlink.assert_called_once() + # `child` should behave like a strange file which resolved path is clearly + # outside of the `root` directory. + child.is_symlink.return_value = False + with pytest.raises(ValueError): + list( + black.gen_python_files( + path.iterdir(), + root, + include, + exclude, + None, + None, + report, + gitignore, + verbose=False, + quiet=False, + ) + ) + path.iterdir.assert_called() + assert path.iterdir.call_count == 2 + child.resolve.assert_called() + assert child.resolve.call_count == 2 + child.is_symlink.assert_called() + assert child.is_symlink.call_count == 2 + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_get_sources_with_stdin(self) -> None: + src = ["-"] + expected = ["-"] + assert_collected_sources(src, expected, include="", exclude=r"/exclude/|a\.py") + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_get_sources_with_stdin_filename(self) -> None: + src = ["-"] + stdin_filename = str(THIS_DIR / "data/collections.py") + expected = [f"__BLACK_STDIN_FILENAME__{stdin_filename}"] + assert_collected_sources( + src, + expected, + exclude=r"/exclude/a\.py", + stdin_filename=stdin_filename, + ) + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_get_sources_with_stdin_filename_and_exclude(self) -> None: + # Exclude shouldn't exclude stdin_filename since it is mimicking the + # file being passed directly. This is the same as + # test_exclude_for_issue_1572 + path = DATA_DIR / "include_exclude_tests" + src = ["-"] + stdin_filename = str(path / "b/exclude/a.py") + expected = [f"__BLACK_STDIN_FILENAME__{stdin_filename}"] + assert_collected_sources( + src, + expected, + exclude=r"/exclude/|a\.py", + stdin_filename=stdin_filename, + ) + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_get_sources_with_stdin_filename_and_extend_exclude(self) -> None: + # Extend exclude shouldn't exclude stdin_filename since it is mimicking the + # file being passed directly. This is the same as + # test_exclude_for_issue_1572 + src = ["-"] + path = THIS_DIR / "data" / "include_exclude_tests" + stdin_filename = str(path / "b/exclude/a.py") + expected = [f"__BLACK_STDIN_FILENAME__{stdin_filename}"] + assert_collected_sources( + src, + expected, + extend_exclude=r"/exclude/|a\.py", + stdin_filename=stdin_filename, + ) + + @patch("black.find_project_root", lambda *args: THIS_DIR.resolve()) + def test_get_sources_with_stdin_filename_and_force_exclude(self) -> None: + # Force exclude should exclude the file when passing it through + # stdin_filename + path = THIS_DIR / "data" / "include_exclude_tests" + stdin_filename = str(path / "b/exclude/a.py") + assert_collected_sources( + src=["-"], + expected=[], + force_exclude=r"/exclude/|a\.py", + stdin_filename=stdin_filename, + ) + + +with open(black.__file__, "r", encoding="utf-8") as _bf: + black_source_lines = _bf.readlines() + + +def tracefunc(frame: types.FrameType, event: str, arg: Any) -> Callable: + """Show function calls `from black/__init__.py` as they happen. + + Register this with `sys.settrace()` in a test you're debugging. + """ + if event != "call": + return tracefunc + + stack = len(inspect.stack()) - 19 + stack *= 2 + filename = frame.f_code.co_filename + lineno = frame.f_lineno + func_sig_lineno = lineno - 1 + funcname = black_source_lines[func_sig_lineno].strip() + while funcname.startswith("@"): + func_sig_lineno += 1 + funcname = black_source_lines[func_sig_lineno].strip() + if "black/__init__.py" in filename: + print(f"{' ' * stack}{lineno}:{funcname}") + return tracefunc diff --git a/.vim/bundle/black/tests/test_blackd.py b/.vim/bundle/black/tests/test_blackd.py new file mode 100644 index 0000000..cc750b4 --- /dev/null +++ b/.vim/bundle/black/tests/test_blackd.py @@ -0,0 +1,187 @@ +import re +from unittest.mock import patch + +from click.testing import CliRunner +import pytest + +from tests.util import read_data, DETERMINISTIC_HEADER + +try: + import blackd + from aiohttp.test_utils import AioHTTPTestCase, unittest_run_loop + from aiohttp import web +except ImportError: + has_blackd_deps = False +else: + has_blackd_deps = True + + +@pytest.mark.blackd +class BlackDTestCase(AioHTTPTestCase): + def test_blackd_main(self) -> None: + with patch("blackd.web.run_app"): + result = CliRunner().invoke(blackd.main, []) + if result.exception is not None: + raise result.exception + self.assertEqual(result.exit_code, 0) + + async def get_application(self) -> web.Application: + return blackd.make_app() + + @unittest_run_loop + async def test_blackd_request_needs_formatting(self) -> None: + response = await self.client.post("/", data=b"print('hello world')") + self.assertEqual(response.status, 200) + self.assertEqual(response.charset, "utf8") + self.assertEqual(await response.read(), b'print("hello world")\n') + + @unittest_run_loop + async def test_blackd_request_no_change(self) -> None: + response = await self.client.post("/", data=b'print("hello world")\n') + self.assertEqual(response.status, 204) + self.assertEqual(await response.read(), b"") + + @unittest_run_loop + async def test_blackd_request_syntax_error(self) -> None: + response = await self.client.post("/", data=b"what even ( is") + self.assertEqual(response.status, 400) + content = await response.text() + self.assertTrue( + content.startswith("Cannot parse"), + msg=f"Expected error to start with 'Cannot parse', got {repr(content)}", + ) + + @unittest_run_loop + async def test_blackd_unsupported_version(self) -> None: + response = await self.client.post( + "/", data=b"what", headers={blackd.PROTOCOL_VERSION_HEADER: "2"} + ) + self.assertEqual(response.status, 501) + + @unittest_run_loop + async def test_blackd_supported_version(self) -> None: + response = await self.client.post( + "/", data=b"what", headers={blackd.PROTOCOL_VERSION_HEADER: "1"} + ) + self.assertEqual(response.status, 200) + + @unittest_run_loop + async def test_blackd_invalid_python_variant(self) -> None: + async def check(header_value: str, expected_status: int = 400) -> None: + response = await self.client.post( + "/", data=b"what", headers={blackd.PYTHON_VARIANT_HEADER: header_value} + ) + self.assertEqual(response.status, expected_status) + + await check("lol") + await check("ruby3.5") + await check("pyi3.6") + await check("py1.5") + await check("2.8") + await check("py2.8") + await check("3.0") + await check("pypy3.0") + await check("jython3.4") + + @unittest_run_loop + async def test_blackd_pyi(self) -> None: + source, expected = read_data("stub.pyi") + response = await self.client.post( + "/", data=source, headers={blackd.PYTHON_VARIANT_HEADER: "pyi"} + ) + self.assertEqual(response.status, 200) + self.assertEqual(await response.text(), expected) + + @unittest_run_loop + async def test_blackd_diff(self) -> None: + diff_header = re.compile( + r"(In|Out)\t\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d\d\d\d \+\d\d\d\d" + ) + + source, _ = read_data("blackd_diff.py") + expected, _ = read_data("blackd_diff.diff") + + response = await self.client.post( + "/", data=source, headers={blackd.DIFF_HEADER: "true"} + ) + self.assertEqual(response.status, 200) + + actual = await response.text() + actual = diff_header.sub(DETERMINISTIC_HEADER, actual) + self.assertEqual(actual, expected) + + @unittest_run_loop + async def test_blackd_python_variant(self) -> None: + code = ( + "def f(\n" + " and_has_a_bunch_of,\n" + " very_long_arguments_too,\n" + " and_lots_of_them_as_well_lol,\n" + " **and_very_long_keyword_arguments\n" + "):\n" + " pass\n" + ) + + async def check(header_value: str, expected_status: int) -> None: + response = await self.client.post( + "/", data=code, headers={blackd.PYTHON_VARIANT_HEADER: header_value} + ) + self.assertEqual( + response.status, expected_status, msg=await response.text() + ) + + await check("3.6", 200) + await check("py3.6", 200) + await check("3.6,3.7", 200) + await check("3.6,py3.7", 200) + await check("py36,py37", 200) + await check("36", 200) + await check("3.6.4", 200) + + await check("2", 204) + await check("2.7", 204) + await check("py2.7", 204) + await check("3.4", 204) + await check("py3.4", 204) + await check("py34,py36", 204) + await check("34", 204) + + @unittest_run_loop + async def test_blackd_line_length(self) -> None: + response = await self.client.post( + "/", data=b'print("hello")\n', headers={blackd.LINE_LENGTH_HEADER: "7"} + ) + self.assertEqual(response.status, 200) + + @unittest_run_loop + async def test_blackd_invalid_line_length(self) -> None: + response = await self.client.post( + "/", data=b'print("hello")\n', headers={blackd.LINE_LENGTH_HEADER: "NaN"} + ) + self.assertEqual(response.status, 400) + + @unittest_run_loop + async def test_blackd_response_black_version_header(self) -> None: + response = await self.client.post("/") + self.assertIsNotNone(response.headers.get(blackd.BLACK_VERSION_HEADER)) + + @unittest_run_loop + async def test_cors_preflight(self) -> None: + response = await self.client.options( + "/", + headers={ + "Access-Control-Request-Method": "POST", + "Origin": "*", + "Access-Control-Request-Headers": "Content-Type", + }, + ) + self.assertEqual(response.status, 200) + self.assertIsNotNone(response.headers.get("Access-Control-Allow-Origin")) + self.assertIsNotNone(response.headers.get("Access-Control-Allow-Headers")) + self.assertIsNotNone(response.headers.get("Access-Control-Allow-Methods")) + + @unittest_run_loop + async def test_cors_headers_present(self) -> None: + response = await self.client.post("/", headers={"Origin": "*"}) + self.assertIsNotNone(response.headers.get("Access-Control-Allow-Origin")) + self.assertIsNotNone(response.headers.get("Access-Control-Expose-Headers")) diff --git a/.vim/bundle/black/tests/test_format.py b/.vim/bundle/black/tests/test_format.py new file mode 100644 index 0000000..a659382 --- /dev/null +++ b/.vim/bundle/black/tests/test_format.py @@ -0,0 +1,234 @@ +from dataclasses import replace +from typing import Any, Iterator +from unittest.mock import patch + +import pytest + +import black +from tests.util import ( + DEFAULT_MODE, + PY36_VERSIONS, + THIS_DIR, + assert_format, + dump_to_stderr, + read_data, +) + +SIMPLE_CASES = [ + "beginning_backslash", + "bracketmatch", + "class_blank_parentheses", + "class_methods_new_line", + "collections", + "comments", + "comments2", + "comments3", + "comments4", + "comments5", + "comments6", + "comments_non_breaking_space", + "comment_after_escaped_newline", + "composition", + "composition_no_trailing_comma", + "docstring", + "empty_lines", + "expression", + "fmtonoff", + "fmtonoff2", + "fmtonoff3", + "fmtonoff4", + "fmtskip", + "fmtskip2", + "fmtskip3", + "fmtskip4", + "fmtskip5", + "fmtskip6", + "fstring", + "function", + "function2", + "function_trailing_comma", + "import_spacing", + "remove_parens", + "slices", + "string_prefixes", + "tricky_unicode_symbols", + "tupleassign", +] + +SIMPLE_CASES_PY2 = [ + "numeric_literals_py2", + "python2", + "python2_unicode_literals", +] + +EXPERIMENTAL_STRING_PROCESSING_CASES = [ + "cantfit", + "comments7", + "long_strings", + "long_strings__edge_case", + "long_strings__regression", + "percent_precedence", +] + + +SOURCES = [ + "src/black/__init__.py", + "src/black/__main__.py", + "src/black/brackets.py", + "src/black/cache.py", + "src/black/comments.py", + "src/black/concurrency.py", + "src/black/const.py", + "src/black/debug.py", + "src/black/files.py", + "src/black/linegen.py", + "src/black/lines.py", + "src/black/mode.py", + "src/black/nodes.py", + "src/black/numerics.py", + "src/black/output.py", + "src/black/parsing.py", + "src/black/report.py", + "src/black/rusty.py", + "src/black/strings.py", + "src/black/trans.py", + "src/blackd/__init__.py", + "src/blib2to3/pygram.py", + "src/blib2to3/pytree.py", + "src/blib2to3/pgen2/conv.py", + "src/blib2to3/pgen2/driver.py", + "src/blib2to3/pgen2/grammar.py", + "src/blib2to3/pgen2/literals.py", + "src/blib2to3/pgen2/parse.py", + "src/blib2to3/pgen2/pgen.py", + "src/blib2to3/pgen2/tokenize.py", + "src/blib2to3/pgen2/token.py", + "setup.py", + "tests/test_black.py", + "tests/test_blackd.py", + "tests/test_format.py", + "tests/test_primer.py", + "tests/optional.py", + "tests/util.py", + "tests/conftest.py", +] + + +@pytest.fixture(autouse=True) +def patch_dump_to_file(request: Any) -> Iterator[None]: + with patch("black.dump_to_file", dump_to_stderr): + yield + + +def check_file(filename: str, mode: black.Mode, *, data: bool = True) -> None: + source, expected = read_data(filename, data=data) + assert_format(source, expected, mode, fast=False) + + +@pytest.mark.parametrize("filename", SIMPLE_CASES_PY2) +@pytest.mark.python2 +def test_simple_format_py2(filename: str) -> None: + check_file(filename, DEFAULT_MODE) + + +@pytest.mark.parametrize("filename", SIMPLE_CASES) +def test_simple_format(filename: str) -> None: + check_file(filename, DEFAULT_MODE) + + +@pytest.mark.parametrize("filename", EXPERIMENTAL_STRING_PROCESSING_CASES) +def test_experimental_format(filename: str) -> None: + check_file(filename, black.Mode(experimental_string_processing=True)) + + +@pytest.mark.parametrize("filename", SOURCES) +def test_source_is_formatted(filename: str) -> None: + path = THIS_DIR.parent / filename + check_file(str(path), DEFAULT_MODE, data=False) + + +# =============== # +# Complex cases +# ============= # + + +def test_empty() -> None: + source = expected = "" + assert_format(source, expected) + + +def test_pep_572() -> None: + source, expected = read_data("pep_572") + assert_format(source, expected, minimum_version=(3, 8)) + + +def test_pep_572_remove_parens() -> None: + source, expected = read_data("pep_572_remove_parens") + assert_format(source, expected, minimum_version=(3, 8)) + + +def test_pep_572_do_not_remove_parens() -> None: + source, expected = read_data("pep_572_do_not_remove_parens") + # the AST safety checks will fail, but that's expected, just make sure no + # parentheses are touched + assert_format(source, expected, fast=True) + + +@pytest.mark.parametrize("major, minor", [(3, 9), (3, 10)]) +def test_pep_572_newer_syntax(major: int, minor: int) -> None: + source, expected = read_data(f"pep_572_py{major}{minor}") + assert_format(source, expected, minimum_version=(major, minor)) + + +def test_pep_570() -> None: + source, expected = read_data("pep_570") + assert_format(source, expected, minimum_version=(3, 8)) + + +def test_docstring_no_string_normalization() -> None: + """Like test_docstring but with string normalization off.""" + source, expected = read_data("docstring_no_string_normalization") + mode = replace(DEFAULT_MODE, string_normalization=False) + assert_format(source, expected, mode) + + +def test_long_strings_flag_disabled() -> None: + """Tests for turning off the string processing logic.""" + source, expected = read_data("long_strings_flag_disabled") + mode = replace(DEFAULT_MODE, experimental_string_processing=False) + assert_format(source, expected, mode) + + +def test_numeric_literals() -> None: + source, expected = read_data("numeric_literals") + mode = replace(DEFAULT_MODE, target_versions=PY36_VERSIONS) + assert_format(source, expected, mode) + + +def test_numeric_literals_ignoring_underscores() -> None: + source, expected = read_data("numeric_literals_skip_underscores") + mode = replace(DEFAULT_MODE, target_versions=PY36_VERSIONS) + assert_format(source, expected, mode) + + +@pytest.mark.python2 +def test_python2_print_function() -> None: + source, expected = read_data("python2_print_function") + mode = replace(DEFAULT_MODE, target_versions={black.TargetVersion.PY27}) + assert_format(source, expected, mode) + + +def test_stub() -> None: + mode = replace(DEFAULT_MODE, is_pyi=True) + source, expected = read_data("stub.pyi") + assert_format(source, expected, mode) + + +def test_python38() -> None: + source, expected = read_data("python38") + assert_format(source, expected, minimum_version=(3, 8)) + + +def test_python39() -> None: + source, expected = read_data("python39") + assert_format(source, expected, minimum_version=(3, 9)) diff --git a/.vim/bundle/black/tests/test_ipynb.py b/.vim/bundle/black/tests/test_ipynb.py new file mode 100644 index 0000000..12f176c --- /dev/null +++ b/.vim/bundle/black/tests/test_ipynb.py @@ -0,0 +1,464 @@ +import pathlib +from click.testing import CliRunner +from black.handle_ipynb_magics import jupyter_dependencies_are_installed +from black import ( + main, + NothingChanged, + format_cell, + format_file_contents, + format_file_in_place, +) +import os +import pytest +from black import Mode +from _pytest.monkeypatch import MonkeyPatch +from py.path import local + +pytestmark = pytest.mark.jupyter +pytest.importorskip("IPython", reason="IPython is an optional dependency") +pytest.importorskip("tokenize_rt", reason="tokenize-rt is an optional dependency") + +JUPYTER_MODE = Mode(is_ipynb=True) + +runner = CliRunner() + + +def test_noop() -> None: + src = 'foo = "a"' + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +@pytest.mark.parametrize("fast", [True, False]) +def test_trailing_semicolon(fast: bool) -> None: + src = 'foo = "a" ;' + result = format_cell(src, fast=fast, mode=JUPYTER_MODE) + expected = 'foo = "a";' + assert result == expected + + +def test_trailing_semicolon_with_comment() -> None: + src = 'foo = "a" ; # bar' + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + expected = 'foo = "a"; # bar' + assert result == expected + + +def test_trailing_semicolon_with_comment_on_next_line() -> None: + src = "import black;\n\n# this is a comment" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_trailing_semicolon_indented() -> None: + src = "with foo:\n plot_bar();" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_trailing_semicolon_noop() -> None: + src = 'foo = "a";' + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_cell_magic() -> None: + src = "%%time\nfoo =bar" + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + expected = "%%time\nfoo = bar" + assert result == expected + + +def test_cell_magic_noop() -> None: + src = "%%time\n2 + 2" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +@pytest.mark.parametrize( + "src, expected", + ( + pytest.param("ls =!ls", "ls = !ls", id="System assignment"), + pytest.param("!ls\n'foo'", '!ls\n"foo"', id="System call"), + pytest.param("!!ls\n'foo'", '!!ls\n"foo"', id="Other system call"), + pytest.param("?str\n'foo'", '?str\n"foo"', id="Help"), + pytest.param("??str\n'foo'", '??str\n"foo"', id="Other help"), + pytest.param( + "%matplotlib inline\n'foo'", + '%matplotlib inline\n"foo"', + id="Line magic with argument", + ), + pytest.param("%time\n'foo'", '%time\n"foo"', id="Line magic without argument"), + ), +) +def test_magic(src: str, expected: str) -> None: + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + assert result == expected + + +@pytest.mark.parametrize( + "src", + ( + "%%bash\n2+2", + "%%html --isolated\n2+2", + ), +) +def test_non_python_magics(src: str) -> None: + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_set_input() -> None: + src = "a = b??" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_input_already_contains_transformed_magic() -> None: + src = '%time foo()\nget_ipython().run_cell_magic("time", "", "foo()\\n")' + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_magic_noop() -> None: + src = "ls = !ls" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_cell_magic_with_magic() -> None: + src = "%%t -n1\nls =!ls" + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + expected = "%%t -n1\nls = !ls" + assert result == expected + + +def test_cell_magic_nested() -> None: + src = "%%time\n%%time\n2+2" + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + expected = "%%time\n%%time\n2 + 2" + assert result == expected + + +def test_cell_magic_with_magic_noop() -> None: + src = "%%t -n1\nls = !ls" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_automagic() -> None: + src = "pip install black" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_multiline_magic() -> None: + src = "%time 1 + \\\n2" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_multiline_no_magic() -> None: + src = "1 + \\\n2" + result = format_cell(src, fast=True, mode=JUPYTER_MODE) + expected = "1 + 2" + assert result == expected + + +def test_cell_magic_with_invalid_body() -> None: + src = "%%time\nif True" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_empty_cell() -> None: + src = "" + with pytest.raises(NothingChanged): + format_cell(src, fast=True, mode=JUPYTER_MODE) + + +def test_entire_notebook_empty_metadata() -> None: + with open( + os.path.join("tests", "data", "notebook_empty_metadata.ipynb"), "rb" + ) as fd: + content_bytes = fd.read() + content = content_bytes.decode() + result = format_file_contents(content, fast=True, mode=JUPYTER_MODE) + expected = ( + "{\n" + ' "cells": [\n' + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {\n' + ' "tags": []\n' + " },\n" + ' "outputs": [],\n' + ' "source": [\n' + ' "%%time\\n",\n' + ' "\\n",\n' + ' "print(\\"foo\\")"\n' + " ]\n" + " },\n" + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {},\n' + ' "outputs": [],\n' + ' "source": []\n' + " }\n" + " ],\n" + ' "metadata": {},\n' + ' "nbformat": 4,\n' + ' "nbformat_minor": 4\n' + "}\n" + ) + assert result == expected + + +def test_entire_notebook_trailing_newline() -> None: + with open( + os.path.join("tests", "data", "notebook_trailing_newline.ipynb"), "rb" + ) as fd: + content_bytes = fd.read() + content = content_bytes.decode() + result = format_file_contents(content, fast=True, mode=JUPYTER_MODE) + expected = ( + "{\n" + ' "cells": [\n' + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {\n' + ' "tags": []\n' + " },\n" + ' "outputs": [],\n' + ' "source": [\n' + ' "%%time\\n",\n' + ' "\\n",\n' + ' "print(\\"foo\\")"\n' + " ]\n" + " },\n" + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {},\n' + ' "outputs": [],\n' + ' "source": []\n' + " }\n" + " ],\n" + ' "metadata": {\n' + ' "interpreter": {\n' + ' "hash": "e758f3098b5b55f4d87fe30bbdc1367f20f246b483f96267ee70e6c40cb185d8"\n' # noqa:B950 + " },\n" + ' "kernelspec": {\n' + ' "display_name": "Python 3.8.10 64-bit (\'black\': venv)",\n' + ' "name": "python3"\n' + " },\n" + ' "language_info": {\n' + ' "name": "python",\n' + ' "version": ""\n' + " }\n" + " },\n" + ' "nbformat": 4,\n' + ' "nbformat_minor": 4\n' + "}\n" + ) + assert result == expected + + +def test_entire_notebook_no_trailing_newline() -> None: + with open( + os.path.join("tests", "data", "notebook_no_trailing_newline.ipynb"), "rb" + ) as fd: + content_bytes = fd.read() + content = content_bytes.decode() + result = format_file_contents(content, fast=True, mode=JUPYTER_MODE) + expected = ( + "{\n" + ' "cells": [\n' + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {\n' + ' "tags": []\n' + " },\n" + ' "outputs": [],\n' + ' "source": [\n' + ' "%%time\\n",\n' + ' "\\n",\n' + ' "print(\\"foo\\")"\n' + " ]\n" + " },\n" + " {\n" + ' "cell_type": "code",\n' + ' "execution_count": null,\n' + ' "metadata": {},\n' + ' "outputs": [],\n' + ' "source": []\n' + " }\n" + " ],\n" + ' "metadata": {\n' + ' "interpreter": {\n' + ' "hash": "e758f3098b5b55f4d87fe30bbdc1367f20f246b483f96267ee70e6c40cb185d8"\n' # noqa: B950 + " },\n" + ' "kernelspec": {\n' + ' "display_name": "Python 3.8.10 64-bit (\'black\': venv)",\n' + ' "name": "python3"\n' + " },\n" + ' "language_info": {\n' + ' "name": "python",\n' + ' "version": ""\n' + " }\n" + " },\n" + ' "nbformat": 4,\n' + ' "nbformat_minor": 4\n' + "}" + ) + assert result == expected + + +def test_entire_notebook_without_changes() -> None: + with open( + os.path.join("tests", "data", "notebook_without_changes.ipynb"), "rb" + ) as fd: + content_bytes = fd.read() + content = content_bytes.decode() + with pytest.raises(NothingChanged): + format_file_contents(content, fast=True, mode=JUPYTER_MODE) + + +def test_non_python_notebook() -> None: + with open(os.path.join("tests", "data", "non_python_notebook.ipynb"), "rb") as fd: + content_bytes = fd.read() + content = content_bytes.decode() + with pytest.raises(NothingChanged): + format_file_contents(content, fast=True, mode=JUPYTER_MODE) + + +def test_empty_string() -> None: + with pytest.raises(NothingChanged): + format_file_contents("", fast=True, mode=JUPYTER_MODE) + + +def test_unparseable_notebook() -> None: + msg = ( + r"File 'tests[/\\]data[/\\]notebook_which_cant_be_parsed\.ipynb' " + r"cannot be parsed as valid Jupyter notebook\." + ) + with pytest.raises(ValueError, match=msg): + format_file_in_place( + pathlib.Path("tests") / "data/notebook_which_cant_be_parsed.ipynb", + fast=True, + mode=JUPYTER_MODE, + ) + + +def test_ipynb_diff_with_change() -> None: + result = runner.invoke( + main, + [ + os.path.join("tests", "data", "notebook_trailing_newline.ipynb"), + "--diff", + ], + ) + expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n" '+print("foo")\n' + assert expected in result.output + + +def test_ipynb_diff_with_no_change() -> None: + result = runner.invoke( + main, + [ + os.path.join("tests", "data", "notebook_without_changes.ipynb"), + "--diff", + ], + ) + expected = "1 file would be left unchanged." + assert expected in result.output + + +def test_cache_isnt_written_if_no_jupyter_deps_single( + monkeypatch: MonkeyPatch, tmpdir: local +) -> None: + # Check that the cache isn't written to if Jupyter dependencies aren't installed. + jupyter_dependencies_are_installed.cache_clear() + nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb") + tmp_nb = tmpdir / "notebook.ipynb" + with open(nb) as src, open(tmp_nb, "w") as dst: + dst.write(src.read()) + monkeypatch.setattr( + "black.jupyter_dependencies_are_installed", lambda verbose, quiet: False + ) + result = runner.invoke(main, [str(tmpdir / "notebook.ipynb")]) + assert "No Python files are present to be formatted. Nothing to do" in result.output + jupyter_dependencies_are_installed.cache_clear() + monkeypatch.setattr( + "black.jupyter_dependencies_are_installed", lambda verbose, quiet: True + ) + result = runner.invoke(main, [str(tmpdir / "notebook.ipynb")]) + assert "reformatted" in result.output + + +def test_cache_isnt_written_if_no_jupyter_deps_dir( + monkeypatch: MonkeyPatch, tmpdir: local +) -> None: + # Check that the cache isn't written to if Jupyter dependencies aren't installed. + jupyter_dependencies_are_installed.cache_clear() + nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb") + tmp_nb = tmpdir / "notebook.ipynb" + with open(nb) as src, open(tmp_nb, "w") as dst: + dst.write(src.read()) + monkeypatch.setattr( + "black.files.jupyter_dependencies_are_installed", lambda verbose, quiet: False + ) + result = runner.invoke(main, [str(tmpdir)]) + assert "No Python files are present to be formatted. Nothing to do" in result.output + jupyter_dependencies_are_installed.cache_clear() + monkeypatch.setattr( + "black.files.jupyter_dependencies_are_installed", lambda verbose, quiet: True + ) + result = runner.invoke(main, [str(tmpdir)]) + assert "reformatted" in result.output + + +def test_ipynb_flag(tmpdir: local) -> None: + nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb") + tmp_nb = tmpdir / "notebook.a_file_extension_which_is_definitely_not_ipynb" + with open(nb) as src, open(tmp_nb, "w") as dst: + dst.write(src.read()) + result = runner.invoke( + main, + [ + str(tmp_nb), + "--diff", + "--ipynb", + ], + ) + expected = "@@ -1,3 +1,3 @@\n %%time\n \n-print('foo')\n" '+print("foo")\n' + assert expected in result.output + + +def test_ipynb_and_pyi_flags() -> None: + nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb") + result = runner.invoke( + main, + [ + nb, + "--pyi", + "--ipynb", + "--diff", + ], + ) + assert isinstance(result.exception, SystemExit) + expected = "Cannot pass both `pyi` and `ipynb` flags!\n" + assert result.output == expected + + +def test_unable_to_replace_magics(monkeypatch: MonkeyPatch) -> None: + src = "%%time\na = 'foo'" + monkeypatch.setattr("black.handle_ipynb_magics.TOKEN_HEX", lambda _: "foo") + with pytest.raises( + AssertionError, match="Black was not able to replace IPython magic" + ): + format_cell(src, fast=True, mode=JUPYTER_MODE) diff --git a/.vim/bundle/black/tests/test_no_ipynb.py b/.vim/bundle/black/tests/test_no_ipynb.py new file mode 100644 index 0000000..bcda2d5 --- /dev/null +++ b/.vim/bundle/black/tests/test_no_ipynb.py @@ -0,0 +1,37 @@ +import pytest +import os + +from tests.util import THIS_DIR +from black import main, jupyter_dependencies_are_installed +from click.testing import CliRunner +from _pytest.tmpdir import tmpdir + +pytestmark = pytest.mark.no_jupyter + +runner = CliRunner() + + +def test_ipynb_diff_with_no_change_single() -> None: + jupyter_dependencies_are_installed.cache_clear() + path = THIS_DIR / "data/notebook_trailing_newline.ipynb" + result = runner.invoke(main, [str(path)]) + expected_output = ( + "Skipping .ipynb files as Jupyter dependencies are not installed.\n" + "You can fix this by running ``pip install black[jupyter]``\n" + ) + assert expected_output in result.output + + +def test_ipynb_diff_with_no_change_dir(tmpdir: tmpdir) -> None: + jupyter_dependencies_are_installed.cache_clear() + runner = CliRunner() + nb = os.path.join("tests", "data", "notebook_trailing_newline.ipynb") + tmp_nb = tmpdir / "notebook.ipynb" + with open(nb) as src, open(tmp_nb, "w") as dst: + dst.write(src.read()) + result = runner.invoke(main, [str(tmpdir)]) + expected_output = ( + "Skipping .ipynb files as Jupyter dependencies are not installed.\n" + "You can fix this by running ``pip install black[jupyter]``\n" + ) + assert expected_output in result.output diff --git a/.vim/bundle/black/tests/test_primer.py b/.vim/bundle/black/tests/test_primer.py new file mode 100644 index 0000000..e7f99fd --- /dev/null +++ b/.vim/bundle/black/tests/test_primer.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 + +import asyncio +import sys +import unittest +from contextlib import contextmanager +from copy import deepcopy +from io import StringIO +from os import getpid +from pathlib import Path +from platform import system +from subprocess import CalledProcessError +from tempfile import TemporaryDirectory, gettempdir +from typing import Any, Callable, Generator, Iterator, Tuple +from unittest.mock import Mock, patch + +from click.testing import CliRunner + +from black_primer import cli, lib + + +EXPECTED_ANALYSIS_OUTPUT = """\ +-- primer results 📊 -- + +68 / 69 succeeded (98.55%) ✅ +1 / 69 FAILED (1.45%) 💩 + - 0 projects disabled by config + - 0 projects skipped due to Python version + - 0 skipped due to long checkout + +Failed projects: + +## black: + - Returned 69 + - stdout: +Black didn't work + +""" +FAKE_PROJECT_CONFIG = { + "cli_arguments": ["--unittest"], + "expect_formatting_changes": False, + "git_clone_url": "https://github.com/psf/black.git", +} + + +@contextmanager +def capture_stdout(command: Callable, *args: Any, **kwargs: Any) -> Generator: + old_stdout, sys.stdout = sys.stdout, StringIO() + try: + command(*args, **kwargs) + sys.stdout.seek(0) + yield sys.stdout.read() + finally: + sys.stdout = old_stdout + + +@contextmanager +def event_loop() -> Iterator[None]: + policy = asyncio.get_event_loop_policy() + loop = policy.new_event_loop() + asyncio.set_event_loop(loop) + if sys.platform == "win32": + asyncio.set_event_loop(asyncio.ProactorEventLoop()) + try: + yield + finally: + loop.close() + + +async def raise_subprocess_error_1(*args: Any, **kwargs: Any) -> None: + raise CalledProcessError(1, ["unittest", "error"], b"", b"") + + +async def raise_subprocess_error_123(*args: Any, **kwargs: Any) -> None: + raise CalledProcessError(123, ["unittest", "error"], b"", b"") + + +async def return_false(*args: Any, **kwargs: Any) -> bool: + return False + + +async def return_subproccess_output(*args: Any, **kwargs: Any) -> Tuple[bytes, bytes]: + return (b"stdout", b"stderr") + + +async def return_zero(*args: Any, **kwargs: Any) -> int: + return 0 + + +class PrimerLibTests(unittest.TestCase): + def test_analyze_results(self) -> None: + fake_results = lib.Results( + { + "disabled": 0, + "failed": 1, + "skipped_long_checkout": 0, + "success": 68, + "wrong_py_ver": 0, + }, + {"black": CalledProcessError(69, ["black"], b"Black didn't work", b"")}, + ) + with capture_stdout(lib.analyze_results, 69, fake_results) as analyze_stdout: + self.assertEqual(EXPECTED_ANALYSIS_OUTPUT, analyze_stdout) + + @event_loop() + def test_black_run(self) -> None: + """Pretend to run Black to ensure we cater for all scenarios""" + loop = asyncio.get_event_loop() + project_name = "unittest" + repo_path = Path(gettempdir()) + project_config = deepcopy(FAKE_PROJECT_CONFIG) + results = lib.Results({"failed": 0, "success": 0}, {}) + + # Test a successful Black run + with patch("black_primer.lib._gen_check_output", return_subproccess_output): + loop.run_until_complete( + lib.black_run(project_name, repo_path, project_config, results) + ) + self.assertEqual(1, results.stats["success"]) + self.assertFalse(results.failed_projects) + + # Test a fail based on expecting formatting changes but not getting any + project_config["expect_formatting_changes"] = True + results = lib.Results({"failed": 0, "success": 0}, {}) + with patch("black_primer.lib._gen_check_output", return_subproccess_output): + loop.run_until_complete( + lib.black_run(project_name, repo_path, project_config, results) + ) + self.assertEqual(1, results.stats["failed"]) + self.assertTrue(results.failed_projects) + + # Test a fail based on returning 1 and not expecting formatting changes + project_config["expect_formatting_changes"] = False + results = lib.Results({"failed": 0, "success": 0}, {}) + with patch("black_primer.lib._gen_check_output", raise_subprocess_error_1): + loop.run_until_complete( + lib.black_run(project_name, repo_path, project_config, results) + ) + self.assertEqual(1, results.stats["failed"]) + self.assertTrue(results.failed_projects) + + # Test a formatting error based on returning 123 + with patch("black_primer.lib._gen_check_output", raise_subprocess_error_123): + loop.run_until_complete( + lib.black_run(project_name, repo_path, project_config, results) + ) + self.assertEqual(2, results.stats["failed"]) + + def test_flatten_cli_args(self) -> None: + fake_long_args = ["--arg", ["really/", "|long", "|regex", "|splitup"], "--done"] + expected = ["--arg", "really/|long|regex|splitup", "--done"] + self.assertEqual(expected, lib._flatten_cli_args(fake_long_args)) + + @event_loop() + def test_gen_check_output(self) -> None: + loop = asyncio.get_event_loop() + stdout, stderr = loop.run_until_complete( + lib._gen_check_output([lib.BLACK_BINARY, "--help"]) + ) + self.assertTrue("The uncompromising code formatter" in stdout.decode("utf8")) + self.assertEqual(None, stderr) + + # TODO: Add a test to see failure works on Windows + if lib.WINDOWS: + return + + false_bin = "/usr/bin/false" if system() == "Darwin" else "/bin/false" + with self.assertRaises(CalledProcessError): + loop.run_until_complete(lib._gen_check_output([false_bin])) + + with self.assertRaises(asyncio.TimeoutError): + loop.run_until_complete( + lib._gen_check_output(["/bin/sleep", "2"], timeout=0.1) + ) + + @event_loop() + def test_git_checkout_or_rebase(self) -> None: + loop = asyncio.get_event_loop() + project_config = deepcopy(FAKE_PROJECT_CONFIG) + work_path = Path(gettempdir()) + + expected_repo_path = work_path / "black" + with patch("black_primer.lib._gen_check_output", return_subproccess_output): + returned_repo_path = loop.run_until_complete( + lib.git_checkout_or_rebase(work_path, project_config) + ) + self.assertEqual(expected_repo_path, returned_repo_path) + + @patch("sys.stdout", new_callable=StringIO) + @event_loop() + def test_process_queue(self, mock_stdout: Mock) -> None: + """Test the process queue on primer itself + - If you have non black conforming formatting in primer itself this can fail""" + loop = asyncio.get_event_loop() + config_path = Path(lib.__file__).parent / "primer.json" + with patch("black_primer.lib.git_checkout_or_rebase", return_false): + with TemporaryDirectory() as td: + return_val = loop.run_until_complete( + lib.process_queue(str(config_path), Path(td), 2) + ) + self.assertEqual(0, return_val) + + +class PrimerCLITests(unittest.TestCase): + @event_loop() + def test_async_main(self) -> None: + loop = asyncio.get_event_loop() + work_dir = Path(gettempdir()) / f"primer_ut_{getpid()}" + args = { + "config": "/config", + "debug": False, + "keep": False, + "long_checkouts": False, + "rebase": False, + "workdir": str(work_dir), + "workers": 69, + "no_diff": False, + } + with patch("black_primer.cli.lib.process_queue", return_zero): + return_val = loop.run_until_complete(cli.async_main(**args)) # type: ignore + self.assertEqual(0, return_val) + + def test_handle_debug(self) -> None: + self.assertTrue(cli._handle_debug(None, None, True)) + + def test_help_output(self) -> None: + runner = CliRunner() + result = runner.invoke(cli.main, ["--help"]) + self.assertEqual(result.exit_code, 0) + + +if __name__ == "__main__": + unittest.main() diff --git a/.vim/bundle/black/tests/util.py b/.vim/bundle/black/tests/util.py new file mode 100644 index 0000000..84e98bb --- /dev/null +++ b/.vim/bundle/black/tests/util.py @@ -0,0 +1,125 @@ +import os +import sys +import unittest +from contextlib import contextmanager +from functools import partial +from pathlib import Path +from typing import Any, Iterator, List, Optional, Tuple + +import black +from black.debug import DebugVisitor +from black.mode import TargetVersion +from black.output import err, out + +THIS_DIR = Path(__file__).parent +DATA_DIR = THIS_DIR / "data" +PROJECT_ROOT = THIS_DIR.parent +EMPTY_LINE = "# EMPTY LINE WITH WHITESPACE" + " (this comment will be removed)" +DETERMINISTIC_HEADER = "[Deterministic header]" + +PY36_VERSIONS = { + TargetVersion.PY36, + TargetVersion.PY37, + TargetVersion.PY38, + TargetVersion.PY39, +} + +DEFAULT_MODE = black.Mode() +ff = partial(black.format_file_in_place, mode=DEFAULT_MODE, fast=True) +fs = partial(black.format_str, mode=DEFAULT_MODE) + + +def _assert_format_equal(expected: str, actual: str) -> None: + if actual != expected and not os.environ.get("SKIP_AST_PRINT"): + bdv: DebugVisitor[Any] + out("Expected tree:", fg="green") + try: + exp_node = black.lib2to3_parse(expected) + bdv = DebugVisitor() + list(bdv.visit(exp_node)) + except Exception as ve: + err(str(ve)) + out("Actual tree:", fg="red") + try: + exp_node = black.lib2to3_parse(actual) + bdv = DebugVisitor() + list(bdv.visit(exp_node)) + except Exception as ve: + err(str(ve)) + + assert actual == expected + + +def assert_format( + source: str, + expected: str, + mode: black.Mode = DEFAULT_MODE, + *, + fast: bool = False, + minimum_version: Optional[Tuple[int, int]] = None, +) -> None: + """Convenience function to check that Black formats as expected. + + You can pass @minimum_version if you're passing code with newer syntax to guard + safety guards so they don't just crash with a SyntaxError. Please note this is + separate from TargetVerson Mode configuration. + """ + actual = black.format_str(source, mode=mode) + _assert_format_equal(expected, actual) + # It's not useful to run safety checks if we're expecting no changes anyway. The + # assertion right above will raise if reality does actually make changes. This just + # avoids wasted CPU cycles. + if not fast and source != expected: + # Unfortunately the AST equivalence check relies on the built-in ast module + # being able to parse the code being formatted. This doesn't always work out + # when checking modern code on older versions. + if minimum_version is None or sys.version_info >= minimum_version: + black.assert_equivalent(source, actual) + black.assert_stable(source, actual, mode=mode) + + +def dump_to_stderr(*output: str) -> str: + return "\n" + "\n".join(output) + "\n" + + +class BlackBaseTestCase(unittest.TestCase): + def assertFormatEqual(self, expected: str, actual: str) -> None: + _assert_format_equal(expected, actual) + + +def read_data(name: str, data: bool = True) -> Tuple[str, str]: + """read_data('test_name') -> 'input', 'output'""" + if not name.endswith((".py", ".pyi", ".out", ".diff")): + name += ".py" + base_dir = DATA_DIR if data else PROJECT_ROOT + return read_data_from_file(base_dir / name) + + +def read_data_from_file(file_name: Path) -> Tuple[str, str]: + with open(file_name, "r", encoding="utf8") as test: + lines = test.readlines() + _input: List[str] = [] + _output: List[str] = [] + result = _input + for line in lines: + line = line.replace(EMPTY_LINE, "") + if line.rstrip() == "# output": + result = _output + continue + + result.append(line) + if _input and not _output: + # If there's no output marker, treat the entire file as already pre-formatted. + _output = _input[:] + return "".join(_input).strip() + "\n", "".join(_output).strip() + "\n" + + +@contextmanager +def change_directory(path: Path) -> Iterator[None]: + """Context manager to temporarily chdir to a different directory.""" + previous_dir = os.getcwd() + try: + os.chdir(path) + yield + finally: + os.chdir(previous_dir) diff --git a/.vim/bundle/black/tox.ini b/.vim/bundle/black/tox.ini new file mode 100644 index 0000000..57f41ac --- /dev/null +++ b/.vim/bundle/black/tox.ini @@ -0,0 +1,45 @@ +[tox] +envlist = {,ci-}py{36,37,38,39,310},fuzz + +[testenv] +setenv = PYTHONPATH = {toxinidir}/src +skip_install = True +# We use `recreate=True` because otherwise, on the second run of `tox -e py`, +# the `no_python2` tests would run with the Python2 extra dependencies installed. +# See https://github.com/psf/black/issues/2367. +recreate = True +deps = + -r{toxinidir}/test_requirements.txt +; parallelization is disabled on CI because pytest-dev/pytest-xdist#620 occurs too frequently +; local runs can stay parallelized since they aren't rolling the dice so many times as like on CI +commands = + pip install -e .[d] + coverage erase + pytest tests --run-optional no_python2 \ + --run-optional no_jupyter \ + !ci: --numprocesses auto \ + --cov {posargs} + pip install -e .[d,python2] + pytest tests --run-optional python2 \ + --run-optional no_jupyter \ + !ci: --numprocesses auto \ + --cov --cov-append {posargs} + pip install -e .[jupyter] + pytest tests --run-optional jupyter \ + -m jupyter \ + !ci: --numprocesses auto \ + --cov --cov-append {posargs} + coverage report + +[testenv:fuzz] +skip_install = True +deps = + -r{toxinidir}/test_requirements.txt + hypothesmith + lark-parser < 0.10.0 +; lark-parser's version is set due to a bug in hypothesis. Once it solved, that would be fixed. +commands = + pip install -e .[d] + coverage erase + coverage run fuzz.py + coverage report diff --git a/.vim/bundle/explainpat/.gitignore b/.vim/bundle/explainpat/.gitignore new file mode 100644 index 0000000..926ccaa --- /dev/null +++ b/.vim/bundle/explainpat/.gitignore @@ -0,0 +1 @@ +doc/tags diff --git a/.vim/bundle/explainpat/README b/.vim/bundle/explainpat/README new file mode 100644 index 0000000..65cba88 --- /dev/null +++ b/.vim/bundle/explainpat/README @@ -0,0 +1,48 @@ +This is a mirror of http://www.vim.org/scripts/script.php?script_id=4364 + +:ExplainPattern {pattern} or +:ExplainPattern {register} + + parse the given Vim {pattern} and print a line of help + (with color) for each found pattern item. Nested + items get extra indent. + + A single-char argument is used as {register} argument: + / explain the last search pattern + * explain pattern from the clipboard + a explain pattern from register a + + +Example: :ExplainPattern * + +Register: * +Pattern: \C^\%(\\\%(@<.\|%[dxouU[(^$V#<>]\=\|z[1-9se(]\|@[>=!]\|_[[^$.]\=\|.\)\|.\) + \C match case while matching the pattern + ^ match at start of line (or string) + \%( start of non-capturing group + | \\ literal string (1 atom(s)) + | \%( start of non-capturing group + | | @< literal string (2 atom(s)) + | | . match any character + | | \| OR branch + | | % literal string (1 atom(s)) + | | [dxouU[(^$V#<>] collection + | | \= (multi) zero or one of the preceding atom + | | \| OR branch + | | z literal string (1 atom(s)) + | | [1-9se(] collection + | | \| OR branch + | | @ literal string (1 atom(s)) + | | [>=!] collection + | | \| OR branch + | | _ literal string (1 atom(s)) + | | [[^$.] collection + | | \= (multi) zero or one of the preceding atom + | | \| OR branch + | | . match any character + | \) end of group + | \| OR branch + | . match any character + \) end of group + +2013 Jan 17 diff --git a/.vim/bundle/explainpat/autoload/explainpat.vim b/.vim/bundle/explainpat/autoload/explainpat.vim new file mode 100644 index 0000000..0fded10 --- /dev/null +++ b/.vim/bundle/explainpat/autoload/explainpat.vim @@ -0,0 +1,609 @@ +" File: explainpat.vim +" Created: 2011 Nov 02 +" Last Change: 2017 Dec 15 +" Version: 0.9 +" Author: Andy Wokula +" License: Vim License, see :h license + +" Implements :ExplainPattern [pattern] + +" History: "{{{ +" 2013 Jun 21 AND/OR text is confusing, removed +" 2013 Apr 20 ... +"}}} + +" TODO {{{ +" - add something like "(empty) ... match everywhere" ... example: '\v(&&|str)' +" Pattern: \v(&&|str) +" Magic Pattern: \(\&\&\|str\) +" \( start of first capturing group +" | (empty) match everywhere +" | \& AND +" | (empty) match everywhere +" | \& AND +" | (empty) match everywhere +" | \| OR +" | str literal string (3 atom(s)) +" \) end of group +" - more testing, completeness check +" ? detailed collections +" ? literal string: also print the unescaped magic items +" ? literal string: show leading/trailing spaces +" +"}}} + +" Init Folklore {{{ +let s:cpo_save = &cpo +set cpo&vim +let g:explainpat#loaded = 1 +"}}} + +func! explainpat#ExplainPattern(cmd_arg, ...) "{{{ + " {a:1} alternative help printer object (caution, no sanity check) + " (for test running) + if a:cmd_arg == "" + " let pattern_str = nwo#vis#Get() + echo "(usage) :ExplainPattern [{register} | {pattern}]" + return + elseif strlen(a:cmd_arg) == 1 && a:cmd_arg =~ '["@0-9a-z\-:.*+/]' + echo 'Register:' a:cmd_arg + let pattern_str = getreg(a:cmd_arg) + else + let pattern_str = a:cmd_arg + endif + + echo printf('Pattern: %s', pattern_str) + let magicpat = nwo#magic#MakeMagic(pattern_str) + if magicpat !=# pattern_str + echo printf('Magic Pattern: %s', magicpat) + endif + + " we need state: + " set flag when in `\%[ ... ]' (optionally matched atoms): + let s:in_opt_atoms = 0 + " counter for `\(': + let s:capture_group_nr = 0 + " >=1 at pos 0 or after '\|', '\&', '\(', '\%(' or '\n'; else 0 or less: + let s:at_begin_of_pat = 1 + + let hulit = a:0>=1 && type(a:1)==s:DICT ? a:1 : explainpat#NewHelpPrinter() + call hulit.AddIndent(' ') + let bull = s:NewTokenBiter(magicpat) + while !bull.AtEnd() + let item = bull.Bite(s:magic_item_pattern) + if item != '' + let Doc = get(s:doc, item, '') + if empty(Doc) + call hulit.AddLiteral(item) + elseif type(Doc) == s:STRING + call hulit.Print(item, Doc) + elseif type(Doc) == s:FUNCREF + call call(Doc, [bull, hulit, item]) + elseif type(Doc) == s:LIST + call call(Doc[0], [bull, hulit, item, Doc[1]]) + endif + let s:at_begin_of_pat -= 1 + else + echoerr printf('ExplainPattern: cannot parse "%s"', bull.Rest()) + break + endif + unlet Doc + endwhile + call hulit.FlushLiterals() +endfunc "}}} + +" s: types {{{ +let s:STRING = type("") +let s:DICT = type({}) +let s:FUNCREF = type(function("tr")) +let s:LIST = type([]) +" }}} + +let s:magic_item_pattern = '\C^\%(\\\%(%#=\|%[dxouU[(^$V#<>]\=\|z[1-9se(]\|@[>=!]\=\|_[[^$.]\=\|.\)\|.\)' + +let s:doc = {} " {{{ +" this is all the help data ... +" strings, funcrefs and intermixed s:DocFoo() functions +" strongly depends on s:magic_item_pattern + +func! s:DocOrBranch(bull, hulit, item) "{{{ + call a:hulit.RemIndent() + call a:hulit.Print(a:item, "OR") + call a:hulit.AddIndent(' ') + let s:at_begin_of_pat = 2 +endfunc "}}} + +let s:doc['\|'] = function("s:DocOrBranch") + +func! s:DocBeginOfPat(bull, hulit, item, msg) "{{{ + call a:hulit.Print(a:item, a:msg) + let s:at_begin_of_pat = 2 +endfunc "}}} + +let s:doc['\&'] = [function("s:DocBeginOfPat"), "AND"] + +let s:ord = split('n first second third fourth fifth sixth seventh eighth ninth') + +func! s:DocGroupStart(bull, hulit, item) "{{{ + if a:item == '\%(' + call a:hulit.Print(a:item, "start of non-capturing group") + elseif a:item == '\(' + let s:capture_group_nr += 1 + call a:hulit.Print(a:item, printf("start of %s capturing group", get(s:ord, s:capture_group_nr, '(invalid)'))) + else " a:item == '\z(' + call a:hulit.Print(a:item, 'start of "external" group (only usable in :syn-region)') + endif + call a:hulit.AddIndent('| ', ' ') + let s:at_begin_of_pat = 2 +endfunc "}}} +func! s:DocGroupEnd(bull, hulit, item) "{{{ + call a:hulit.RemIndent(2) + call a:hulit.Print(a:item, "end of group") +endfunc "}}} + +let s:doc['\('] = function("s:DocGroupStart") +let s:doc['\%('] = function("s:DocGroupStart") +let s:doc['\)'] = function("s:DocGroupEnd") +" let s:doc['\z('] = "only in syntax scripts" +let s:doc['\z('] = function("s:DocGroupStart") + +func! s:DocStar(bull, hulit, item) "{{{ + if s:at_begin_of_pat >= 1 + " call a:hulit.Print(a:item, "(at begin of pattern) literal `*'") + call a:hulit.AddLiteral(a:item) + else + call a:hulit.Print(a:item, "(multi) zero or more of the preceding atom") + endif +endfunc "}}} + +" let s:doc['*'] = "(multi) zero or more of the preceding atom" +let s:doc['*'] = function("s:DocStar") + +let s:doc['\+'] = "(multi) one or more of the preceding atom" +let s:doc['\='] = "(multi) zero or one of the preceding atom" +let s:doc['\?'] = "(multi) zero or one of the preceding atom" +" let s:doc['\{'] = "(multi) N to M, greedy" +" let s:doc['\{-'] = "(multi) N to M, non-greedy" + +func! s:DocBraceMulti(bull, hulit, item) "{{{ + let rest = a:bull.Bite('^-\=\d*\%(,\d*\)\=\\\=}') + if rest != "" + if rest == '-}' + call a:hulit.Print(a:item. rest, "non-greedy version of `*'") + elseif rest =~ '^-' + call a:hulit.Print(a:item. rest, "(multi) N to M, non-greedy") + else + call a:hulit.Print(a:item. rest, "(multi) N to M, greedy") + endif + else + call a:hulit.Print(a:item, "(invalid) incomplete `\\{...}' item") + endif +endfunc "}}} + +let s:doc['\{'] = function("s:DocBraceMulti") + +let s:doc['\@>'] = "(multi) match preceding atom like a full pattern" +let s:doc['\@='] = "(assertion) require match for preceding atom" +let s:doc['\@!'] = "(assertion) forbid match for preceding atom" + +func! s:DocBefore(bull, hulit, item) "{{{ + let rest = a:bull.Bite('^\d*\%[<[=!]]') + if rest == "<=" + call a:hulit.Print(a:item.rest, "(assertion) require match for preceding atom to the left") + elseif rest == "= 1 + call a:hulit.Print(a:item, "(assertion) require match at start of line") + " after `^' is not at begin of pattern ... handle special case `^*' here: + if a:bull.Bite('^\*') == "*" + call a:hulit.AddLiteral("*") + endif + else + " call a:hulit.Print(a:item, "(not at begin of pattern) literal `^'") + call a:hulit.AddLiteral(a:item) + endif +endfunc "}}} + +" let s:doc['^'] = "(assertion) require match at start of line" +let s:doc['^'] = function("s:DocCircumFlex") + +let s:doc['\_^'] = "(assertion) like `^', allowed anywhere in the pattern" + +func! s:DocDollar(bull, hulit, item) "{{{ + if a:bull.Rest() =~ '^$\|^\\[&|)n]' + call a:hulit.Print(a:item, "(assertion) require match at end of line") + else + call a:hulit.AddLiteral(a:item) + endif +endfunc "}}} + +" let s:doc['$'] = "(assertion) require match at end of line" +let s:doc['$'] = function("s:DocDollar") + +let s:doc['\_$'] = "(assertion) like `$', allowed anywhere in the pattern" +let s:doc['.'] = "match any character" +let s:doc['\_.'] = "match any character or newline" + +func! s:DocUnderscore(bull, hulit, item) "{{{ + let cclass = a:bull.Bite('^\a') + if cclass != '' + let cclass_doc = get(s:doc, '\'. cclass, '(invalid character class)') + call a:hulit.Print(a:item. cclass, printf('%s or end-of-line', cclass_doc)) + else + call a:hulit.Print(a:item, "(invalid) `\\_' should be followed by a letter or `[...]'") + " echoerr printf('ExplainPattern: cannot parse %s', a:item. matchstr(a:bull.Rest(), '.')) + endif +endfunc "}}} + +let s:doc['\_'] = function("s:DocUnderscore") +let s:doc['\<'] = "(assertion) require match at begin of word, :h word" +let s:doc['\>'] = "(assertion) require match at end of word, :h word" +let s:doc['\zs'] = "set begin of match here" +let s:doc['\ze'] = "set end of match here" +let s:doc['\%^'] = "(assertion) match at begin of buffer" +let s:doc['\%$'] = "(assertion) match at end of buffer" +let s:doc['\%V'] = "(assertion) match within the Visual area" +let s:doc['\%#'] = "(assertion) match with cursor position" + +func! s:DocRegexEngine(bull, hulit, item) "{{{ + let engine = a:bull.Bite('^[012]') + if engine == "0" + call a:hulit.Print(a:item.engine, 'Force automatic selection of the regexp engine (since v7.3.970).') + elseif engine == "1" + call a:hulit.Print(a:item.engine, 'Force using the old engine (since v7.3.970).') + elseif engine == "2" + call a:hulit.Print(a:item.engine, 'Force using the NFA engine (since v7.3.970).') + else + call a:hulit.Print(a:item, '(invalid) \%#= can only be followed by 0, 1, or 2') + endif +endfunc "}}} + +let s:doc['\%#='] = function("s:DocRegexEngine") + +" \%'m \%<'m \%>'m +" \%23l \%<23l \%>23l +" \%23c \%<23c \%>23c +" \%23v \%<23v \%>23v +" backslash percent at/before/after +func! s:DocBspercAt(bull, hulit, item) "{{{ + let rest = a:bull.Bite('^\%(''.\|\d\+[lvc]\)\C') + if rest[0] == "'" + call a:hulit.Print(a:item.rest, "(assertion) match with position of mark ". rest[1]) + else + let number = rest[:-2] + let type = rest[-1:] + if type ==# "l" + call a:hulit.Print(a:item.rest, "match in line ". number) + elseif type ==# "c" + call a:hulit.Print(a:item.rest, "match in column ". number) + elseif type ==# "v" + call a:hulit.Print(a:item.rest, "match in virtual column ". number) + else + call a:hulit.Print(a:item.rest, "(invalid) incomplete `\\%' item") + " echoerr printf('ExplainPattern: incomplete item %s', a:item. rest) + endif + endif +endfunc "}}} +func! s:DocBspercBefore(bull, hulit, item) "{{{ + let rest = a:bull.Bite('^\%(''.\|\d\+[lvc]\)\C') + if rest[0] == "'" + call a:hulit.Print(a:item.rest, "(assertion) match before position of mark ". rest[1]) + else + let number = rest[:-2] + let type = rest[-1:] + if type ==# "l" + call a:hulit.Print(a:item.rest, printf("match above line %d (towards start of buffer)", number)) + elseif type ==# "c" + call a:hulit.Print(a:item.rest, "match before column ". number) + elseif type ==# "v" + call a:hulit.Print(a:item.rest, "match before virtual column ". number) + else + call a:hulit.Print(a:item.rest, "(invalid) incomplete `\\%<' item") + " echoerr printf('ExplainPattern: incomplete item %s', a:item. rest) + endif + endif +endfunc "}}} +func! s:DocBspercAfter(bull, hulit, item) "{{{ + let rest = a:bull.Bite('^\%(''.\|\d\+[lvc]\)\C') + if rest[0] == "'" + call a:hulit.Print(a:item.rest, "(assertion) match after position of mark ". rest[1]) + else + let number = rest[:-2] + let type = rest[-1:] + if type ==# "l" + call a:hulit.Print(a:item.rest, printf("match below line %d (towards end of buffer)", number)) + elseif type ==# "c" + call a:hulit.Print(a:item.rest, "match after column ". number) + elseif type ==# "v" + call a:hulit.Print(a:item.rest, "match after virtual column ". number) + else + call a:hulit.Print(a:item.rest, "(invalid) incomplete `\\%>' item") + " echoerr printf('ExplainPattern: incomplete item %s', a:item. rest) + endif + endif +endfunc "}}} + +let s:doc['\%'] = function("s:DocBspercAt") +let s:doc['\%<'] = function("s:DocBspercBefore") +let s:doc['\%>'] = function("s:DocBspercAfter") + +let s:doc['\i'] = "identifier character (see 'isident' option)" +let s:doc['\I'] = "like \"\\i\", but excluding digits" +let s:doc['\k'] = "keyword character (see 'iskeyword' option)" +let s:doc['\K'] = "like \"\\k\", but excluding digits" +let s:doc['\f'] = "file name character (see 'isfname' option)" +let s:doc['\F'] = "like \"\\f\", but excluding digits" +let s:doc['\p'] = "printable character (see 'isprint' option)" +let s:doc['\P'] = "like \"\\p\", but excluding digits" +let s:doc['\s'] = "whitespace character: and " +let s:doc['\S'] = "non-whitespace character; opposite of \\s" +let s:doc['\d'] = "digit: [0-9]" +let s:doc['\D'] = "non-digit: [^0-9]" +let s:doc['\x'] = "hex digit: [0-9A-Fa-f]" +let s:doc['\X'] = "non-hex digit: [^0-9A-Fa-f]" +let s:doc['\o'] = "octal digit: [0-7]" +let s:doc['\O'] = "non-octal digit: [^0-7]" +let s:doc['\w'] = "word character: [0-9A-Za-z_]" +let s:doc['\W'] = "non-word character: [^0-9A-Za-z_]" +let s:doc['\h'] = "head of word character: [A-Za-z_]" +let s:doc['\H'] = "non-head of word character: [^A-Za-z_]" +let s:doc['\a'] = "alphabetic character: [A-Za-z]" +let s:doc['\A'] = "non-alphabetic character: [^A-Za-z]" +let s:doc['\l'] = "lowercase character: [a-z]" +let s:doc['\L'] = "non-lowercase character: [^a-z]" +let s:doc['\u'] = "uppercase character: [A-Z]" +let s:doc['\U'] = "non-uppercase character: [^A-Z]" + +let s:doc['\e'] = "match " +let s:doc['\t'] = "match " +let s:doc['\r'] = "match " +let s:doc['\b'] = "match CTRL-H" +let s:doc['\n'] = [function("s:DocBeginOfPat"), "match a newline"] +let s:doc['~'] = "match the last given substitute string" +let s:doc['\1'] = "match first captured string" +let s:doc['\2'] = "match second captured string" +let s:doc['\3'] = "match third captured string" +let s:doc['\4'] = "match fourth captured string " +let s:doc['\5'] = "match fifth captured string" +let s:doc['\6'] = "match sixth captured string" +let s:doc['\7'] = "match seventh captured string" +let s:doc['\8'] = "match eighth captured string" +let s:doc['\9'] = "match ninth captured string" + +let s:doc['\z1'] = 'match same string matched by first "external" group' +let s:doc['\z2'] = 'match same string matched by second "external" group' +let s:doc['\z3'] = 'match same string matched by third "external" group' +let s:doc['\z4'] = 'match same string matched by fourth "external" group ' +let s:doc['\z5'] = 'match same string matched by fifth "external" group' +let s:doc['\z6'] = 'match same string matched by sixth "external" group' +let s:doc['\z7'] = 'match same string matched by seventh "external" group' +let s:doc['\z8'] = 'match same string matched by eighth "external" group' +let s:doc['\z9'] = 'match same string matched by ninth "external" group' + +" from MakeMagic() +" skip the rest of a collection +let s:coll_skip_pat = '^\^\=]\=\%(\%(\\[\^\]\-\\bertn]\|\[:\w\+:]\|\[=.=]\|\[\..\.]\|[^\]]\)\@>\)*]' + +func! s:DocCollection(bull, hulit, item) "{{{ + let collstr = a:bull.Bite(s:coll_skip_pat) + if collstr == "" || collstr == "]" + call a:hulit.AddLiteral('['. collstr) + else + let inverse = collstr =~ '^\^' + let with_nl = a:item == '\_[' + let descr = inverse ? printf('collection not matching [%s', collstr[1:]) : 'collection' + let descr_nl = printf("%s%s", (inverse && with_nl ? ', but' : ''), (with_nl ? ' with end-of-line added' : '')) + call a:hulit.Print(a:item. collstr, descr. descr_nl) + endif +endfunc "}}} + +let s:doc['['] = function("s:DocCollection") +let s:doc['\_['] = function("s:DocCollection") + +func! s:DocOptAtoms(bull, hulit, item) "{{{ + if a:item == '\%[' + call a:hulit.Print(a:item, "start a sequence of optionally matched atoms") + let s:in_opt_atoms = 1 + call a:hulit.AddIndent('. ') + else " a:item == ']' + if s:in_opt_atoms + call a:hulit.RemIndent() + call a:hulit.Print(a:item, "end of optionally matched atoms") + let s:in_opt_atoms = 0 + else + call a:hulit.AddLiteral(a:item) + endif + endif +endfunc "}}} + +" let s:doc['\%['] = "start a sequence of optionally matched atoms" +let s:doc['\%['] = function("s:DocOptAtoms") +let s:doc[']'] = function("s:DocOptAtoms") + +func! s:DocAnywhere(bull, hulit, item, msg) "{{{ + call a:hulit.Print(a:item, a:msg) + " keep state: + let s:at_begin_of_pat += 1 +endfunc "}}} + +let s:doc['\c'] = [function("s:DocAnywhere"), "ignore case while matching the pattern"] +let s:doc['\C'] = [function("s:DocAnywhere"), "match case while matching the pattern"] +let s:doc['\Z'] = [function("s:DocAnywhere"), "ignore composing characters in the pattern"] + +" \%d 123 +" \%x 2a +" \%o 0377 +" \%u 20AC +" \%U 1234abcd + +func! s:DocBspercDecimal(bull, hulit, item) "{{{ + let number = a:bull.Bite('^\d\{,3}') + let char = strtrans(nr2char(str2nr(number))) + call a:hulit.Print(a:item. number, printf("match character specified by decimal number %s (%s)", number, char)) +endfunc "}}} +func! s:DocBspercHexTwo(bull, hulit, item) "{{{ + let number = a:bull.Bite('^\x\{,2}') + let char = strtrans(nr2char(str2nr(number,16))) + call a:hulit.Print(a:item. number, printf("match character specified with hex number 0x%s (%s)", number, char)) +endfunc "}}} +func! s:DocBspercOctal(bull, hulit, item) "{{{ + let number = a:bull.Bite('^\o\{,4}') + let char = strtrans(nr2char(str2nr(number,8))) + call a:hulit.Print(a:item. number, printf("match character specified with octal number 0%s (%s)", substitute(number, '^0*', '', ''), char)) +endfunc "}}} +func! s:DocBspercHexFour(bull, hulit, item) "{{{ + let number = a:bull.Bite('^\x\{,4}') + let char = has("multi_byte_encoding") ? ' ('. strtrans(nr2char(str2nr(number,16))).')' : '' + call a:hulit.Print(a:item. number, printf("match character specified with hex number 0x%s%s", number, char)) +endfunc "}}} +func! s:DocBspercHexEight(bull, hulit, item) "{{{ + let number = a:bull.Bite('^\x\{,8}') + let char = has("multi_byte_encoding") ? ' ('. strtrans(nr2char(str2nr(number,16))).')' : '' + call a:hulit.Print(a:item. number, printf("match character specified with hex number 0x%s%s", number, char)) +endfunc "}}} + +let s:doc['\%d'] = function("s:DocBspercDecimal") " 123 +let s:doc['\%x'] = function("s:DocBspercHexTwo") " 2a +let s:doc['\%o'] = function("s:DocBspercOctal") " 0377 +let s:doc['\%u'] = function("s:DocBspercHexFour") " 20AC +let s:doc['\%U'] = function("s:DocBspercHexEight") " 1234abcd + +" \m +" \M +" \v +" \V +"}}} + +" {{{ +func! s:SillyCheck(digits) "{{{ + return strlen(a:digits) < 10 ? a:digits : '{silly large number}' +endfunc "}}} +" }}} + +func! explainpat#NewHelpPrinter() "{{{ + let obj = {} + let obj.literals = '' + let obj.indents = [] + let obj.len = 0 " can be negative (!) + + func! obj.Print(str, ...) "{{{ + call self.FlushLiterals() + let indstr = join(self.indents, '') + echohl Comment + echo indstr + echohl None + if a:0 == 0 + echon a:str + else + " echo indstr. printf("`%s' %s", a:str, a:1) + echohl PreProc + echon printf("%-10s", a:str) + echohl None + echohl Comment + echon printf(" %s", a:1) + echohl None + endif + endfunc "}}} + + func! obj.AddLiteral(item) "{{{ + let self.literals .= a:item + endfunc "}}} + + func! obj.FlushLiterals() "{{{ + if self.literals == '' + return + endif + let indstr = join(self.indents, '') + echohl Comment + echo indstr + echohl None + if self.literals =~ '^\s\|\s$' + echon printf("%-10s", '"'. self.literals. '"') + else + echon printf("%-10s", self.literals) + endif + echohl Comment + echon " literal string" + if exists("*strchars") + if self.literals =~ '\\' + let self.literals = substitute(self.literals, '\\\(.\)', '\1', 'g') + endif + let spconly = self.literals =~ '[^ ]' ? '' : ', spaces only' + let nlit = strchars(self.literals) + echon " (". nlit. (nlit==1 ? " atom" : " atoms"). spconly.")" + endif + echohl None + let self.literals = '' + endfunc "}}} + + func! obj.AddIndent(...) "{{{ + call self.FlushLiterals() + if self.len >= 0 + call extend(self.indents, copy(a:000)) + elseif self.len + a:0 >= 1 + call extend(self.indents, a:000[-(self.len+a:0):]) + endif + let self.len += a:0 + endfunc "}}} + + func! obj.RemIndent(...) "{{{ + call self.FlushLiterals() + if a:0 == 0 + if self.len >= 1 + call remove(self.indents, -1) + endif + let self.len -= 1 + else + if self.len > a:1 + call remove(self.indents, -a:1, -1) + elseif self.len >= 1 + call remove(self.indents, 0, -1) + endif + let self.len -= a:1 + endif + endfunc "}}} + + return obj +endfunc "}}} + +func! s:NewTokenBiter(str) "{{{ + " {str} string to eat pieces from + let obj = {'str': a:str} + + " consume piece from start of input matching {pat} + func! obj.Bite(pat) "{{{ + " {pat} should start with '^' + let bite = matchstr(self.str, a:pat) + let self.str = strpart(self.str, strlen(bite)) + return bite + endfunc "}}} + + " get the unparsed rest of input (not consuming) + func! obj.Rest() "{{{ + return self.str + endfunc "}}} + + " check if end of input reached + func! obj.AtEnd() "{{{ + return self.str == "" + endfunc "}}} + + return obj +endfunc "}}} + +" Modeline: {{{1 +let &cpo = s:cpo_save +unlet s:cpo_save +" vim:ts=8:fdm=marker: diff --git a/.vim/bundle/explainpat/autoload/nwo/magic.vim b/.vim/bundle/explainpat/autoload/nwo/magic.vim new file mode 100644 index 0000000..557af82 --- /dev/null +++ b/.vim/bundle/explainpat/autoload/nwo/magic.vim @@ -0,0 +1,169 @@ +" File: makemagic.vim +" Created: 2011 Apr 18 +" Last Change: 2013 Mar 06 +" Rev Days: 6 +" Author: Andy Wokula +" License: Vim License, see :h license +" Version: 0.3 + +"" Comments {{{ + +" nwo#magic#MakeMagic({pat}) +" +" remove embedded switches (\v, \m, \M and \V) from pattern {pat} by +" converting {pat} into a purely magic pattern. Return the converted +" pattern. +" + +" TODO +" - recognize [#-\\]], with spaces: [ #-\ \] ] +" (collection ends at second ']') +" + \v\z( => \z( + +" 2011 Nov 01 copied from asneeded\makemagic.vim +" now asneeded\nwo\makemagic.vim (comments there!) +"}}} + +" Init Folklore {{{ +let s:cpo_save = &cpo +set cpo&vim +let g:nwo#magic#loaded = 1 +"}}} + +func! nwo#magic#MakeMagic(pat, ...) "{{{ + " {pat} (string) + " {a:1} (boolean) initial magic mode (default follows the 'magic' option) + + if a:0>=1 ? a:1 : &magic + let magic_mode = 'm' + let bracket_is_magic = 1 + else + let magic_mode = 'M' + let bracket_is_magic = 0 + endif + let result_pat = '' + let endpos = strlen(a:pat) + + let spos = 0 + while spos >= 0 && spos < endpos + let mc1 = a:pat[spos] + let mc2 = a:pat[spos+1] + + let collection = 0 + if mc1 == '\' + if mc2 == '[' && !bracket_is_magic + let collection = 1 + let spos += 1 + elseif mc2 =~ '[vmMV]' + let magic_mode = mc2 + let bracket_is_magic = mc2 =~# '[vm]' + let spos += 2 + elseif mc2 == '_' + let mc3 = a:pat[spos+2] + if mc3 == '[' + let collection = 1 + endif + endif + elseif mc1 == '[' && bracket_is_magic + let collection = 1 + endif + + if collection + let nextpos = matchend(a:pat, s:collection_skip_pat, spos) + if nextpos >= 0 + let magpart = strpart(a:pat, spos, nextpos-spos) + else + let magpart = strpart(a:pat, spos) + endif + else + let nextpos = match(a:pat, s:switchpat[magic_mode], spos) + if nextpos >= 0 + if nextpos == spos + continue " optional + endif + let part = strpart(a:pat, spos, nextpos-spos) + else + let part = strpart(a:pat, spos) + endif + if magic_mode ==# 'v' + let magpart = substitute(part, s:vmagic_items_pat, '\=s:ToggleVmagicBslash(submatch(0))', 'g') + elseif magic_mode ==# 'm' + let magpart = part + elseif magic_mode ==# 'M' + let s:rem_bslash_before = '.*[~' + " the first two branches are only to eat the matches: + let magpart = substitute(part, '\\%\[\|\\_\\\=.\|\\.\|[.*[~]', '\=s:ToggleBslash(submatch(0))', 'g') + elseif magic_mode ==# 'V' + let s:rem_bslash_before = '^$.*[~' + let magpart = substitute(part, '\\%\[\|\\_\\\=.\|\\.\|[\^$.*[~]', '\=s:ToggleBslash(submatch(0))', 'g') + endif + endif + + let result_pat .= magpart + let spos = nextpos + endwhile + + return result_pat +endfunc "}}} + +" s:variables {{{ + +" pattern to match very magic items: +let s:vmagic_items_pat = '\C\\\%(z(\|.\)\|%\%([#$(UV[\^cdlouvx]\|[<>]\=\%(''.\|\d\+[clv]\)\)\|[&()+<=>?|]\|@\%([!=>]\|<[!=]\)\|{' + +" not escaped - require an even number of '\' (zero or more) to the left: +let s:not_escaped = '\%(\%(^\|[^\\]\)\%(\\\\\)*\)\@<=' + +" prohibit an unescaped match for '%' before what follows (used when trying +" to find '[', but not '%[', :h /\%[ ) +let s:not_vmagic_opt_atoms = '\%(\%(^\|[^\\]\)\%(\\\\\)*%\)\@\)*]' + +" }}} + +" for magic modes 'V' and 'M' +func! s:ToggleBslash(patitem) "{{{ + " {patitem} magic char or '\'.char + if a:patitem =~ '^.$' + return '\'.a:patitem + else + let mchar = matchstr(a:patitem, '^\\\zs.') + if stridx(s:rem_bslash_before, mchar) >= 0 + return mchar + else + return a:patitem + endif + endif +endfunc "}}} + +func! s:ToggleVmagicBslash(patitem) "{{{ + " {patitem} magic char or '\'.char + if a:patitem =~ '^\\' + let mchar = a:patitem[1] + if mchar =~ '[\^$.*[\]~\\[:alnum:]_]' + return a:patitem + else + return mchar + endif + else + return '\'.a:patitem + endif +endfunc "}}} + +" Modeline: {{{1 +let &cpo = s:cpo_save +unlet s:cpo_save +" vim:ts=8:fdm=marker: diff --git a/.vim/bundle/explainpat/doc/explainpat.txt b/.vim/bundle/explainpat/doc/explainpat.txt new file mode 100644 index 0000000..0268c69 --- /dev/null +++ b/.vim/bundle/explainpat/doc/explainpat.txt @@ -0,0 +1,103 @@ +*explainpat.txt* Give detailed help on a regexp pattern. + + For Vim version 7.0. Last change: 2017 Dec 15 + By Andy Wokula + + *explainpat* *explainpat.vim* +ExplainPat is a plugin to inspect a Vim regexp pattern and show a line of help +for each found regexp item. Purpose is to get a better view on somebody +else's complex regexp string. It may also help with spotting mistakes. + +If you find that it explains something wrong, please drop me an email. + +URL http://vim.sourceforge.net/scripts/script.php?script_id=4364 +============================================================================== + *:ExplainPattern* +:ExplainPattern {pattern} +:ExplainPattern {register} + inspect the given Vim {pattern} and print a line of + help (with color) for each found pattern item. Nested + items get extra indent. + + A single-char argument is used as {register} argument: + / explain the last search pattern + * explain pattern from the clipboard + a explain pattern from register a + etc. + +> + :ExplainPattern \C^\%(\\\%(@<\|%#=\|%[dxouU[(^$V#<>]\=\|z[1-9se(]\|@[>=!]\|_[[^$.]\=\|.\)\|.\) + +Notes: +The pattern is first converted into a purely |magic| pattern using +|nwo#magic#MakeMagic()|. This means that embedded |/\V| |/\M| |/\m| |/\v| +specifiers are effectively removed from the explanation. + +:ExplainPattern also accepts some invalid patterns: > + :ExplainPattern \) + Pattern: \) + \) end of group + +============================================================================== +TODO: +? `\%[...]` can be nested? But documentation |/\%[]| says no. + +Ideas: +- If the user already knows regular expressions but of a different kind, + explain items in that different language. + Other regexp idioms: + Perl, Python, Emacs, Java, C#, Sed, Grep; + Vim ... very magic, nomagic, very nomagic + Possible config var name: + g:explainpat_user_knows = "Perl" + g:explainpat_background = "Perl" + g:explainpat_in_terms_of = "Perl" + g:explainpat_language = "Perl" + +============================================================================== +History: + +v0.9 ++ BF accept `\@123<=` and `\@123 explainpat#NewHelpPrinter() + +v0.7 ++ BF `\{3,4\}` not accepted, only `\{3,4}` + +v0.6 ++ BF `[]` is a literal string (not a collection) + +v0.5 ++ BF `$\n^` ++ wording: `\|` is not an "OR branch" (it separates or branches) ++ NF added tests (not part of release) ++ NF accept custom help printer (for testing purpose, could also be used to + export HTML etc.) + +v0.4 ++ BF `[foo` is a literal string ++ BF for |/star|, |/^| and |/$|, distinguish position in the pattern + (sometimes these become literal); special cases: `^**`, `^^`, `\c^^`, `$$`, + `a\|^b`, `a\&*b`, `[ab`, `\_[ab`, ... + +v0.3 ++ BF accept `\z(...\)` and `\z[N]` ++ BF accept `[=a=]` and `[.a.]` in collections + +v0.2 ++ include vim_use suggestions [2012 Dec 19] + * for collections [^...], add "not matching [...]" + * fix `\%>'a1` + * more detailed `\%x31` + +v0.1 (initial version) ++ start of "first" capturing group, start of 2nd ... ++ `\|` should get less indent than the branches, do we need to create an + AST? ! no, keep it straight forward ++ `\%[...]` ++ `\{`, `\{-` + +============================================================================== +vim:tw=78:fo=tcq2:sts=0:ts=8:sw=8:fdm=marker:fmr=^_\^,^\^:ft=help: diff --git a/.vim/bundle/explainpat/plugin/explainpat.vim b/.vim/bundle/explainpat/plugin/explainpat.vim new file mode 100644 index 0000000..731f9a4 --- /dev/null +++ b/.vim/bundle/explainpat/plugin/explainpat.vim @@ -0,0 +1,34 @@ +" File: explainpat.vim +" Created: 2011 Nov 02 +" Last Change: 2013 Mar 08 +" Rev Days: 7 +" Author: Andy Wokula +" License: Vim License, see :h license +" Version: 0.5 + +" :ExplainPattern [pattern] +" +" parse the given Vim [pattern] (default: text in the Visual area) and +" print a line of help (with color!) for each found pattern item. Nested +" items get extra indent. +" +" A single-char [pattern] argument is used as register argument: +" / explain the last search pattern +" * explain pattern from the clipboard +" a explain pattern from register a +" + +if exists("loaded_explainpat") + finish +endif +let loaded_explainpat = 1 + +if v:version < 700 + echomsg "explainpat: you need at least Vim 7.0" + finish +endif + +com! -nargs=? ExplainPattern call explainpat#ExplainPattern() + +" Modeline: {{{1 +" vim:ts=8:fdm=marker: diff --git a/.vim/bundle/password-store/LICENSE b/.vim/bundle/password-store/LICENSE new file mode 100644 index 0000000..b6e9c7f --- /dev/null +++ b/.vim/bundle/password-store/LICENSE @@ -0,0 +1 @@ +Same as vim's license diff --git a/.vim/bundle/password-store/README.md b/.vim/bundle/password-store/README.md new file mode 100644 index 0000000..28bf33b --- /dev/null +++ b/.vim/bundle/password-store/README.md @@ -0,0 +1,31 @@ +# vim-password-store +Vim niceties for password store ("pass" the standard Unix Password Manager) + +This is a fairly straight-forward fork of Tom Ryder's password-store plugin, +included in the contrib folder for pass and at Tom's cgit store: +https://git.zx2c4.com/password-store/ + +I've added some niceties based around a fuller filetype implementation, +in particular + +* unset spell +* add simple syntax highlighting + +I've added some simple shoulder surfing protection via syntax highlighting. +When loading a pass file for editing, the first line will be obscured. It is +editable when the cursor is in place, but will be obscured while editing other +fields. + +There are two commands to facilitate hiding and concealing + +*:Reveal* + +*:Conceal* + +These do what you might expect, reset the syntax highlighting of the password +from obscured to cleared. + +There is also integration with ``pwgen`` the same utility called by +password-store to generate passwords. By default this is mapped to vim's +increment and decrement operators ```` and ```` but the mapping is +available by a plug mapping ``password_rotate`` diff --git a/.vim/bundle/password-store/autoload/password_store.vim b/.vim/bundle/password-store/autoload/password_store.vim new file mode 100644 index 0000000..fac5202 --- /dev/null +++ b/.vim/bundle/password-store/autoload/password_store.vim @@ -0,0 +1,36 @@ +" setup known state +if exists('did_password_store') + " || &compatible + " || version < 700} + finish +endif +let g:did_password_store = '1' +let s:save_cpo = &cpoptions +set compatible&vim +"echo 'main code'}} +" Return vim to users choice +function! password_store#generate() abort + if executable('pwgen') + let l:result = systemlist('pwgen -N1 ' . password_store#setting('pw_length') ) + return l:result[0] + endif +endfunction + +function! password_store#replace() abort + execute 's/\<.*\>/' . password_store#generate() . '/' +endfunction + +let s:default_settings = { + \ 'pw_length' : '12', + \ 'enable_syntax' : 'true', + \ } + +function! password_store#setting(key) + if exists('g:password_store_settings') && has_key(g:password_store_settings, a:key) + return g:password_store_settings[a:key] + else + return s:default_settings[a:key] + endif +endfunction + +let &cpoptions = s:save_cpo diff --git a/.vim/bundle/password-store/doc/vim-password-store.txt b/.vim/bundle/password-store/doc/vim-password-store.txt new file mode 100644 index 0000000..1ffcf36 --- /dev/null +++ b/.vim/bundle/password-store/doc/vim-password-store.txt @@ -0,0 +1,86 @@ +*vim-password-store* Niceties for editing password-store files + +=============================================================================== +CONTENTS *password-store-contents* + + 1. Intro ........................................... |password-store-intro| + 2. Requirements ............................. |password-store-requirements| + 3. Usage ........................................... |password-store-usage| + 4. Configuration .................................. |password-store-config| + 5. Licence ....................................... |password-store-licence| + 6. Credits ....................................... |password-store-credits| +=============================================================================== +1. Intro *password-store-intro* + +Password store is a nice command line password manager, well suited to +vim's style. Tom Ryder has written a plugin to unset the standard +password security leakages, backup files, info files etc. This works +well, but doesn't provide hooks for extending. I wanted to add a few +simple enhancements, including unsetting spelling (no password should be +spell checked :-) and some simple syntax highlighting. + +2. Requirements *password-store-requirements* + +A plugin manager (not required but the plugin is written to expect +this) and password-store https://www.passwordstore.org/ . + +3. Usage *password-store-usage* + +The plugin automatically loads when it sees the appropriate file paths +for password-store. This is Tom Ryders + +There are two functions: +> + :Conceal + :Reveal +< +That apply syntax highlighting to obscure and un-obscure the password. +By default the pass file loads in obscured mode, however when the cursor is on +the word it should readable and editable. This offers minor "shoulder surfing" +protection, facilitating editing of metadata, such as adding URLs etc. + +There's minor feedback for short passwords, with Error highlighting for +passwords 6 or less characters long. + +Password store also adds password generation support via pwgen. Since +password-store already leverages pwgen, this is a fairly safe assumption. +There is a Plug mapping *rotate_password* +by default this is mapped to and but can be overridden via setting +an alternate plug mapping +> + nnoremap >M-a> rotate_password +< +The mapped sequence will generate a random password. As neither decrement nor +increment mean anything in this context, buth are mapped to the same plug. +The default length of the password is 10 character, but +modifiable by configuration This is also available via the function call(s) +> + password_store#replace() +< +4. Configuration *password-store-config* + +Configuration is done through a global dictionary *g:password_store_settings* +Initialize the dictionary and add settings as needed +> + let g:password_store_settings = {} + +Syntax obfustaction is enabled by default. To disable it: +> + let g:password_store_settings.enable_syntax = 'false" + + +Auto "increment" password length is 12 characters. To change it +> + let g:password_store_settings.pw_length = 20 +< +4. Licence *password-store-licence* + +This plugin is licensed under the same terms as vim itself (see +|license| ) + +5. Credits *password-store-credits* + +Tom Ryder +https://git.zx2c4.com/password-store/ + +vim:ft=help diff --git a/.vim/bundle/password-store/ftdetect/pass.vim b/.vim/bundle/password-store/ftdetect/pass.vim new file mode 100644 index 0000000..0ce0f48 --- /dev/null +++ b/.vim/bundle/password-store/ftdetect/pass.vim @@ -0,0 +1,20 @@ +" detect password-store files +if exists('did_pass') || &compatible || version < 700 + finish +endif +let g:did_pass = 'did_pass' +let s:save_cpo = &cpoptions +set compatible&vim + +" this is straight from Tom Ryders plugin + +autocmd VimEnter + \ /dev/shm/pass.?*/?*.txt + \,/dev/shm/gopass-edit*/secret + \,$TMPDIR/pass.?*/?*.txt + \,/tmp/pass.?*/?*.txt + \ setlocal filetype=pass | + \ if password_store#setting('enable_syntax') ==# 'true' | setlocal syntax=pass.obfuscated | endif + +" Cleanup at end +let &cpoptions = s:save_cpo diff --git a/.vim/bundle/password-store/ftplugin/pass.vim b/.vim/bundle/password-store/ftplugin/pass.vim new file mode 100644 index 0000000..c6a2680 --- /dev/null +++ b/.vim/bundle/password-store/ftplugin/pass.vim @@ -0,0 +1,58 @@ +if exists('did_pass_ftplugin') || &compatible || v:version < 700 + finish +endif +let g:did_pass = 'did_pass_ftplugin' +let s:save_cpo = &cpoptions +set compatible&vim + +nmap rotate_password :call password_store#replace() +if ! hasmapto( '\rotate_password', 'n') + nmap rotate_password +endif + +setlocal nospell + + +" Check whether we should set redacting options or not +function! s:CheckArgsRedact() + + " Ensure there's one argument and it's the matched file + if argc() != 1 || fnamemodify(argv(0), ':p') !=# expand(':p') + return + endif + + " Disable all the leaky options globally + set nobackup + set nowritebackup + set noswapfile + set viminfo= + if has('persistent_undo') + set noundofile + endif + + " Tell the user what we're doing so they know this worked, via a message and + " a global variable they can check + echomsg 'Editing password file--disabled leaky options!' + let g:redact_pass_redacted = 1 + +endfunction + +call s:CheckArgsRedact() + +function! s:reveal_pass() abort + highlight! link password_store_password Comment +endfunction +command! Reveal call reveal_pass() + +function! s:conceal_pass() abort + highlight! password_store_password guifg=DarkGray guibg=DarkGray ctermfg=8 ctermbg=8 +endfunction +command! Conceal call conceal_pass() +normal! GG + +augroup password_settings_late_load + autocmd! + autocmd FileReadPost if &filetype == 'pass' | echom 'autocmd triggered' | let b:load_pass_syntax = 1 | source 'syntax/pass.vim' | endif +augroup end +" Cleanup at end +let &cpoptions = s:save_cpo diff --git a/.vim/bundle/password-store/syntax/obfuscated.vim b/.vim/bundle/password-store/syntax/obfuscated.vim new file mode 100644 index 0000000..0a53ea8 --- /dev/null +++ b/.vim/bundle/password-store/syntax/obfuscated.vim @@ -0,0 +1,21 @@ +if exists('b:current_syntax') | finish| endif + +setlocal cursorline + +" set redacted colors from colorscheme +let s:error_highlight_str = execute( 'highlight Error' ) +let s:error_fg = matchstr(s:error_highlight_str, 'guifg=\zs\S*') + +let s:comment_highlight_str = execute( 'highlight Comment' ) +let s:comment_fg = matchstr(s:comment_highlight_str, 'guifg=\zs\S*') + +execute 'highlight password_store_password ' . + \ ' guibg=' . s:comment_fg . + \ ' guifg=' . s:comment_fg . + \ ' ctermfg=1 ctermbg=1' + +execute 'highlight password_store_password_short ' . + \ ' guibg=' . s:error_fg . + \ ' guifg=' . s:error_fg . + \ ' ctermfg=1 ctermbg=1' + diff --git a/.vim/bundle/password-store/syntax/pass.vim b/.vim/bundle/password-store/syntax/pass.vim new file mode 100644 index 0000000..1645720 --- /dev/null +++ b/.vim/bundle/password-store/syntax/pass.vim @@ -0,0 +1,15 @@ +if exists('b:current_syntax') | finish| endif + +" first line (by convention always a single pasword) +syntax match password_store_password /\%1l.*/ +highlight link password_store_password Comment + +" highlight short passwords +syntax match password_store_password_short /\%1l.\{,6\}$/ +highlight link password_store_password_short Error + +" colon field value is the suggested path for additional information +syntax match password_store_header '\v^[^:]+:' +highlight link password_store_header PreProc + + diff --git a/.vim/bundle/password-store/t/settings.vader b/.vim/bundle/password-store/t/settings.vader new file mode 100644 index 0000000..aab7688 --- /dev/null +++ b/.vim/bundle/password-store/t/settings.vader @@ -0,0 +1,42 @@ +Given pass (short password): + pass + +Execute (test short password syntax): + AssertEqual SyntaxAt(2), 'password_store_password_short' + +Given pass (longer password): + passwordlonger + +Execute (test longer password syntax): + AssertEqual SyntaxAt(2), 'password_store_password' + +Given pass (another password): + passwordlonger + +Before (disable syntax): + let g:password_store_settings = {} + let g:password_store_settings.enable_syntax = 'false' + +Execute (test disable syntax ): + AssertEqual &filetype, 'pass' + +Execute (test increment password length): + AssertEqual len( password_store#generate()), 12 + +Execute (test new generates do not match): + AssertNotEqual password_store#generate(), password_store#generate() + +Given text (test ftdetect): + passwordtesting + +Before (mimic settings): + let g:password_store_settings = {} + let g:password_store_settings.enable_syntax = 'false' + let g:password_store_settings.pw_length = '16' + +Execute (test ftdetect trigger): + set filetype=pass + AssertEqual password_store#setting('enable_syntax'), 'false' + AssertEqual len( password_store#generate() ), 16 + + diff --git a/README.md b/.vim/bundle/vim-artesanal/README.md similarity index 100% rename from README.md rename to .vim/bundle/vim-artesanal/README.md diff --git a/colors/artesanal.vim b/.vim/bundle/vim-artesanal/colors/artesanal.vim similarity index 100% rename from colors/artesanal.vim rename to .vim/bundle/vim-artesanal/colors/artesanal.vim diff --git a/doc/artesanal.txt b/.vim/bundle/vim-artesanal/doc/artesanal.txt similarity index 100% rename from doc/artesanal.txt rename to .vim/bundle/vim-artesanal/doc/artesanal.txt diff --git a/templates/_common.colortemplate b/.vim/bundle/vim-artesanal/templates/_common.colortemplate similarity index 100% rename from templates/_common.colortemplate rename to .vim/bundle/vim-artesanal/templates/_common.colortemplate diff --git a/templates/_dark.colortemplate b/.vim/bundle/vim-artesanal/templates/_dark.colortemplate similarity index 100% rename from templates/_dark.colortemplate rename to .vim/bundle/vim-artesanal/templates/_dark.colortemplate diff --git a/templates/_help.colortemplate b/.vim/bundle/vim-artesanal/templates/_help.colortemplate similarity index 100% rename from templates/_help.colortemplate rename to .vim/bundle/vim-artesanal/templates/_help.colortemplate diff --git a/templates/_light.colortemplate b/.vim/bundle/vim-artesanal/templates/_light.colortemplate similarity index 100% rename from templates/_light.colortemplate rename to .vim/bundle/vim-artesanal/templates/_light.colortemplate diff --git a/templates/artesanal.colortemplate b/.vim/bundle/vim-artesanal/templates/artesanal.colortemplate similarity index 100% rename from templates/artesanal.colortemplate rename to .vim/bundle/vim-artesanal/templates/artesanal.colortemplate diff --git a/.vim/bundle/vim-flake8/LICENSE b/.vim/bundle/vim-flake8/LICENSE new file mode 100644 index 0000000..4380242 --- /dev/null +++ b/.vim/bundle/vim-flake8/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2014, Vincent Driessen +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/.vim/bundle/vim-flake8/README.mdown b/.vim/bundle/vim-flake8/README.mdown new file mode 100644 index 0000000..338e445 --- /dev/null +++ b/.vim/bundle/vim-flake8/README.mdown @@ -0,0 +1,199 @@ +vim-flake8 +========== +`vim-flake8` is a Vim plugin that runs the currently open file through Flake8, +a static syntax and style checker for Python source code. It supersedes both +[vim-pyflakes](https://github.com/nvie/vim-pyflakes) and +[vim-pep8](https://github.com/nvie/vim-pep8). + +[Flake8](https://pypi.python.org/pypi/flake8/) is a wrapper around PyFlakes +(static syntax checker), PEP8 (style checker) and Ned's MacCabe script +(complexity checker). + + +Installation +------------ + +Make sure you've installed the +[flake8](https://pypi.python.org/pypi/flake8/) package. + +If you use vim >= 8, install this plugin with: +``` +mkdir -p ~/.vim/pack/flake8/start/ +cd ~/.vim/pack/flake8/start/ +git clone https://github.com/nvie/vim-flake8.git +``` + +Otherwise, install [vim-pathogen](https://github.com/tpope/vim-pathogen) +if you're not using it already. Then, simply put the +contents of this repository in your `~/.vim/bundle` directory. + +Usage +----- +1. Open a Python file +2. Press `` to run `flake8` on it + +It shows the errors inside a quickfix window, which will allow your to quickly +jump to the error locations by simply pressing [Enter]. + +If any of `g:flake8_show_in_gutter` or `g:flake8_show_in_file` are set to `1`, call: + + call flake8#Flake8UnplaceMarkers() + +To remove all markers. No default mapping is provided. + +Customization +------------- +If you don't want to use the `` key for flake8-checking, simply remap it to +another key. It autodetects whether it has been remapped and won't register +the `` key if so. For example, to remap it to `` instead, use: + + autocmd FileType python map :call flake8#Flake8() + +For flake8 configuration options please consult the following page: + +http://flake8.pycqa.org/en/latest/user/configuration.html + +To customize the location of your flake8 binary, set `g:flake8_cmd`: + + let g:flake8_cmd="/opt/strangebin/flake8000" + +To customize the location of quick fix window, set `g:flake8_quickfix_location`: + + let g:flake8_quickfix_location="topleft" + +To customize the height of quick fix window, set `g:flake8_quickfix_height`: + + let g:flake8_quickfix_height=7 + +To customize whether the quickfix window opens, set `g:flake8_show_quickfix`: + + let g:flake8_show_quickfix=0 " don't show + let g:flake8_show_quickfix=1 " show (default) + +To customize whether the show signs in the gutter, set `g:flake8_show_in_gutter`: + + let g:flake8_show_in_gutter=0 " don't show (default) + let g:flake8_show_in_gutter=1 " show + +To customize whether the show marks in the file, set `g:flake8_show_in_file`: + + let g:flake8_show_in_file=0 " don't show (default) + let g:flake8_show_in_file=1 " show + +To customize the number of marks to show, set `g:flake8_max_markers`: + + let g:flake8_max_markers=500 " (default) + +To customize the gutter markers, set any of `flake8_error_marker`, `flake8_warning_marker`, +`flake8_pyflake_marker`, `flake8_complexity_marker`, `flake8_naming_marker`. Setting one to +the empty string disables it. Ex.: + + flake8_error_marker='EE' " set error marker to 'EE' + flake8_warning_marker='WW' " set warning marker to 'WW' + flake8_pyflake_marker='' " disable PyFlakes warnings + flake8_complexity_marker='' " disable McCabe complexity warnings + flake8_naming_marker='' " disable naming warnings + +To customize the colors used for markers, define the highlight groups, `Flake8_Error`, +`Flake8_Warning`, `Flake8_PyFlake`, `Flake8_Complexity`, `Flake8_Naming`: + + " to use colors defined in the colorscheme + highlight link Flake8_Error Error + highlight link Flake8_Warning WarningMsg + highlight link Flake8_Complexity WarningMsg + highlight link Flake8_Naming WarningMsg + highlight link Flake8_PyFlake WarningMsg + +To show the error message of the current line in the ruler, call `flake8#ShowError()`: + + " add binding to call the function + nnoremap :call flake8#Flake8ShowError() + + +Tips +---- +A tip might be to run the Flake8 check every time you write a Python file, to +enable this, add the following line to your `.vimrc` file (thanks +[Godefroid](https://github.com/gotcha)!): + + autocmd BufWritePost *.py call flake8#Flake8() + +This plugin goes well together with the following plugin: + +- [PyUnit](https://github.com/nvie/vim-pyunit) (unit test helper under `` + and ``) + + +Max line lengths +---------------- + +One particular customization a lot of people like to make is relaxing the +maximum line length default. This is a config setting that should be set in +flake8 itself. (vim-flake8 "just" invokes it and deals with showing the output +in Vim's quickfix window.) + +To do so, put the following into your `~/.config/flake8` file: + + [flake8] + max-line-length = 120 + + +History +------- +1.6: Deprecated configuring flake8 options through Vim settings. Instead, +advise users to use the `~/.config/flake8` config file. + + - Decprecated options: + - `g:flake8_builtins` + - `g:flake8_ignore` + - `g:flake8_max_line_length` + - `g:flake8_max_complexity` + + - New options: + - `g:flake8_quickfix_height` + +1.5: Added markers and the option to don't show the quickfix window, also split +functions into a autoload file. Added: + + - Options: + - `g:flake8_show_quickfix` + - `g:flake8_show_in_gutter` + - `g:flake8_show_in_file` + - `g:flake8_max_markers` + - `flake8_error_marker` + - `flake8_warning_marker` + - `flake8_pyflake_marker` + - `flake8_complexity_marker` + - `flake8_naming_marker` + - Functions: + - `flake8#Flake8UnplaceMarkers()` + - `flake8#Flake8()` + - Highlighting: + - `Flake8_Error` + - `Flake8_Warning` + - `Flake8_Complexity` + - `Flake8_Naming` + - `Flake8_PyFlake` + +1.4: Suppress output to stdout. + +1.3: Added the following options: + + - `g:flake8_builtins="_,apply"` + - `g:flake8_max_complexity=10` + +1.2: Added the following options: + + - `g:flake8_cmd="/opt/strangebin/flake8000"` + - `g:flake8_max_line_length=120` + - `g:flake8_ignore="E501,W293"` + +1.1: Added `g:flake8_ignore` option. + +1.0: Initial version. + + +License +------- + +Liberally licensed under BSD terms. diff --git a/.vim/bundle/vim-flake8/autoload/flake8.vim b/.vim/bundle/vim-flake8/autoload/flake8.vim new file mode 100644 index 0000000..c407b9b --- /dev/null +++ b/.vim/bundle/vim-flake8/autoload/flake8.vim @@ -0,0 +1,301 @@ +" +" Python filetype plugin for running flake8 +" Language: Python (ft=python) +" Maintainer: Vincent Driessen +" Version: Vim 7 (may work with lower Vim versions, but not tested) +" URL: http://github.com/nvie/vim-flake8 + +let s:save_cpo = &cpo +set cpo&vim + +"" ** external ** {{{ + +function! flake8#Flake8() + call s:Flake8() + call s:Warnings() +endfunction + +function! flake8#Flake8UnplaceMarkers() + call s:UnplaceMarkers() + call s:Warnings() +endfunction + +function! flake8#Flake8ShowError() + call s:ShowErrorMessage() +endfunction + +"" }}} + +"" ** internal ** {{{ + +"" warnings + +let s:displayed_warnings = 0 +function s:Warnings() + if !s:displayed_warnings + let l:show_website_url = 0 + + let l:msg = "has been deprecated in favour of flake8 config files" + for setting_name in ['g:flake8_ignore', 'g:flake8_builtins', 'g:flake8_max_line_length', 'g:flake8_max_complexity'] + if exists(setting_name) + echohl WarningMsg | echom setting_name l:msg | echohl None + let l:show_website_url = 1 + endif + endfor + + if l:show_website_url + let l:url = "http://flake8.readthedocs.org/en/latest/config.html" + echohl WarningMsg | echom l:url | echohl None + endif + let s:displayed_warnings = 1 + endif +endfunction + +"" config + +function! s:DeclareOption(name, globalPrefix, default) " {{{ + if !exists('g:'.a:name) + if a:default != '' + execute 'let s:'.a:name.'='.a:default + else + execute 'let s:'.a:name.'=""' + endif + else + execute 'let l:global="g:".a:name' + if l:global != '' + execute 'let s:'.a:name.'="'.a:globalPrefix.'".g:'.a:name + else + execute 'let s:'.a:name.'=""' + endif + endif +endfunction " }}} + +function! s:Setup() " {{{ + "" read options + + " flake8 command + call s:DeclareOption('flake8_cmd', '', '"flake8"') + " quickfix + call s:DeclareOption('flake8_quickfix_location', '', '"belowright"') + call s:DeclareOption('flake8_quickfix_height', '', 5) + call s:DeclareOption('flake8_show_quickfix', '', 1) + " markers to show + call s:DeclareOption('flake8_show_in_gutter', '', 0) + call s:DeclareOption('flake8_show_in_file', '', 0) + call s:DeclareOption('flake8_max_markers', '', 500) + " marker signs + call s:DeclareOption('flake8_error_marker', '', '"E>"') + call s:DeclareOption('flake8_warning_marker', '', '"W>"') + call s:DeclareOption('flake8_pyflake_marker', '', '"F>"') + call s:DeclareOption('flake8_complexity_marker', '', '"C>"') + call s:DeclareOption('flake8_naming_marker', '', '"N>"') + + "" setup markerdata + + if !exists('s:markerdata') + let s:markerdata = {} + let s:markerdata['E'] = {'name': 'Flake8_Error'} + let s:markerdata['W'] = {'name': 'Flake8_Warning'} + let s:markerdata['F'] = {'name': 'Flake8_PyFlake'} + let s:markerdata['C'] = {'name': 'Flake8_Complexity'} + let s:markerdata['N'] = {'name': 'Flake8_Nameing'} + endif + let s:markerdata['E'].marker = s:flake8_error_marker + let s:markerdata['W'].marker = s:flake8_warning_marker + let s:markerdata['F'].marker = s:flake8_pyflake_marker + let s:markerdata['C'].marker = s:flake8_complexity_marker + let s:markerdata['N'].marker = s:flake8_naming_marker + +endfunction " }}} + +"" do flake8 + +function! s:Flake8() " {{{ + " read config + call s:Setup() + + let l:executable = split(s:flake8_cmd)[0] + + if !executable(l:executable) + echoerr "File " . l:executable . " not found. Please install it first." + return + endif + + " clear old + call s:UnplaceMarkers() + let s:matchids = [] + let s:signids = [] + + " store old grep settings (to restore later) + let l:old_gfm=&grepformat + let l:old_gp=&grepprg + let l:old_shellpipe=&shellpipe + let l:old_t_ti=&t_ti + let l:old_t_te=&t_te + + " write any changes before continuing + if &readonly == 0 + update + endif + + set lazyredraw " delay redrawing + + " prevent terminal from blinking + set shellpipe=> + set t_ti= + set t_te= + + " perform the grep itself + let &grepformat="%f:%l:%c: %m\,%f:%l: %m,%-G%\\d" + let &grepprg=s:flake8_cmd + silent! grep! "%" + " close any existing cwindows, + " placed after 'grep' in case quickfix is open on autocmd QuickFixCmdPost + cclose + + " restore grep settings + let &grepformat=l:old_gfm + let &grepprg=l:old_gp + let &shellpipe=l:old_shellpipe + let &t_ti=l:old_t_ti + let &t_te=l:old_t_te + " store mapping of line number to error string + + " process results + let s:resultDict = {} + + let l:results=getqflist() + let l:has_results=results != [] + if l:has_results + " save line number of each error message + for result in l:results + let linenum = result.lnum + let s:resultDict[linenum] = result.text + endfor + + " markers + if !s:flake8_show_in_gutter == 0 || !s:flake8_show_in_file == 0 + call s:PlaceMarkers(l:results) + endif + " quickfix + if !s:flake8_show_quickfix == 0 + " open cwindow + execute s:flake8_quickfix_location." copen".s:flake8_quickfix_height + setlocal wrap + nnoremap c :cclose + nnoremap q :cclose + endif + endif + + set nolazyredraw + redraw! + + " Show status + if l:has_results == 0 + echon "Flake8 check OK" + else + echon "Flake8 found issues" + endif +endfunction " }}} + + + +"" markers +function! s:PlaceMarkers(results) " {{{ + " in gutter? + if !s:flake8_show_in_gutter == 0 + " define signs + for val in values(s:markerdata) + if val.marker != '' + execute "sign define ".val.name." text=".val.marker." texthl=".val.name + endif + endfor + endif + + " place + let l:index0 = 100 + let l:index = l:index0 + for result in a:results + if l:index >= (s:flake8_max_markers+l:index0) + break + endif + let l:type = strpart(result.text, 0, 1) + if has_key(s:markerdata, l:type) && s:markerdata[l:type].marker != '' + " file markers + if !s:flake8_show_in_file == 0 + if !has_key(s:markerdata[l:type], 'matchstr') + let s:markerdata[l:type].matchstr = '\%(' + else + let s:markerdata[l:type].matchstr .= '\|' + endif + let s:markerdata[l:type].matchstr .= '\%'.result.lnum.'l\%'.result.col.'c' + endif + " gutter markers + if !s:flake8_show_in_gutter == 0 + execute ":sign place ".index." name=".s:markerdata[l:type].name + \ . " line=".result.lnum." file=".expand("%:p") + let s:signids += [l:index] + endif + let l:index += 1 + endif + endfor + + " in file? + if !s:flake8_show_in_file == 0 + for l:val in values(s:markerdata) + if l:val.marker != '' && has_key(l:val, 'matchstr') + let l:val.matchid = matchadd(l:val.name, l:val.matchstr.'\)') + endif + endfor + endif +endfunction " }}} + +function! s:UnplaceMarkers() " {{{ + " gutter markers + if exists('s:signids') + for i in s:signids + execute ":sign unplace ".i + endfor + unlet s:signids + endif + " file markers + for l:val in values(s:markerdata) + if has_key(l:val, 'matchid') + call matchdelete(l:val.matchid) + unlet l:val.matchid + unlet l:val.matchstr + endif + endfor +endfunction " }}} + +function! s:ShowErrorMessage() " {{{ + let l:cursorPos = getpos(".") + if !exists('s:resultDict') + return + endif + if !exists('b:showing_message') + " ensure showing msg is always defined + let b:showing_message = ' ' + endif + + " if there is a message on the current line, + " then echo it + if has_key(s:resultDict, l:cursorPos[1]) + let l:errorText = get(s:resultDict, l:cursorPos[1]) + echo strpart(l:errorText, 0, &columns-1) + let b:showing_message = 1 + endif + + " if a message is already being shown, + " then clear it + if !b:showing_message == 0 + echo + let b:showing_message = 0 + endif + +endfunction " }}} + +"" }}} + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/.vim/bundle/vim-flake8/ftplugin/python_flake8.vim b/.vim/bundle/vim-flake8/ftplugin/python_flake8.vim new file mode 100644 index 0000000..dd062d9 --- /dev/null +++ b/.vim/bundle/vim-flake8/ftplugin/python_flake8.vim @@ -0,0 +1,55 @@ +" +" Python filetype plugin for running flake8 +" Language: Python (ft=python) +" Maintainer: Vincent Driessen +" Version: Vim 7 (may work with lower Vim versions, but not tested) +" URL: http://github.com/nvie/vim-flake8 +" +" Only do this when not done yet for this buffer +if exists("b:loaded_flake8_ftplugin") + finish +endif +let b:loaded_flake8_ftplugin=1 + +let s:save_cpo = &cpo +set cpo&vim + +"" Highlight groups for errors +" pep8 errors +highlight default Flake8_Error + \ ctermbg=DarkRed ctermfg=Red cterm=bold + \ guibg=DarkRed guifg=Red gui=bold +" pep8 warnings +highlight default Flake8_Warning + \ ctermbg=Yellow ctermfg=DarkYellow cterm=bold + \ guibg=Yellow guifg=DarkYellow gui=bold +" PyFlakes codes +highlight default Flake8_PyFlake + \ ctermbg=DarkBlue ctermfg=Blue cterm=bold + \ guibg=DarkBlue guifg=Blue gui=bold +" McCabe complexity warnings +highlight default Flake8_Complexity + \ ctermbg=DarkBlue ctermfg=Blue cterm=bold + \ guibg=DarkBlue guifg=Blue gui=bold +" naming conventions +highlight default Flake8_Naming + \ ctermbg=DarkBlue ctermfg=Blue cterm=bold + \ guibg=DarkBlue guifg=Blue gui=bold + +" to not break with old versions +function! Flake8() + call flake8#Flake8() +endfunction + +" Add mappings, unless the user didn't want this. +" The default mapping is registered under to by default, unless the user +" remapped it already (or a mapping exists already for ) +if !exists("no_plugin_maps") && !exists("no_flake8_maps") + if !hasmapto('Flake8(') && !hasmapto('flake8#Flake8(') + noremap :call flake8#Flake8() + endif +endif + +let &cpo = s:save_cpo +unlet s:save_cpo + diff --git a/.vim/bundle/vim-markdown/.gitignore b/.vim/bundle/vim-markdown/.gitignore new file mode 100644 index 0000000..c6f4595 --- /dev/null +++ b/.vim/bundle/vim-markdown/.gitignore @@ -0,0 +1,2 @@ +build +/doc/tags diff --git a/.vim/bundle/vim-markdown/.travis.yml b/.vim/bundle/vim-markdown/.travis.yml new file mode 100644 index 0000000..338161c --- /dev/null +++ b/.vim/bundle/vim-markdown/.travis.yml @@ -0,0 +1,34 @@ +language: vim + +os: + - linux + - osx + +env: + - TEST=package + - TEST=latest + +before_script: | + if [ "$TEST" = "package" ]; then + if [ "$TRAVIS_OS_NAME" = "linux" ]; then + sudo apt-get -y update + sudo apt-get -y install vim + fi + else + cd .. + git clone --depth 1 https://github.com/vim/vim + cd vim + ./configure --with-features=huge + make + sudo make install + export PATH="/usr/local/bin:$PATH" + cd "$TRAVIS_BUILD_DIR" + fi + if [ "$TRAVIS_OS_NAME" = "osx" ]; then + curl https://bootstrap.pypa.io/get-pip.py | sudo python + fi + sudo -H pip install virtualenv + +script: + - make test + - make doc diff --git a/.vim/bundle/vim-markdown/CONTRIBUTING.md b/.vim/bundle/vim-markdown/CONTRIBUTING.md new file mode 100644 index 0000000..86912a4 --- /dev/null +++ b/.vim/bundle/vim-markdown/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# CONTRIBUTING + +These contributing guidelines were accepted rather late in the history of this plugin, after much code had already been written. + +If you find any existing behavior which does not conform to these guidelines, please correct it and send a pull request. + +## General Rules + +Every non local identifier must start with `g:vim_markdown_`. + +## Documentation + +Every new feature must be documented under in the [README.md](README.md). Documentation must be written in [GFM](https://help.github.com/articles/github-flavored-markdown) since GitHub itself is the primary to HTML converter used. In particular, remember that GFM adds line breaks at single newlines, so just forget about the 70 characters wide rule. + +Vim help file [doc/vim-markdown.txt](doc/vim-markdown.txt) will be generated from [README.md](README.md) by `make doc` using [vim-tools](https://github.com/xolox/vim-tools). + +## Markdown Flavors + +There are many flavors of markdown, each one with an unique feature set. This plugin uses the following strategy to deal with all those flavors: + +- Features from the [original markdown](http://daringfireball.net/projects/markdown/syntax) are turned on by default. They may not even have an option that turns them off. + +- Features from other markdown flavors *must* have an option that turns them on or off. If the feature is common enough across multiple versions of markdown, it may be turned on by default. This shall be decided by the community when the merge request is done. + +- If possible, cite the exact point in the documentation of the flavor where a feature is specified. If the feature is not documented, you may also reference the source code itself of the implementation. This way, people who do not know that flavor can check if your implementation is correct. + +- Do not use the name of a flavor for a feature that is used across multiple flavors. Instead, create a separate flavor option, that automatically sets each feature. + + For example, fenced code blocks (putting code between pairs of three backticks) is not part of the original markdown, but is supported by [GFM](https://help.github.com/articles/github-flavored-markdown#fenced-code-blocks) and [Jekyll](http://jekyllrb.com/docs/configuration/). + + Therefore, instead of creating an option `g:vim_markdown_gfm_fenced_code_block`, and an option `g:vim_markdown_jekyll_fenced_code_block`, create a single option `g:vim_markdown_fenced_code_block`. + + Next, if there are many more than one Jekyll feature options, create a `g:vim_markdown_jekyll` option that turns them all on at once. + +## Style + +When choosing between multiple valid Markdown syntaxes, the default behavior must be that specified at: + +If you wish to have a behavior that differs from that style guide, add an option to turn it on or off, and leave it off by default. + +## Tests + +All new features must have unit tests. + +## Issues + +Issues are tracked within GitHub. + +When reporting issues, your report is more effective if you include a minimal example file that reproduces the problem. Try to trim out as much as possible, until you have the smallest possible file that still reproduces the issue. Paste the example inline into your issue report, quoted using four spaces at the beginning of each line, like this example from issue [#189](https://github.com/plasticboy/vim-markdown/issues/189): + +``` +Minimal example: + + ``` + = + ``` + bad! +``` diff --git a/.vim/bundle/vim-markdown/Makefile b/.vim/bundle/vim-markdown/Makefile new file mode 100644 index 0000000..0b287e2 --- /dev/null +++ b/.vim/bundle/vim-markdown/Makefile @@ -0,0 +1,88 @@ +VIMDIR=$(DESTDIR)/usr/share/vim +ADDONS=${VIMDIR}/addons +REGISTRY=${VIMDIR}/registry + +all: + +install: + mkdir -pv ${ADDONS}/ftdetect + cp -v ftdetect/markdown.vim ${ADDONS}/ftdetect/markdown.vim + mkdir -pv ${ADDONS}/ftplugin + cp -v ftplugin/markdown.vim ${ADDONS}/ftplugin/markdown.vim + mkdir -pv ${ADDONS}/syntax + cp -v syntax/markdown.vim ${ADDONS}/syntax/markdown.vim + mkdir -pv ${ADDONS}/after/ftplugin + cp -v after/ftplugin/markdown.vim ${ADDONS}/after/ftplugin/markdown.vim + mkdir -pv ${ADDONS}/indent + cp -v indent/markdown.vim ${ADDONS}/indent/markdown.vim + mkdir -pv ${ADDONS}/doc + cp -v doc/vim-markdown.txt ${ADDONS}/doc/vim-markdown.txt + mkdir -pv ${REGISTRY} + cp -v registry/markdown.yaml ${REGISTRY}/markdown.yaml + +test: build/tabular build/vim-toml build/vim-json build/vader.vim + test/run-tests.sh +.PHONY: test + +update: build/tabular build/vim-toml build/vim-json build/vader.vim + cd build/tabular && git pull + cd build/vim-toml && git pull + cd build/vim-json && git pull + cd build/vader.vim && git pull +.PHONY: update + +build/tabular: | build + git clone https://github.com/godlygeek/tabular build/tabular + +build/vim-toml: | build + git clone https://github.com/cespare/vim-toml build/vim-toml + +build/vim-json: | build + git clone https://github.com/elzr/vim-json build/vim-json + +build/vader.vim: | build + git clone https://github.com/junegunn/vader.vim build/vader.vim + +build: + mkdir build + +doc: build/html2vimdoc build/vim-tools + sed -e '/^\[!\[Build Status\]/d' \ + -e '/^1\. \[/d' README.md > doc/tmp.md # remove table of contents + build/html2vimdoc/bin/python build/vim-tools/html2vimdoc.py -f vim-markdown \ + doc/tmp.md | \ + sed -E -e "s/[[:space:]]*$$//" -e "# remove trailing spaces" \ + -e "/^.{79,}\|$$/ {" -e "# wrap table of contents over 79" \ + -e "h" -e "# save the matched line to the hold space" \ + -e "s/^(.*) (\|[^|]*\|)$$/\1/" -e "# make content title" \ + -e "p" -e "# print title" \ + -e "g" -e "# restore the matched line" \ + -e "s/^.* (\|[^|]*\|)$$/ \1/" -e "# make link" \ + -e ":c" -e "s/^(.{1,78})$$/ \1/" -e "tc" -e "# align right" \ + -e "}" \ + -e "/^- '[^']*':( |$$)/ {" \ + -e "h" -e "# save the matched line to the hold space" \ + -e "s/^- '([^']{3,})':.*/ \*\1\*/" -e "# make command reference" \ + -e "s/^- '([^']{1,2})':.*/ \*vim-markdown-\1\*/" -e "# short command" \ + -e ":a" -e "s/^(.{1,78})$$/ \1/" -e "ta" -e "# align right" \ + -e "G" -e "# append the matched line after the command reference" \ + -e "}" \ + -e "/^- 'g:vim_markdown_[[:alnum:]_]*'$$/ {" \ + -e "h" -e "# save the matched line to the hold space" \ + -e "s/^- '([^']*)'$$/ \*\1\*/" -e "# make global variable reference" \ + -e ":g" -e "s/^(.{1,78})$$/ \1/" -e "tg" -e "# align right" \ + -e "G" -e "# append the matched line after the global variable reference" \ + -e "}" > doc/vim-markdown.txt && rm -f doc/tmp.md + +.PHONY: doc + +# Prerequire Python and virtualenv. +# $ sudo pip install virtualenv +# Create the virtual environment. +# Install the dependencies. +build/html2vimdoc: | build + virtualenv build/html2vimdoc + build/html2vimdoc/bin/pip install beautifulsoup coloredlogs==4.0 markdown + +build/vim-tools: | build + git clone https://github.com/xolox/vim-tools.git build/vim-tools diff --git a/.vim/bundle/vim-markdown/README.md b/.vim/bundle/vim-markdown/README.md new file mode 100644 index 0000000..fd3be68 --- /dev/null +++ b/.vim/bundle/vim-markdown/README.md @@ -0,0 +1,454 @@ +# Vim Markdown + +[![Build Status](https://travis-ci.org/plasticboy/vim-markdown.svg)](https://travis-ci.org/plasticboy/vim-markdown) + +Syntax highlighting, matching rules and mappings for [the original Markdown](http://daringfireball.net/projects/markdown/) and extensions. + +1. [Installation](#installation) +1. [Basic usage](#basic-usage) +1. [Options](#options) +1. [Mappings](#mappings) +1. [Commands](#commands) +1. [Credits](#credits) +1. [License](#license) + +## Installation + +If you use [Vundle](https://github.com/gmarik/vundle), add the following lines to your `~/.vimrc`: + +```vim +Plugin 'godlygeek/tabular' +Plugin 'plasticboy/vim-markdown' +``` + +The `tabular` plugin must come *before* `vim-markdown`. + +Then run inside Vim: + +```vim +:so ~/.vimrc +:PluginInstall +``` + +If you use [Pathogen](https://github.com/tpope/vim-pathogen), do this: + +```sh +cd ~/.vim/bundle +git clone https://github.com/plasticboy/vim-markdown.git +``` + +To install without Pathogen using the Debian [vim-addon-manager](http://packages.qa.debian.org/v/vim-addon-manager.html), do this: + +```sh +git clone https://github.com/plasticboy/vim-markdown.git +cd vim-markdown +sudo make install +vim-addon-manager install markdown +``` + +If you are not using any package manager, download the [tarball](https://github.com/plasticboy/vim-markdown/archive/master.tar.gz) and do this: + +```sh +cd ~/.vim +tar --strip=1 -zxf vim-markdown-master.tar.gz +``` + +## Basic usage + +### Folding + +Folding is enabled for headers by default. + +The following commands are useful to open and close folds: + +- `zr`: reduces fold level throughout the buffer +- `zR`: opens all folds +- `zm`: increases fold level throughout the buffer +- `zM`: folds everything all the way +- `za`: open a fold your cursor is on +- `zA`: open a fold your cursor is on recursively +- `zc`: close a fold your cursor is on +- `zC`: close a fold your cursor is on recursively + +[Options](#options) are available to disable folding or change folding style. + +Try `:help fold-expr` and `:help fold-commands` for details. + +### Concealing + +Concealing is set for some syntax such as bold, italic, code block and link. + +Concealing lets you conceal text with other text. The actual source text is not modified. If you put your cursor on the concealed line, the conceal goes away. + +[Options](#options) are available to disable or change concealing. + +Try `:help concealcursor` and `:help conceallevel` for details. + +## Options + +### Disable Folding + +- `g:vim_markdown_folding_disabled` + + Add the following line to your `.vimrc` to disable the folding configuration: + + let g:vim_markdown_folding_disabled = 1 + + This option only controls Vim Markdown specific folding configuration. + + To enable/disable folding use Vim's standard folding configuration. + + set [no]foldenable + +### Change fold style + +- `g:vim_markdown_folding_style_pythonic` + + To fold in a style like [python-mode](https://github.com/klen/python-mode), add the following to your `.vimrc`: + + let g:vim_markdown_folding_style_pythonic = 1 + + `g:vim_markdown_folding_level` setting (default 1) is set to `foldlevel`. + Thus level 1 heading which is served as a document title is expanded by default. + +- `g:vim_markdown_override_foldtext` + + To prevent foldtext from being set add the following to your `.vimrc`: + + let g:vim_markdown_override_foldtext = 0 + +### Set header folding level + +- `g:vim_markdown_folding_level` + + Folding level is a number between 1 and 6. By default, if not specified, it is set to 1. + + let g:vim_markdown_folding_level = 6 + + Tip: it can be changed on the fly with: + + :let g:vim_markdown_folding_level = 1 + :edit + +### Disable Default Key Mappings + +- `g:vim_markdown_no_default_key_mappings` + + Add the following line to your `.vimrc` to disable default key mappings: + + let g:vim_markdown_no_default_key_mappings = 1 + + You can also map them by yourself with `` mappings. + +### Enable TOC window auto-fit + +- `g:vim_markdown_toc_autofit` + + Allow for the TOC window to auto-fit when it's possible for it to shrink. + It never increases its default size (half screen), it only shrinks. + + let g:vim_markdown_toc_autofit = 1 + +### Text emphasis restriction to single-lines + +- `g:vim_markdown_emphasis_multiline` + + By default text emphasis works across multiple lines until a closing token is found. However, it's possible to restrict text emphasis to a single line (i.e., for it to be applied a closing token must be found on the same line). To do so: + + let g:vim_markdown_emphasis_multiline = 0 + +### Syntax Concealing + +- `g:vim_markdown_conceal` + + Concealing is set for some syntax. + + For example, conceal `[link text](link url)` as just `link text`. + Also, `_italic_` and `*italic*` will conceal to just _italic_. + Similarly `__bold__`, `**bold**`, `___italic bold___`, and `***italic bold***` + will conceal to just __bold__, **bold**, ___italic bold___, and ***italic bold*** respectively. + + To enable conceal use Vim's standard conceal configuration. + + set conceallevel=2 + + To disable conceal regardless of `conceallevel` setting, add the following to your `.vimrc`: + + let g:vim_markdown_conceal = 0 + + To disable math conceal with LaTeX math syntax enabled, add the following to your `.vimrc`: + + let g:tex_conceal = "" + let g:vim_markdown_math = 1 + +- `g:vim_markdown_conceal_code_blocks` + + Disabling conceal for code fences requires an additional setting: + + let g:vim_markdown_conceal_code_blocks = 0 + +### Fenced code block languages + +- `g:vim_markdown_fenced_languages` + + You can use filetype name as fenced code block languages for syntax highlighting. + If you want to use different name from filetype, you can add it in your `.vimrc` like so: + + let g:vim_markdown_fenced_languages = ['csharp=cs'] + + This will cause the following to be highlighted using the `cs` filetype syntax. + + ```csharp + ... + ``` + + Default is `['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini']`. + +### Follow named anchors + +- `g:vim_markdown_follow_anchor` + + This feature allows the `ge` command to follow named anchors in links of the form + `file#anchor` or just `#anchor`, where file may omit the `.md` extension as + usual. Two variables control its operation: + + let g:vim_markdown_follow_anchor = 1 + + This tells vim-markdown whether to attempt to follow a named anchor in a link or + not. When it is 1, and only if a link can be split in two parts by the pattern + '#', then the first part is interpreted as the file and the second one as the + named anchor. This also includes urls of the form `#anchor`, for which the first + part is considered empty, meaning that the target file is the current one. After + the file is opened, the anchor will be searched. + + Default is `0`. + +- `g:vim_markdown_anchorexpr` + + let g:vim_markdown_anchorexpr = "'<<'.v:anchor.'>>'" + + This expression will be evaluated substituting `v:anchor` with a quoted string + that contains the anchor to visit. The result of the evaluation will become the + real anchor to search in the target file. This is useful in order to convert + anchors of the form, say, `my-section-title` to searches of the form `My Section + Title` or `<>`. + + Default is `''`. + +### Syntax extensions + +The following options control which syntax extensions will be turned on. They are off by default. + +#### LaTeX math + +- `g:vim_markdown_math` + + Used as `$x^2$`, `$$x^2$$`, escapable as `\$x\$` and `\$\$x\$\$`. + + let g:vim_markdown_math = 1 + +#### YAML Front Matter + +- `g:vim_markdown_frontmatter` + + Highlight YAML front matter as used by Jekyll or [Hugo](https://gohugo.io/content/front-matter/). + + let g:vim_markdown_frontmatter = 1 + +#### TOML Front Matter + +- `g:vim_markdown_toml_frontmatter` + + Highlight TOML front matter as used by [Hugo](https://gohugo.io/content/front-matter/). + + TOML syntax highlight requires [vim-toml](https://github.com/cespare/vim-toml). + + let g:vim_markdown_toml_frontmatter = 1 + +#### JSON Front Matter + +- `g:vim_markdown_json_frontmatter` + + Highlight JSON front matter as used by [Hugo](https://gohugo.io/content/front-matter/). + + JSON syntax highlight requires [vim-json](https://github.com/elzr/vim-json). + + let g:vim_markdown_json_frontmatter = 1 + +#### Strikethrough + +- `g:vim_markdown_strikethrough` + + Strikethrough uses two tildes. `~~Scratch this.~~` + + let g:vim_markdown_strikethrough = 1 + +### Adjust new list item indent + +- `g:vim_markdown_new_list_item_indent` + + You can adjust a new list indent. For example, you insert a single line like below: + + * item1 + + Then if you type `o` to insert new line in vim and type `* item2`, the result will be: + + * item1 + * item2 + + vim-markdown automatically insert the indent. By default, the number of spaces of indent is 4. If you'd like to change the number as 2, just write: + + let g:vim_markdown_new_list_item_indent = 2 + +### Do not require .md extensions for Markdown links + +- `g:vim_markdown_no_extensions_in_markdown` + + If you want to have a link like this `[link text](link-url)` and follow it for editing in vim using the `ge` command, but have it open the file "link-url.md" instead of the file "link-url", then use this option: + + let g:vim_markdown_no_extensions_in_markdown = 1 + + This is super useful for GitLab and GitHub wiki repositories. + + Normal behaviour would be that vim-markup required you to do this `[link text](link-url.md)`, but this is not how the Gitlab and GitHub wiki repositories work. So this option adds some consistency between the two. + +### Auto-write when following link + +- `g:vim_markdown_autowrite` + + If you follow a link like this `[link text](link-url)` using the `ge` shortcut, this option will automatically save any edits you made before moving you: + + let g:vim_markdown_autowrite = 1 + +### Change default file extension + +- `g:vim_markdown_auto_extension_ext` + + If you would like to use a file extension other than `.md` you may do so using the `vim_markdown_auto_extension_ext` variable: + + let g:vim_markdown_auto_extension_ext = 'txt' + +### Do not automatically insert bulletpoints + +- `g:vim_markdown_auto_insert_bullets` + + Automatically inserting bulletpoints can lead to problems when wrapping text + (see issue #232 for details), so it can be disabled: + + let g:vim_markdown_auto_insert_bullets = 0 + + In that case, you probably also want to set the new list item indent to 0 as + well, or you will have to remove an indent each time you add a new list item: + + let g:vim_markdown_new_list_item_indent = 0 + +### Change how to open new files + +- `g:vim_markdown_edit_url_in` + + By default when following a link the target file will be opened in your current buffer. This behavior can change if you prefer using splits or tabs by using the `vim_markdown_edit_url_in` variable. Possible values are `tab`, `vsplit`, `hsplit`, `current` opening in a new tab, vertical split, horizontal split, and current buffer respectively. Defaults to current buffer if not set: + + let g:vim_markdown_edit_url_in = 'tab' + +## Mappings + +The following work on normal and visual modes: + +- `gx`: open the link under the cursor in the same browser as the standard `gx` command. `Markdown_OpenUrlUnderCursor` + + The standard `gx` is extended by allowing you to put your cursor anywhere inside a link. + + For example, all the following cursor positions will work: + + [Example](http://example.com) + ^ ^ ^^ ^ ^ + 1 2 34 5 6 + + + ^ ^ ^ + 1 2 3 + + Known limitation: does not work for links that span multiple lines. + +- `ge`: open the link under the cursor in Vim for editing. Useful for relative markdown links. `Markdown_EditUrlUnderCursor` + + The rules for the cursor position are the same as the `gx` command. + +- `]]`: go to next header. `Markdown_MoveToNextHeader` + +- `[[`: go to previous header. Contrast with `]c`. `Markdown_MoveToPreviousHeader` + +- `][`: go to next sibling header if any. `Markdown_MoveToNextSiblingHeader` + +- `[]`: go to previous sibling header if any. `Markdown_MoveToPreviousSiblingHeader` + +- `]c`: go to Current header. `Markdown_MoveToCurHeader` + +- `]u`: go to parent header (Up). `Markdown_MoveToParentHeader` + +This plugin follows the recommended Vim plugin mapping interface, so to change the map `]u` to `asdf`, add to your `.vimrc`: + + map asdf Markdown_MoveToParentHeader + +To disable a map use: + + map Markdown_MoveToParentHeader + +## Commands + +The following requires `:filetype plugin on`. + +- `:HeaderDecrease`: + + Decrease level of all headers in buffer: `h2` to `h1`, `h3` to `h2`, etc. + + If range is given, only operate in the range. + + If an `h1` would be decreased, abort. + + For simplicity of implementation, Setex headers are converted to Atx. + +- `:HeaderIncrease`: Analogous to `:HeaderDecrease`, but increase levels instead. + +- `:SetexToAtx`: + + Convert all Setex style headers in buffer to Atx. + + If a range is given, e.g. hit `:` from visual mode, only operate on the range. + +- `:TableFormat`: Format the table under the cursor [like this](http://www.cirosantilli.com/markdown-style-guide/#tables). + + Requires [Tabular](https://github.com/godlygeek/tabular). + + The input table *must* already have a separator line as the second line of the table. + That line only needs to contain the correct pipes `|`, nothing else is required. + +- `:Toc`: create a quickfix vertical window navigable table of contents with the headers. + + Hit `` on a line to jump to the corresponding line of the markdown file. + +- `:Toch`: Same as `:Toc` but in an horizontal window. + +- `:Toct`: Same as `:Toc` but in a new tab. + +- `:Tocv`: Same as `:Toc` for symmetry with `:Toch` and `:Tocv`. + +## Credits + +The main contributors of vim-markdown are: + +- **Ben Williams** (A.K.A. **plasticboy**). The original developer of vim-markdown. [Homepage](http://plasticboy.com/). + +If you feel that your name should be on this list, please make a pull request listing your contributions. + +## License + +The MIT License (MIT) + +Copyright (c) 2012 Benjamin D. Williams + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/.vim/bundle/vim-markdown/after/ftplugin/markdown.vim b/.vim/bundle/vim-markdown/after/ftplugin/markdown.vim new file mode 100644 index 0000000..8be6ff9 --- /dev/null +++ b/.vim/bundle/vim-markdown/after/ftplugin/markdown.vim @@ -0,0 +1,201 @@ +" vim: ts=4 sw=4: +" folding for Markdown headers, both styles (atx- and setex-) +" http://daringfireball.net/projects/markdown/syntax#header +" +" this code can be placed in file +" $HOME/.vim/after/ftplugin/markdown.vim +" +" original version from Steve Losh's gist: https://gist.github.com/1038710 + +function! s:is_mkdCode(lnum) + let name = synIDattr(synID(a:lnum, 1, 0), 'name') + return (name =~ '^mkd\%(Code$\|Snippet\)' || name != '' && name !~ '^\%(mkd\|html\)') +endfunction + +if get(g:, "vim_markdown_folding_style_pythonic", 0) + function! Foldexpr_markdown(lnum) + let l1 = getline(a:lnum) + "~~~~~ keep track of fenced code blocks ~~~~~ + "If we hit a code block fence + if l1 =~ '````*' || l1 =~ '\~\~\~\~*' + " toggle the variable that says if we're in a code block + if b:fenced_block == 0 + let b:fenced_block = 1 + elseif b:fenced_block == 1 + let b:fenced_block = 0 + endif + " else, if we're caring about front matter + elseif g:vim_markdown_frontmatter == 1 + " if we're in front matter and not on line 1 + if b:front_matter == 1 && a:lnum > 2 + let l0 = getline(a:lnum-1) + " if the previous line fenced front matter + if l0 == '---' + " we must not be in front matter + let b:front_matter = 0 + endif + " else, if we're on line one + elseif a:lnum == 1 + " if we hit a front matter fence + if l1 == '---' + " we're in the front matter + let b:front_matter = 1 + endif + endif + endif + + " if we're in a code block or front matter + if b:fenced_block == 1 || b:front_matter == 1 + if a:lnum == 1 + " fold any 'preamble' + return '>1' + else + " keep previous foldlevel + return '=' + endif + endif + + let l2 = getline(a:lnum+1) + " if the next line starts with two or more '=' + " and is not code + if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1) + " next line is underlined (level 1) + return '>0' + " else, if the nex line starts with two or more '-' + " and is not code + elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1) + " next line is underlined (level 2) + return '>1' + endif + + "if we're on a non-code line starting with a pound sign + if l1 =~ '^#' && !s:is_mkdCode(a:lnum) + " set the fold level to the number of hashes -1 + " return '>'.(matchend(l1, '^#\+') - 1) + " set the fold level to the number of hashes + return '>'.(matchend(l1, '^#\+')) + " else, if we're on line 1 + elseif a:lnum == 1 + " fold any 'preamble' + return '>1' + else + " keep previous foldlevel + return '=' + endif + endfunction + + function! Foldtext_markdown() + let line = getline(v:foldstart) + let has_numbers = &number || &relativenumber + let nucolwidth = &fdc + has_numbers * &numberwidth + let windowwidth = winwidth(0) - nucolwidth - 6 + let foldedlinecount = v:foldend - v:foldstart + let line = strpart(line, 0, windowwidth - 2 -len(foldedlinecount)) + let line = substitute(line, '\%("""\|''''''\)', '', '') + let fillcharcount = windowwidth - len(line) - len(foldedlinecount) + 1 + return line . ' ' . repeat("-", fillcharcount) . ' ' . foldedlinecount + endfunction +else " vim_markdown_folding_style_pythonic == 0 + function! Foldexpr_markdown(lnum) + if (a:lnum == 1) + let l0 = '' + else + let l0 = getline(a:lnum-1) + endif + + " keep track of fenced code blocks + if l0 =~ '````*' || l0 =~ '\~\~\~\~*' + if b:fenced_block == 0 + let b:fenced_block = 1 + elseif b:fenced_block == 1 + let b:fenced_block = 0 + endif + elseif g:vim_markdown_frontmatter == 1 + if b:front_matter == 1 + if l0 == '---' + let b:front_matter = 0 + endif + elseif a:lnum == 2 + if l0 == '---' + let b:front_matter = 1 + endif + endif + endif + + if b:fenced_block == 1 || b:front_matter == 1 + " keep previous foldlevel + return '=' + endif + + let l2 = getline(a:lnum+1) + if l2 =~ '^==\+\s*' && !s:is_mkdCode(a:lnum+1) + " next line is underlined (level 1) + return '>1' + elseif l2 =~ '^--\+\s*' && !s:is_mkdCode(a:lnum+1) + " next line is underlined (level 2) + if s:vim_markdown_folding_level >= 2 + return '>1' + else + return '>2' + endif + endif + + let l1 = getline(a:lnum) + if l1 =~ '^#' && !s:is_mkdCode(a:lnum) + " fold level according to option + if s:vim_markdown_folding_level == 1 || matchend(l1, '^#\+') > s:vim_markdown_folding_level + if a:lnum == line('$') + return matchend(l1, '^#\+') - 1 + else + return -1 + endif + else + " headers are not folded + return 0 + endif + endif + + if l0 =~ '^#' && !s:is_mkdCode(a:lnum-1) + " previous line starts with hashes + return '>'.matchend(l0, '^#\+') + else + " keep previous foldlevel + return '=' + endif + endfunction +endif + + +let b:fenced_block = 0 +let b:front_matter = 0 +let s:vim_markdown_folding_level = get(g:, "vim_markdown_folding_level", 1) + +function! s:MarkdownSetupFolding() + if !get(g:, "vim_markdown_folding_disabled", 0) + if get(g:, "vim_markdown_folding_style_pythonic", 0) + if get(g:, "vim_markdown_override_foldtext", 1) + setlocal foldtext=Foldtext_markdown() + endif + endif + setlocal foldexpr=Foldexpr_markdown(v:lnum) + setlocal foldmethod=expr + endif +endfunction + +function! s:MarkdownSetupFoldLevel() + if get(g:, "vim_markdown_folding_style_pythonic", 0) + " set default foldlevel + execute "setlocal foldlevel=".s:vim_markdown_folding_level + endif +endfunction + +call s:MarkdownSetupFoldLevel() +call s:MarkdownSetupFolding() + +augroup Mkd + " These autocmds need to be kept in sync with the autocmds calling + " s:MarkdownRefreshSyntax in ftplugin/markdown.vim. + autocmd BufWinEnter,BufWritePost call s:MarkdownSetupFolding() + autocmd InsertEnter,InsertLeave call s:MarkdownSetupFolding() + autocmd CursorHold,CursorHoldI call s:MarkdownSetupFolding() +augroup END diff --git a/.vim/bundle/vim-markdown/doc/vim-markdown.txt b/.vim/bundle/vim-markdown/doc/vim-markdown.txt new file mode 100644 index 0000000..4d73129 --- /dev/null +++ b/.vim/bundle/vim-markdown/doc/vim-markdown.txt @@ -0,0 +1,663 @@ +*vim-markdown* Vim Markdown + +=============================================================================== +Contents ~ + + 1. Introduction |vim-markdown-introduction| + 2. Installation |vim-markdown-installation| + 3. Basic usage |vim-markdown-basic-usage| + 1. Folding |vim-markdown-folding| + 2. Concealing |vim-markdown-concealing| + 4. Options |vim-markdown-options| + 1. Disable Folding |vim-markdown-disable-folding| + 2. Change fold style |vim-markdown-change-fold-style| + 3. Set header folding level |vim-markdown-set-header-folding-level| + 4. Disable Default Key Mappings |vim-markdown-disable-default-key-mappings| + 5. Enable TOC window auto-fit |vim-markdown-enable-toc-window-auto-fit| + 6. Text emphasis restriction to single-lines + |vim-markdown-text-emphasis-restriction-to-single-lines| + 7. Syntax Concealing |vim-markdown-syntax-concealing| + 8. Fenced code block languages |vim-markdown-fenced-code-block-languages| + 9. Follow named anchors |vim-markdown-follow-named-anchors| + 10. Syntax extensions |vim-markdown-syntax-extensions| + 1. LaTeX math |vim-markdown-latex-math| + 2. YAML Front Matter |vim-markdown-yaml-front-matter| + 3. TOML Front Matter |vim-markdown-toml-front-matter| + 4. JSON Front Matter |vim-markdown-json-front-matter| + 5. Strikethrough |vim-markdown-strikethrough| + 11. Adjust new list item indent |vim-markdown-adjust-new-list-item-indent| + 12. Do not require .md extensions for Markdown links + |vim-markdown-do-not-require-.md-extensions-for-markdown-links| + 13. Auto-write when following link + |vim-markdown-auto-write-when-following-link| + 14. Change default file extension + |vim-markdown-change-default-file-extension| + 15. Do not automatically insert bulletpoints + |vim-markdown-do-not-automatically-insert-bulletpoints| + 16. Change how to open new files |vim-markdown-change-how-to-open-new-files| + 5. Mappings |vim-markdown-mappings| + 6. Commands |vim-markdown-commands| + 7. Credits |vim-markdown-credits| + 8. License |vim-markdown-license| + 9. References |vim-markdown-references| + +=============================================================================== + *vim-markdown-introduction* +Introduction ~ + +Syntax highlighting, matching rules and mappings for the original Markdown [1] +and extensions. + +=============================================================================== + *vim-markdown-installation* +Installation ~ + +If you use Vundle [2], add the following lines to your '~/.vimrc': +> + Plugin 'godlygeek/tabular' + Plugin 'plasticboy/vim-markdown' +< +The 'tabular' plugin must come _before_ 'vim-markdown'. + +Then run inside Vim: +> + :so ~/.vimrc + :PluginInstall +< +If you use Pathogen [3], do this: +> + cd ~/.vim/bundle + git clone https://github.com/plasticboy/vim-markdown.git +< +To install without Pathogen using the Debian vim-addon-manager [4], do this: +> + git clone https://github.com/plasticboy/vim-markdown.git + cd vim-markdown + sudo make install + vim-addon-manager install markdown +< +If you are not using any package manager, download the tarball [5] and do this: +> + cd ~/.vim + tar --strip=1 -zxf vim-markdown-master.tar.gz +< +=============================================================================== + *vim-markdown-basic-usage* +Basic usage ~ + +------------------------------------------------------------------------------- + *vim-markdown-folding* +Folding ~ + +Folding is enabled for headers by default. + +The following commands are useful to open and close folds: + + *vim-markdown-zr* +- 'zr': reduces fold level throughout the buffer + *vim-markdown-zR* +- 'zR': opens all folds + *vim-markdown-zm* +- 'zm': increases fold level throughout the buffer + *vim-markdown-zM* +- 'zM': folds everything all the way + *vim-markdown-za* +- 'za': open a fold your cursor is on + *vim-markdown-zA* +- 'zA': open a fold your cursor is on recursively + *vim-markdown-zc* +- 'zc': close a fold your cursor is on + *vim-markdown-zC* +- 'zC': close a fold your cursor is on recursively + +Options are available to disable folding or change folding style. + +Try ':help fold-expr' and ':help fold-commands' for details. + +------------------------------------------------------------------------------- + *vim-markdown-concealing* +Concealing ~ + +Concealing is set for some syntax such as bold, italic, code block and link. + +Concealing lets you conceal text with other text. The actual source text is not +modified. If you put your cursor on the concealed line, the conceal goes away. + +Options are available to disable or change concealing. + +Try ':help concealcursor' and ':help conceallevel' for details. + +=============================================================================== + *vim-markdown-options* +Options ~ + +------------------------------------------------------------------------------- + *vim-markdown-disable-folding* +Disable Folding ~ + + *g:vim_markdown_folding_disabled* +- 'g:vim_markdown_folding_disabled' + + Add the following line to your '.vimrc' to disable the folding + configuration: +> + let g:vim_markdown_folding_disabled = 1 +< + This option only controls Vim Markdown specific folding configuration. + + To enable/disable folding use Vim's standard folding configuration. +> + set [no]foldenable +< +------------------------------------------------------------------------------- + *vim-markdown-change-fold-style* +Change fold style ~ + + *g:vim_markdown_folding_style_pythonic* +- 'g:vim_markdown_folding_style_pythonic' + + To fold in a style like python-mode [6], add the following to your + '.vimrc': +> + let g:vim_markdown_folding_style_pythonic = 1 +< + 'g:vim_markdown_folding_level' setting (default 1) is set to 'foldlevel'. + Thus level 1 heading which is served as a document title is expanded by + default. + + *g:vim_markdown_override_foldtext* +- 'g:vim_markdown_override_foldtext' + + To prevent foldtext from being set add the following to your '.vimrc': +> + let g:vim_markdown_override_foldtext = 0 +< +------------------------------------------------------------------------------- + *vim-markdown-set-header-folding-level* +Set header folding level ~ + + *g:vim_markdown_folding_level* +- 'g:vim_markdown_folding_level' + + Folding level is a number between 1 and 6. By default, if not specified, it + is set to 1. +> + let g:vim_markdown_folding_level = 6 +< + Tip: it can be changed on the fly with: +> + :let g:vim_markdown_folding_level = 1 + :edit +< +------------------------------------------------------------------------------- + *vim-markdown-disable-default-key-mappings* +Disable Default Key Mappings ~ + + *g:vim_markdown_no_default_key_mappings* +- 'g:vim_markdown_no_default_key_mappings' + + Add the following line to your '.vimrc' to disable default key mappings: +> + let g:vim_markdown_no_default_key_mappings = 1 +< + You can also map them by yourself with '' mappings. + +------------------------------------------------------------------------------- + *vim-markdown-enable-toc-window-auto-fit* +Enable TOC window auto-fit ~ + + *g:vim_markdown_toc_autofit* +- 'g:vim_markdown_toc_autofit' + + Allow for the TOC window to auto-fit when it's possible for it to shrink. + It never increases its default size (half screen), it only shrinks. +> + let g:vim_markdown_toc_autofit = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-text-emphasis-restriction-to-single-lines* +Text emphasis restriction to single-lines ~ + + *g:vim_markdown_emphasis_multiline* +- 'g:vim_markdown_emphasis_multiline' + + By default text emphasis works across multiple lines until a closing token + is found. However, it's possible to restrict text emphasis to a single line + (i.e., for it to be applied a closing token must be found on the same + line). To do so: +> + let g:vim_markdown_emphasis_multiline = 0 +< +------------------------------------------------------------------------------- + *vim-markdown-syntax-concealing* +Syntax Concealing ~ + + *g:vim_markdown_conceal* +- 'g:vim_markdown_conceal' + + Concealing is set for some syntax. + + For example, conceal '[link text](link url)' as just 'link text'. Also, + '_italic_' and '*italic*' will conceal to just _italic_. Similarly + '__bold__', '**bold**', '___italic bold___', and '***italic bold***' will + conceal to just **bold**, **bold**, **_italic bold_**, and **_italic + bold_** respectively. + + To enable conceal use Vim's standard conceal configuration. +> + set conceallevel=2 +< + To disable conceal regardless of 'conceallevel' setting, add the following + to your '.vimrc': +> + let g:vim_markdown_conceal = 0 +< + To disable math conceal with LaTeX math syntax enabled, add the following + to your '.vimrc': +> + let g:tex_conceal = "" + let g:vim_markdown_math = 1 +< + *g:vim_markdown_conceal_code_blocks* +- 'g:vim_markdown_conceal_code_blocks' + + Disabling conceal for code fences requires an additional setting: +> + let g:vim_markdown_conceal_code_blocks = 0 +< +------------------------------------------------------------------------------- + *vim-markdown-fenced-code-block-languages* +Fenced code block languages ~ + + *g:vim_markdown_fenced_languages* +- 'g:vim_markdown_fenced_languages' + + You can use filetype name as fenced code block languages for syntax + highlighting. If you want to use different name from filetype, you can add + it in your '.vimrc' like so: +> + let g:vim_markdown_fenced_languages = ['csharp=cs'] +< + This will cause the following to be highlighted using the 'cs' filetype + syntax. +> + ```csharp + ... + ``` +< + Default is "['c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini']". + +------------------------------------------------------------------------------- + *vim-markdown-follow-named-anchors* +Follow named anchors ~ + + *g:vim_markdown_follow_anchor* +- 'g:vim_markdown_follow_anchor' + + This feature allows the 'ge' command to follow named anchors in links of + the form 'file#anchor' or just '#anchor', where file may omit the '.md' + extension as usual. Two variables control its operation: +> + let g:vim_markdown_follow_anchor = 1 +< + This tells vim-markdown whether to attempt to follow a named anchor in a + link or not. When it is 1, and only if a link can be split in two parts by + the pattern '#', then the first part is interpreted as the file and the + second one as the named anchor. This also includes urls of the form + '#anchor', for which the first part is considered empty, meaning that the + target file is the current one. After the file is opened, the anchor will + be searched. + + Default is '0'. + + *g:vim_markdown_anchorexpr* +- 'g:vim_markdown_anchorexpr' +> + let g:vim_markdown_anchorexpr = "'<<'.v:anchor.'>>'" +< + This expression will be evaluated substituting 'v:anchor' with a quoted + string that contains the anchor to visit. The result of the evaluation will + become the real anchor to search in the target file. This is useful in + order to convert anchors of the form, say, 'my-section-title' to searches + of the form 'My Section Title' or '<>'. + + Default is "''". + +------------------------------------------------------------------------------- + *vim-markdown-syntax-extensions* +Syntax extensions ~ + +The following options control which syntax extensions will be turned on. They +are off by default. + +------------------------------------------------------------------------------- + *vim-markdown-latex-math* +LaTeX math ~ + + *g:vim_markdown_math* +- 'g:vim_markdown_math' + + Used as '$x^2$', '$$x^2$$', escapable as '\$x\$' and '\$\$x\$\$'. +> + let g:vim_markdown_math = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-yaml-front-matter* +YAML Front Matter ~ + + *g:vim_markdown_frontmatter* +- 'g:vim_markdown_frontmatter' + + Highlight YAML front matter as used by Jekyll or Hugo [7]. +> + let g:vim_markdown_frontmatter = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-toml-front-matter* +TOML Front Matter ~ + + *g:vim_markdown_toml_frontmatter* +- 'g:vim_markdown_toml_frontmatter' + + Highlight TOML front matter as used by Hugo [7]. + + TOML syntax highlight requires vim-toml [8]. +> + let g:vim_markdown_toml_frontmatter = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-json-front-matter* +JSON Front Matter ~ + + *g:vim_markdown_json_frontmatter* +- 'g:vim_markdown_json_frontmatter' + + Highlight JSON front matter as used by Hugo [7]. + + JSON syntax highlight requires vim-json [9]. +> + let g:vim_markdown_json_frontmatter = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-strikethrough* +Strikethrough ~ + + *g:vim_markdown_strikethrough* +- 'g:vim_markdown_strikethrough' + + Strikethrough uses two tildes. '~~Scratch this.~~' +> + let g:vim_markdown_strikethrough = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-adjust-new-list-item-indent* +Adjust new list item indent ~ + + *g:vim_markdown_new_list_item_indent* +- 'g:vim_markdown_new_list_item_indent' + + You can adjust a new list indent. For example, you insert a single line + like below: +> + * item1 +< + Then if you type 'o' to insert new line in vim and type '* item2', the + result will be: +> + * item1 + * item2 +< + vim-markdown automatically insert the indent. By default, the number of + spaces of indent is 4. If you'd like to change the number as 2, just write: +> + let g:vim_markdown_new_list_item_indent = 2 +< +------------------------------------------------------------------------------- + *vim-markdown-do-not-require-.md-extensions-for-markdown-links* +Do not require .md extensions for Markdown links ~ + + *g:vim_markdown_no_extensions_in_markdown* +- 'g:vim_markdown_no_extensions_in_markdown' + + If you want to have a link like this '[link text](link-url)' and follow it + for editing in vim using the 'ge' command, but have it open the file "link- + url.md" instead of the file "link-url", then use this option: +> + let g:vim_markdown_no_extensions_in_markdown = 1 +< + This is super useful for GitLab and GitHub wiki repositories. + + Normal behaviour would be that vim-markup required you to do this '[link + text](link-url.md)', but this is not how the Gitlab and GitHub wiki + repositories work. So this option adds some consistency between the two. + +------------------------------------------------------------------------------- + *vim-markdown-auto-write-when-following-link* +Auto-write when following link ~ + + *g:vim_markdown_autowrite* +- 'g:vim_markdown_autowrite' + + If you follow a link like this '[link text](link-url)' using the 'ge' + shortcut, this option will automatically save any edits you made before + moving you: +> + let g:vim_markdown_autowrite = 1 +< +------------------------------------------------------------------------------- + *vim-markdown-change-default-file-extension* +Change default file extension ~ + + *g:vim_markdown_auto_extension_ext* +- 'g:vim_markdown_auto_extension_ext' + + If you would like to use a file extension other than '.md' you may do so + using the 'vim_markdown_auto_extension_ext' variable: +> + let g:vim_markdown_auto_extension_ext = 'txt' +< +------------------------------------------------------------------------------- + *vim-markdown-do-not-automatically-insert-bulletpoints* +Do not automatically insert bulletpoints ~ + + *g:vim_markdown_auto_insert_bullets* +- 'g:vim_markdown_auto_insert_bullets' + + Automatically inserting bulletpoints can lead to problems when wrapping + text (see issue #232 for details), so it can be disabled: +> + let g:vim_markdown_auto_insert_bullets = 0 +< + In that case, you probably also want to set the new list item indent to 0 + as well, or you will have to remove an indent each time you add a new list + item: +> + let g:vim_markdown_new_list_item_indent = 0 +< +------------------------------------------------------------------------------- + *vim-markdown-change-how-to-open-new-files* +Change how to open new files ~ + + *g:vim_markdown_edit_url_in* +- 'g:vim_markdown_edit_url_in' + + By default when following a link the target file will be opened in your + current buffer. This behavior can change if you prefer using splits or tabs + by using the 'vim_markdown_edit_url_in' variable. Possible values are + 'tab', 'vsplit', 'hsplit', 'current' opening in a new tab, vertical split, + horizontal split, and current buffer respectively. Defaults to current + buffer if not set: +> + let g:vim_markdown_edit_url_in = 'tab' +< +=============================================================================== + *vim-markdown-mappings* +Mappings ~ + +The following work on normal and visual modes: + + *vim-markdown-gx* +- 'gx': open the link under the cursor in the same browser as the standard + 'gx' command. 'Markdown_OpenUrlUnderCursor' + + The standard 'gx' is extended by allowing you to put your cursor anywhere + inside a link. + + For example, all the following cursor positions will work: +> + [Example](http://example.com) + ^ ^ ^^ ^ ^ + 1 2 34 5 6 + + + ^ ^ ^ + 1 2 3 +< + Known limitation: does not work for links that span multiple lines. + + *vim-markdown-ge* +- 'ge': open the link under the cursor in Vim for editing. Useful for + relative markdown links. 'Markdown_EditUrlUnderCursor' + + The rules for the cursor position are the same as the 'gx' command. + + *vim-markdown-]]* +- ']]': go to next header. 'Markdown_MoveToNextHeader' + + *vim-markdown-[[* +- '[[': go to previous header. Contrast with ']c'. + 'Markdown_MoveToPreviousHeader' + + *vim-markdown-][* +- '][': go to next sibling header if any. + 'Markdown_MoveToNextSiblingHeader' + + *vim-markdown-[]* +- '[]': go to previous sibling header if any. + 'Markdown_MoveToPreviousSiblingHeader' + + *vim-markdown-]c* +- ']c': go to Current header. 'Markdown_MoveToCurHeader' + + *vim-markdown-]u* +- ']u': go to parent header (Up). 'Markdown_MoveToParentHeader' + +This plugin follows the recommended Vim plugin mapping interface, so to change +the map ']u' to 'asdf', add to your '.vimrc': +> + map asdf Markdown_MoveToParentHeader +< +To disable a map use: +> + map Markdown_MoveToParentHeader +< +=============================================================================== + *vim-markdown-commands* +Commands ~ + +The following requires ':filetype plugin on'. + + *:HeaderDecrease* +- ':HeaderDecrease': + + Decrease level of all headers in buffer: 'h2' to 'h1', 'h3' to 'h2', etc. + + If range is given, only operate in the range. + + If an 'h1' would be decreased, abort. + + For simplicity of implementation, Setex headers are converted to Atx. + + *:HeaderIncrease* +- ':HeaderIncrease': Analogous to ':HeaderDecrease', but increase levels + instead. + + *:SetexToAtx* +- ':SetexToAtx': + + Convert all Setex style headers in buffer to Atx. + + If a range is given, e.g. hit ':' from visual mode, only operate on the + range. + + *:TableFormat* +- ':TableFormat': Format the table under the cursor like this [10]. + + Requires Tabular [11]. + + The input table _must_ already have a separator line as the second line of + the table. That line only needs to contain the correct pipes '|', nothing + else is required. + + *:Toc* +- ':Toc': create a quickfix vertical window navigable table of contents with + the headers. + + Hit '' on a line to jump to the corresponding line of the markdown + file. + + *:Toch* +- ':Toch': Same as ':Toc' but in an horizontal window. + + *:Toct* +- ':Toct': Same as ':Toc' but in a new tab. + + *:Tocv* +- ':Tocv': Same as ':Toc' for symmetry with ':Toch' and ':Tocv'. + +=============================================================================== + *vim-markdown-credits* +Credits ~ + +The main contributors of vim-markdown are: + +- **Ben Williams** (A.K.A. **plasticboy**). The original developer of vim- + markdown. Homepage [12]. + +If you feel that your name should be on this list, please make a pull request +listing your contributions. + +=============================================================================== + *vim-markdown-license* +License ~ + +The MIT License (MIT) + +Copyright (c) 2012 Benjamin D. Williams + +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-markdown-references* +References ~ + +[1] http://daringfireball.net/projects/markdown/ +[2] https://github.com/gmarik/vundle +[3] https://github.com/tpope/vim-pathogen +[4] http://packages.qa.debian.org/v/vim-addon-manager.html +[5] https://github.com/plasticboy/vim-markdown/archive/master.tar.gz +[6] https://github.com/klen/python-mode +[7] https://gohugo.io/content/front-matter/ +[8] https://github.com/cespare/vim-toml +[9] https://github.com/elzr/vim-json +[10] http://www.cirosantilli.com/markdown-style-guide/#tables +[11] https://github.com/godlygeek/tabular +[12] http://plasticboy.com/ + +vim: ft=help diff --git a/.vim/bundle/vim-markdown/ftdetect/markdown.vim b/.vim/bundle/vim-markdown/ftdetect/markdown.vim new file mode 100644 index 0000000..07682da --- /dev/null +++ b/.vim/bundle/vim-markdown/ftdetect/markdown.vim @@ -0,0 +1,8 @@ +if !has('patch-7.4.480') + " Before this patch, vim used modula2 for .md. + au! filetypedetect BufRead,BufNewFile *.md +endif + +" markdown filetype file +au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} setfiletype markdown +au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn}.{des3,des,bf,bfa,aes,idea,cast,rc2,rc4,rc5,desx} setfiletype markdown diff --git a/.vim/bundle/vim-markdown/ftplugin/markdown.vim b/.vim/bundle/vim-markdown/ftplugin/markdown.vim new file mode 100644 index 0000000..200293e --- /dev/null +++ b/.vim/bundle/vim-markdown/ftplugin/markdown.vim @@ -0,0 +1,791 @@ +"TODO print messages when on visual mode. I only see VISUAL, not the messages. + +" Function interface phylosophy: +" +" - functions take arbitrary line numbers as parameters. +" Current cursor line is only a suitable default parameter. +" +" - only functions that bind directly to user actions: +" +" - print error messages. +" All intermediate functions limit themselves return `0` to indicate an error. +" +" - move the cursor. All other functions do not move the cursor. +" +" This is how you should view headers for the header mappings: +" +" |BUFFER +" | +" |Outside any header +" | +" a-+# a +" | +" |Inside a +" | +" a-+ +" b-+## b +" | +" |inside b +" | +" b-+ +" c-+### c +" | +" |Inside c +" | +" c-+ +" d-|# d +" | +" |Inside d +" | +" d-+ +" e-|e +" |==== +" | +" |Inside e +" | +" e-+ + +" For each level, contains the regexp that matches at that level only. +" +let s:levelRegexpDict = { + \ 1: '\v^(#[^#]@=|.+\n\=+$)', + \ 2: '\v^(##[^#]@=|.+\n-+$)', + \ 3: '\v^###[^#]@=', + \ 4: '\v^####[^#]@=', + \ 5: '\v^#####[^#]@=', + \ 6: '\v^######[^#]@=' +\ } + +" Maches any header level of any type. +" +" This could be deduced from `s:levelRegexpDict`, but it is more +" efficient to have a single regexp for this. +" +let s:headersRegexp = '\v^(#|.+\n(\=+|-+)$)' + +" Returns the line number of the first header before `line`, called the +" current header. +" +" If there is no current header, return `0`. +" +" @param a:1 The line to look the header of. Default value: `getpos('.')`. +" +function! s:GetHeaderLineNum(...) + if a:0 == 0 + let l:l = line('.') + else + let l:l = a:1 + endif + while(l:l > 0) + if join(getline(l:l, l:l + 1), "\n") =~ s:headersRegexp + return l:l + endif + let l:l -= 1 + endwhile + return 0 +endfunction + +" - if inside a header goes to it. +" Return its line number. +" +" - if on top level outside any headers, +" print a warning +" Return `0`. +" +function! s:MoveToCurHeader() + let l:lineNum = s:GetHeaderLineNum() + if l:lineNum != 0 + call cursor(l:lineNum, 1) + else + echo 'outside any header' + "normal! gg + endif + return l:lineNum +endfunction + +" Move cursor to next header of any level. +" +" If there are no more headers, print a warning. +" +function! s:MoveToNextHeader() + if search(s:headersRegexp, 'W') == 0 + "normal! G + echo 'no next header' + endif +endfunction + +" Move cursor to previous header (before current) of any level. +" +" If it does not exist, print a warning. +" +function! s:MoveToPreviousHeader() + let l:curHeaderLineNumber = s:GetHeaderLineNum() + let l:noPreviousHeader = 0 + if l:curHeaderLineNumber <= 1 + let l:noPreviousHeader = 1 + else + let l:previousHeaderLineNumber = s:GetHeaderLineNum(l:curHeaderLineNumber - 1) + if l:previousHeaderLineNumber == 0 + let l:noPreviousHeader = 1 + else + call cursor(l:previousHeaderLineNumber, 1) + endif + endif + if l:noPreviousHeader + echo 'no previous header' + endif +endfunction + +" - if line is inside a header, return the header level (h1 -> 1, h2 -> 2, etc.). +" +" - if line is at top level outside any headers, return `0`. +" +function! s:GetHeaderLevel(...) + if a:0 == 0 + let l:line = line('.') + else + let l:line = a:1 + endif + let l:linenum = s:GetHeaderLineNum(l:line) + if l:linenum != 0 + return s:GetLevelOfHeaderAtLine(l:linenum) + else + return 0 + endif +endfunction + +" Returns the level of the header at the given line. +" +" If there is no header at the given line, returns `0`. +" +function! s:GetLevelOfHeaderAtLine(linenum) + let l:lines = join(getline(a:linenum, a:linenum + 1), "\n") + for l:key in keys(s:levelRegexpDict) + if l:lines =~ get(s:levelRegexpDict, l:key) + return l:key + endif + endfor + return 0 +endfunction + +" Move cursor to parent header of the current header. +" +" If it does not exit, print a warning and do nothing. +" +function! s:MoveToParentHeader() + let l:linenum = s:GetParentHeaderLineNumber() + if l:linenum != 0 + call cursor(l:linenum, 1) + else + echo 'no parent header' + endif +endfunction + +" Return the line number of the parent header of line `line`. +" +" If it has no parent, return `0`. +" +function! s:GetParentHeaderLineNumber(...) + if a:0 == 0 + let l:line = line('.') + else + let l:line = a:1 + endif + let l:level = s:GetHeaderLevel(l:line) + if l:level > 1 + let l:linenum = s:GetPreviousHeaderLineNumberAtLevel(l:level - 1, l:line) + return l:linenum + endif + return 0 +endfunction + +" Return the line number of the previous header of given level. +" in relation to line `a:1`. If not given, `a:1 = getline()` +" +" `a:1` line is included, and this may return the current header. +" +" If none return 0. +" +function! s:GetNextHeaderLineNumberAtLevel(level, ...) + if a:0 < 1 + let l:line = line('.') + else + let l:line = a:1 + endif + let l:l = l:line + while(l:l <= line('$')) + if join(getline(l:l, l:l + 1), "\n") =~ get(s:levelRegexpDict, a:level) + return l:l + endif + let l:l += 1 + endwhile + return 0 +endfunction + +" Return the line number of the previous header of given level. +" in relation to line `a:1`. If not given, `a:1 = getline()` +" +" `a:1` line is included, and this may return the current header. +" +" If none return 0. +" +function! s:GetPreviousHeaderLineNumberAtLevel(level, ...) + if a:0 == 0 + let l:line = line('.') + else + let l:line = a:1 + endif + let l:l = l:line + while(l:l > 0) + if join(getline(l:l, l:l + 1), "\n") =~ get(s:levelRegexpDict, a:level) + return l:l + endif + let l:l -= 1 + endwhile + return 0 +endfunction + +" Move cursor to next sibling header. +" +" If there is no next siblings, print a warning and don't move. +" +function! s:MoveToNextSiblingHeader() + let l:curHeaderLineNumber = s:GetHeaderLineNum() + let l:curHeaderLevel = s:GetLevelOfHeaderAtLine(l:curHeaderLineNumber) + let l:curHeaderParentLineNumber = s:GetParentHeaderLineNumber() + let l:nextHeaderSameLevelLineNumber = s:GetNextHeaderLineNumberAtLevel(l:curHeaderLevel, l:curHeaderLineNumber + 1) + let l:noNextSibling = 0 + if l:nextHeaderSameLevelLineNumber == 0 + let l:noNextSibling = 1 + else + let l:nextHeaderSameLevelParentLineNumber = s:GetParentHeaderLineNumber(l:nextHeaderSameLevelLineNumber) + if l:curHeaderParentLineNumber == l:nextHeaderSameLevelParentLineNumber + call cursor(l:nextHeaderSameLevelLineNumber, 1) + else + let l:noNextSibling = 1 + endif + endif + if l:noNextSibling + echo 'no next sibling header' + endif +endfunction + +" Move cursor to previous sibling header. +" +" If there is no previous siblings, print a warning and do nothing. +" +function! s:MoveToPreviousSiblingHeader() + let l:curHeaderLineNumber = s:GetHeaderLineNum() + let l:curHeaderLevel = s:GetLevelOfHeaderAtLine(l:curHeaderLineNumber) + let l:curHeaderParentLineNumber = s:GetParentHeaderLineNumber() + let l:previousHeaderSameLevelLineNumber = s:GetPreviousHeaderLineNumberAtLevel(l:curHeaderLevel, l:curHeaderLineNumber - 1) + let l:noPreviousSibling = 0 + if l:previousHeaderSameLevelLineNumber == 0 + let l:noPreviousSibling = 1 + else + let l:previousHeaderSameLevelParentLineNumber = s:GetParentHeaderLineNumber(l:previousHeaderSameLevelLineNumber) + if l:curHeaderParentLineNumber == l:previousHeaderSameLevelParentLineNumber + call cursor(l:previousHeaderSameLevelLineNumber, 1) + else + let l:noPreviousSibling = 1 + endif + endif + if l:noPreviousSibling + echo 'no previous sibling header' + endif +endfunction + +function! s:Toc(...) + if a:0 > 0 + let l:window_type = a:1 + else + let l:window_type = 'vertical' + endif + + + let l:bufnr = bufnr('%') + let l:cursor_line = line('.') + let l:cursor_header = 0 + let l:fenced_block = 0 + let l:front_matter = 0 + let l:header_list = [] + let l:header_max_len = 0 + let l:vim_markdown_toc_autofit = get(g:, "vim_markdown_toc_autofit", 0) + let l:vim_markdown_frontmatter = get(g:, "vim_markdown_frontmatter", 0) + for i in range(1, line('$')) + let l:lineraw = getline(i) + let l:l1 = getline(i+1) + let l:line = substitute(l:lineraw, "#", "\\\#", "g") + if l:line =~ '````*' || l:line =~ '\~\~\~\~*' + if l:fenced_block == 0 + let l:fenced_block = 1 + elseif l:fenced_block == 1 + let l:fenced_block = 0 + endif + elseif l:vim_markdown_frontmatter == 1 + if l:front_matter == 1 + if l:line == '---' + let l:front_matter = 0 + endif + elseif i == 1 + if l:line == '---' + let l:front_matter = 1 + endif + endif + endif + if l:line =~ '^#\+' || (l:l1 =~ '^=\+\s*$' || l:l1 =~ '^-\+\s*$') && l:line =~ '^\S' + let l:is_header = 1 + else + let l:is_header = 0 + endif + if l:is_header == 1 && l:fenced_block == 0 && l:front_matter == 0 + " append line to location list + let l:item = {'lnum': i, 'text': l:line, 'valid': 1, 'bufnr': l:bufnr, 'col': 1} + let l:header_list = l:header_list + [l:item] + " set header number of the cursor position + if l:cursor_header == 0 + if i == l:cursor_line + let l:cursor_header = len(l:header_list) + elseif i > l:cursor_line + let l:cursor_header = len(l:header_list) - 1 + endif + endif + " keep track of the longest header size (heading level + title) + let l:total_len = stridx(l:line, ' ') + strdisplaywidth(l:line) + if l:total_len > l:header_max_len + let l:header_max_len = l:total_len + endif + endif + endfor + call setloclist(0, l:header_list) + if len(l:header_list) == 0 + echom "Toc: No headers." + return + endif + + if l:window_type ==# 'horizontal' + lopen + elseif l:window_type ==# 'vertical' + vertical lopen + " auto-fit toc window when possible to shrink it + if (&columns/2) > l:header_max_len && l:vim_markdown_toc_autofit == 1 + execute 'vertical resize ' . (l:header_max_len + 1) + else + execute 'vertical resize ' . (&columns/2) + endif + elseif l:window_type ==# 'tab' + tab lopen + else + lopen + endif + setlocal modifiable + for i in range(1, line('$')) + " this is the location-list data for the current item + let d = getloclist(0)[i-1] + " atx headers + if match(d.text, "^#") > -1 + let l:level = len(matchstr(d.text, '#*', 'g'))-1 + let d.text = substitute(d.text, '\v^#*[ ]*', '', '') + let d.text = substitute(d.text, '\v[ ]*#*$', '', '') + " setex headers + else + let l:next_line = getbufline(d.bufnr, d.lnum+1) + if match(l:next_line, "=") > -1 + let l:level = 0 + elseif match(l:next_line, "-") > -1 + let l:level = 1 + endif + endif + call setline(i, repeat(' ', l:level). d.text) + endfor + setlocal nomodified + setlocal nomodifiable + execute 'normal! ' . l:cursor_header . 'G' +endfunction + +" Convert Setex headers in range `line1 .. line2` to Atx. +" +" Return the number of conversions. +" +function! s:SetexToAtx(line1, line2) + let l:originalNumLines = line('$') + execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n\=+$/# \1/' + execute 'silent! ' . a:line1 . ',' . a:line2 . 'substitute/\v(.*\S.*)\n-+$/## \1/' + return l:originalNumLines - line('$') +endfunction + +" If `a:1` is 0, decrease the level of all headers in range `line1 .. line2`. +" +" Otherwise, increase the level. `a:1` defaults to `0`. +" +function! s:HeaderDecrease(line1, line2, ...) + if a:0 > 0 + let l:increase = a:1 + else + let l:increase = 0 + endif + if l:increase + let l:forbiddenLevel = 6 + let l:replaceLevels = [5, 1] + let l:levelDelta = 1 + else + let l:forbiddenLevel = 1 + let l:replaceLevels = [2, 6] + let l:levelDelta = -1 + endif + for l:line in range(a:line1, a:line2) + if join(getline(l:line, l:line + 1), "\n") =~ s:levelRegexpDict[l:forbiddenLevel] + echomsg 'There is an h' . l:forbiddenLevel . ' at line ' . l:line . '. Aborting.' + return + endif + endfor + let l:numSubstitutions = s:SetexToAtx(a:line1, a:line2) + let l:flags = (&gdefault ? '' : 'g') + for l:level in range(replaceLevels[0], replaceLevels[1], -l:levelDelta) + execute 'silent! ' . a:line1 . ',' . (a:line2 - l:numSubstitutions) . 'substitute/' . s:levelRegexpDict[l:level] . '/' . repeat('#', l:level + l:levelDelta) . '/' . l:flags + endfor +endfunction + +" Format table under cursor. +" +" Depends on Tabularize. +" +function! s:TableFormat() + let l:pos = getpos('.') + normal! { + " Search instead of `normal! j` because of the table at beginning of file edge case. + call search('|') + normal! j + " Remove everything that is not a pipe, colon or hyphen next to a colon othewise + " well formated tables would grow because of addition of 2 spaces on the separator + " line by Tabularize /|. + let l:flags = (&gdefault ? '' : 'g') + execute 's/\(:\@ ' . a:rhs . ' :call ' . a:lhs . '()' + execute 'vn ' . a:rhs . ' :call VisMove(''' . a:lhs . ''')' +endfunction + +" Parameters: +" +" - step +1 for right, -1 for left +" +" TODO: multiple lines. +" +function! s:FindCornerOfSyntax(lnum, col, step) + let l:col = a:col + let l:syn = synIDattr(synID(a:lnum, l:col, 1), 'name') + while synIDattr(synID(a:lnum, l:col, 1), 'name') ==# l:syn + let l:col += a:step + endwhile + return l:col - a:step +endfunction + +" Return the next position of the given syntax name, +" inclusive on the given position. +" +" TODO: multiple lines +" +function! s:FindNextSyntax(lnum, col, name) + let l:col = a:col + let l:step = 1 + while synIDattr(synID(a:lnum, l:col, 1), 'name') !=# a:name + let l:col += l:step + endwhile + return [a:lnum, l:col] +endfunction + +function! s:FindCornersOfSyntax(lnum, col) + return [FindLeftOfSyntax(a:lnum, a:col), FindRightOfSyntax(a:lnum, a:col)] +endfunction + +function! s:FindRightOfSyntax(lnum, col) + return FindCornerOfSyntax(a:lnum, a:col, 1) +endfunction + +function! s:FindLeftOfSyntax(lnum, col) + return FindCornerOfSyntax(a:lnum, a:col, -1) +endfunction + +" Returns: +" +" - a string with the the URL for the link under the cursor +" - an empty string if the cursor is not on a link +" +" TODO +" +" - multiline support +" - give an error if the separator does is not on a link +" +function! s:Markdown_GetUrlForPosition(lnum, col) + let l:lnum = a:lnum + let l:col = a:col + let l:syn = synIDattr(synID(l:lnum, l:col, 1), 'name') + + if l:syn ==# 'mkdInlineURL' || l:syn ==# 'mkdURL' || l:syn ==# 'mkdLinkDefTarget' + " Do nothing. + elseif l:syn ==# 'mkdLink' + let [l:lnum, l:col] = FindNextSyntax(l:lnum, l:col, 'mkdURL') + let l:syn = 'mkdURL' + elseif l:syn ==# 'mkdDelimiter' + let l:line = getline(l:lnum) + let l:char = l:line[col - 1] + if l:char ==# '<' + let l:col += 1 + elseif l:char ==# '>' || l:char ==# ')' + let l:col -= 1 + elseif l:char ==# '[' || l:char ==# ']' || l:char ==# '(' + let [l:lnum, l:col] = FindNextSyntax(l:lnum, l:col, 'mkdURL') + else + return '' + endif + else + return '' + endif + + let [l:left, l:right] = FindCornersOfSyntax(l:lnum, l:col) + return getline(l:lnum)[l:left - 1 : l:right - 1] +endfunction + +" Front end for GetUrlForPosition. +" +function! s:OpenUrlUnderCursor() + let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.')) + if l:url != '' + call s:VersionAwareNetrwBrowseX(l:url) + else + echomsg 'The cursor is not on a link.' + endif +endfunction + +" We need a definition guard because we invoke 'edit' which will reload this +" script while this function is running. We must not replace it. +if !exists('*s:EditUrlUnderCursor') + function s:EditUrlUnderCursor() + let l:url = s:Markdown_GetUrlForPosition(line('.'), col('.')) + if l:url != '' + if get(g:, 'vim_markdown_autowrite', 0) + write + endif + let l:anchor = '' + if get(g:, 'vim_markdown_follow_anchor', 0) + let l:parts = split(l:url, '#', 1) + if len(l:parts) == 2 + let [l:url, l:anchor] = parts + let l:anchorexpr = get(g:, 'vim_markdown_anchorexpr', '') + if l:anchorexpr != '' + let l:anchor = eval(substitute( + \ l:anchorexpr, 'v:anchor', + \ escape('"'.l:anchor.'"', '"'), '')) + endif + endif + endif + if l:url != '' + let l:ext = '' + if get(g:, 'vim_markdown_no_extensions_in_markdown', 0) + " use another file extension if preferred + if exists('g:vim_markdown_auto_extension_ext') + let l:ext = '.'.g:vim_markdown_auto_extension_ext + else + let l:ext = '.md' + endif + endif + let l:url = fnameescape(fnamemodify(expand('%:h').'/'.l:url.l:ext, ':.')) + let l:editmethod = '' + " determine how to open the linked file (split, tab, etc) + if exists('g:vim_markdown_edit_url_in') + if g:vim_markdown_edit_url_in == 'tab' + let l:editmethod = 'tabnew' + elseif g:vim_markdown_edit_url_in == 'vsplit' + let l:editmethod = 'vsp' + elseif g:vim_markdown_edit_url_in == 'hsplit' + let l:editmethod = 'sp' + else + let l:editmethod = 'edit' + endif + else + " default to current buffer + let l:editmethod = 'edit' + endif + execute l:editmethod l:url + endif + if l:anchor != '' + silent! execute '/'.l:anchor + endif + else + echomsg 'The cursor is not on a link.' + endif + endfunction +endif + +function! s:VersionAwareNetrwBrowseX(url) + if has('patch-7.4.567') + call netrw#BrowseX(a:url, 0) + else + call netrw#NetrwBrowseX(a:url, 0) + endif +endf + +function! s:MapNotHasmapto(lhs, rhs) + if !hasmapto('' . a:rhs) + execute 'nmap ' . a:lhs . ' ' . a:rhs + execute 'vmap ' . a:lhs . ' ' . a:rhs + endif +endfunction + +call MapNormVis('Markdown_MoveToNextHeader', 'MoveToNextHeader') +call MapNormVis('Markdown_MoveToPreviousHeader', 'MoveToPreviousHeader') +call MapNormVis('Markdown_MoveToNextSiblingHeader', 'MoveToNextSiblingHeader') +call MapNormVis('Markdown_MoveToPreviousSiblingHeader', 'MoveToPreviousSiblingHeader') +call MapNormVis('Markdown_MoveToParentHeader', 'MoveToParentHeader') +call MapNormVis('Markdown_MoveToCurHeader', 'MoveToCurHeader') +nnoremap Markdown_OpenUrlUnderCursor :call OpenUrlUnderCursor() +nnoremap Markdown_EditUrlUnderCursor :call EditUrlUnderCursor() + +if !get(g:, 'vim_markdown_no_default_key_mappings', 0) + call MapNotHasmapto(']]', 'Markdown_MoveToNextHeader') + call MapNotHasmapto('[[', 'Markdown_MoveToPreviousHeader') + call MapNotHasmapto('][', 'Markdown_MoveToNextSiblingHeader') + call MapNotHasmapto('[]', 'Markdown_MoveToPreviousSiblingHeader') + call MapNotHasmapto(']u', 'Markdown_MoveToParentHeader') + call MapNotHasmapto(']c', 'Markdown_MoveToCurHeader') + call MapNotHasmapto('gx', 'Markdown_OpenUrlUnderCursor') + call MapNotHasmapto('ge', 'Markdown_EditUrlUnderCursor') +endif + +command! -buffer -range=% HeaderDecrease call s:HeaderDecrease(, ) +command! -buffer -range=% HeaderIncrease call s:HeaderDecrease(, , 1) +command! -buffer -range=% SetexToAtx call s:SetexToAtx(, ) +command! -buffer TableFormat call s:TableFormat() +command! -buffer Toc call s:Toc() +command! -buffer Toch call s:Toc('horizontal') +command! -buffer Tocv call s:Toc('vertical') +command! -buffer Toct call s:Toc('tab') + +" Heavily based on vim-notes - http://peterodding.com/code/vim/notes/ +if exists('g:vim_markdown_fenced_languages') + let s:filetype_dict = {} + for s:filetype in g:vim_markdown_fenced_languages + let key = matchstr(s:filetype, "[^=]*") + let val = matchstr(s:filetype, "[^=]*$") + let s:filetype_dict[key] = val + endfor +else + let s:filetype_dict = { + \ 'c++': 'cpp', + \ 'viml': 'vim', + \ 'bash': 'sh', + \ 'ini': 'dosini' + \ } +endif + +function! s:MarkdownHighlightSources(force) + " Syntax highlight source code embedded in notes. + " Look for code blocks in the current file + let filetypes = {} + for line in getline(1, '$') + let ft = matchstr(line, '```\s*\zs[0-9A-Za-z_+-]*') + if !empty(ft) && ft !~ '^\d*$' | let filetypes[ft] = 1 | endif + endfor + if !exists('b:mkd_known_filetypes') + let b:mkd_known_filetypes = {} + endif + if !exists('b:mkd_included_filetypes') + " set syntax file name included + let b:mkd_included_filetypes = {} + endif + if !a:force && (b:mkd_known_filetypes == filetypes || empty(filetypes)) + return + endif + + " Now we're ready to actually highlight the code blocks. + let startgroup = 'mkdCodeStart' + let endgroup = 'mkdCodeEnd' + for ft in keys(filetypes) + if a:force || !has_key(b:mkd_known_filetypes, ft) + if has_key(s:filetype_dict, ft) + let filetype = s:filetype_dict[ft] + else + let filetype = ft + endif + let group = 'mkdSnippet' . toupper(substitute(filetype, "[+-]", "_", "g")) + if !has_key(b:mkd_included_filetypes, filetype) + let include = s:SyntaxInclude(filetype) + let b:mkd_included_filetypes[filetype] = 1 + else + let include = '@' . toupper(filetype) + endif + let command = 'syntax region %s matchgroup=%s start="^\s*```\s*%s$" matchgroup=%s end="\s*```$" keepend contains=%s%s' + execute printf(command, group, startgroup, ft, endgroup, include, has('conceal') && get(g:, 'vim_markdown_conceal', 1) && get(g:, 'vim_markdown_conceal_code_blocks', 1) ? ' concealends' : '') + execute printf('syntax cluster mkdNonListItem add=%s', group) + + let b:mkd_known_filetypes[ft] = 1 + endif + endfor +endfunction + +function! s:SyntaxInclude(filetype) + " Include the syntax highlighting of another {filetype}. + let grouplistname = '@' . toupper(a:filetype) + " Unset the name of the current syntax while including the other syntax + " because some syntax scripts do nothing when "b:current_syntax" is set + if exists('b:current_syntax') + let syntax_save = b:current_syntax + unlet b:current_syntax + endif + try + execute 'syntax include' grouplistname 'syntax/' . a:filetype . '.vim' + execute 'syntax include' grouplistname 'after/syntax/' . a:filetype . '.vim' + catch /E484/ + " Ignore missing scripts + endtry + " Restore the name of the current syntax + if exists('syntax_save') + let b:current_syntax = syntax_save + elseif exists('b:current_syntax') + unlet b:current_syntax + endif + return grouplistname +endfunction + + +function! s:MarkdownRefreshSyntax(force) + if &filetype =~ 'markdown' && line('$') > 1 + call s:MarkdownHighlightSources(a:force) + endif +endfunction + +function! s:MarkdownClearSyntaxVariables() + if &filetype =~ 'markdown' + unlet! b:mkd_included_filetypes + endif +endfunction + +augroup Mkd + " These autocmd calling s:MarkdownRefreshSyntax need to be kept in sync with + " the autocmds calling s:MarkdownSetupFolding in after/ftplugin/markdown.vim. + autocmd! * + autocmd BufWinEnter call s:MarkdownRefreshSyntax(1) + autocmd BufUnload call s:MarkdownClearSyntaxVariables() + autocmd BufWritePost call s:MarkdownRefreshSyntax(0) + autocmd InsertEnter,InsertLeave call s:MarkdownRefreshSyntax(0) + autocmd CursorHold,CursorHoldI call s:MarkdownRefreshSyntax(0) +augroup END diff --git a/.vim/bundle/vim-markdown/indent/markdown.vim b/.vim/bundle/vim-markdown/indent/markdown.vim new file mode 100755 index 0000000..2fa4cda --- /dev/null +++ b/.vim/bundle/vim-markdown/indent/markdown.vim @@ -0,0 +1,75 @@ +if exists("b:did_indent") | finish | endif +let b:did_indent = 1 + +setlocal indentexpr=GetMarkdownIndent() +setlocal nolisp +setlocal autoindent + +" Automatically continue blockquote on line break +setlocal formatoptions+=r +setlocal comments=b:> +if get(g:, "vim_markdown_auto_insert_bullets", 1) + " Do not automatically insert bullets when auto-wrapping with text-width + setlocal formatoptions-=c + " Accept various markers as bullets + setlocal comments+=b:*,b:+,b:- +endif + +" Only define the function once +if exists("*GetMarkdownIndent") | finish | endif + +function! s:IsMkdCode(lnum) + let name = synIDattr(synID(a:lnum, 1, 0), 'name') + return (name =~ '^mkd\%(Code$\|Snippet\)' || name != '' && name !~ '^\%(mkd\|html\)') +endfunction + +function! s:IsLiStart(line) + return a:line !~ '^ *\([*-]\)\%( *\1\)\{2}\%( \|\1\)*$' && + \ a:line =~ '^\s*[*+-] \+' +endfunction + +function! s:IsHeaderLine(line) + return a:line =~ '^\s*#' +endfunction + +function! s:IsBlankLine(line) + return a:line =~ '^$' +endfunction + +function! s:PrevNonBlank(lnum) + let i = a:lnum + while i > 1 && s:IsBlankLine(getline(i)) + let i -= 1 + endwhile + return i +endfunction + +function GetMarkdownIndent() + if v:lnum > 2 && s:IsBlankLine(getline(v:lnum - 1)) && s:IsBlankLine(getline(v:lnum - 2)) + return 0 + endif + let list_ind = get(g:, "vim_markdown_new_list_item_indent", 4) + " Find a non-blank line above the current line. + let lnum = s:PrevNonBlank(v:lnum - 1) + " At the start of the file use zero indent. + if lnum == 0 | return 0 | endif + let ind = indent(lnum) + let line = getline(lnum) " Last line + let cline = getline(v:lnum) " Current line + if s:IsLiStart(cline) + " Current line is the first line of a list item, do not change indent + return indent(v:lnum) + elseif s:IsHeaderLine(cline) && !s:IsMkdCode(v:lnum) + " Current line is the header, do not indent + return 0 + elseif s:IsLiStart(line) + if s:IsMkdCode(lnum) + return ind + else + " Last line is the first line of a list item, increase indent + return ind + list_ind + end + else + return ind + endif +endfunction diff --git a/.vim/bundle/vim-markdown/registry/markdown.yaml b/.vim/bundle/vim-markdown/registry/markdown.yaml new file mode 100644 index 0000000..4d293ee --- /dev/null +++ b/.vim/bundle/vim-markdown/registry/markdown.yaml @@ -0,0 +1,9 @@ +addon: markdown +description: "Markdown syntax highlighting" +files: + - ftdetect/markdown.vim + - ftplugin/markdown.vim + - syntax/markdown.vim + - after/ftplugin/markdown.vim + - indent/markdown.vim + - doc/vim-markdown.txt diff --git a/.vim/bundle/vim-markdown/syntax/markdown.vim b/.vim/bundle/vim-markdown/syntax/markdown.vim new file mode 100644 index 0000000..c1a2b2c --- /dev/null +++ b/.vim/bundle/vim-markdown/syntax/markdown.vim @@ -0,0 +1,184 @@ +" Vim syntax file +" Language: Markdown +" Maintainer: Ben Williams +" URL: http://plasticboy.com/markdown-vim-mode/ +" Remark: Uses HTML syntax file +" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes) + + +" Read the HTML syntax to start with +if version < 600 + so :p:h/html.vim +else + runtime! syntax/html.vim + + if exists('b:current_syntax') + unlet b:current_syntax + endif +endif + +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +" don't use standard HiLink, it will not work with included syntax files +if version < 508 + command! -nargs=+ HtmlHiLink hi link +else + command! -nargs=+ HtmlHiLink hi def link +endif + +syn spell toplevel +syn case ignore +syn sync linebreaks=1 + +let s:conceal = '' +let s:concealends = '' +let s:concealcode = '' +if has('conceal') && get(g:, 'vim_markdown_conceal', 1) + let s:conceal = ' conceal' + let s:concealends = ' concealends' +endif +if has('conceal') && get(g:, 'vim_markdown_conceal_code_blocks', 1) + let s:concealcode = ' concealends' +endif + +" additions to HTML groups +if get(g:, 'vim_markdown_emphasis_multiline', 1) + let s:oneline = '' +else + let s:oneline = ' oneline' +endif +syn region mkdItalic matchgroup=mkdItalic start="\%(\*\|_\)" end="\%(\*\|_\)" +syn region mkdBold matchgroup=mkdBold start="\%(\*\*\|__\)" end="\%(\*\*\|__\)" +syn region mkdBoldItalic matchgroup=mkdBoldItalic start="\%(\*\*\*\|___\)" end="\%(\*\*\*\|___\)" +execute 'syn region htmlItalic matchgroup=mkdItalic start="\%(^\|\s\)\zs\*\ze[^\\\*\t ]\%(\%([^*]\|\\\*\|\n\)*[^\\\*\t ]\)\?\*\_W" end="[^\\\*\t ]\zs\*\ze\_W" keepend contains=@Spell' . s:oneline . s:concealends +execute 'syn region htmlItalic matchgroup=mkdItalic start="\%(^\|\s\)\zs_\ze[^\\_\t ]" end="[^\\_\t ]\zs_\ze\_W" keepend contains=@Spell' . s:oneline . s:concealends +execute 'syn region htmlBold matchgroup=mkdBold start="\%(^\|\s\)\zs\*\*\ze\S" end="\S\zs\*\*" keepend contains=@Spell' . s:oneline . s:concealends +execute 'syn region htmlBold matchgroup=mkdBold start="\%(^\|\s\)\zs__\ze\S" end="\S\zs__" keepend contains=@Spell' . s:oneline . s:concealends +execute 'syn region htmlBoldItalic matchgroup=mkdBoldItalic start="\%(^\|\s\)\zs\*\*\*\ze\S" end="\S\zs\*\*\*" keepend contains=@Spell' . s:oneline . s:concealends +execute 'syn region htmlBoldItalic matchgroup=mkdBoldItalic start="\%(^\|\s\)\zs___\ze\S" end="\S\zs___" keepend contains=@Spell' . s:oneline . s:concealends + +" [link](URL) | [link][id] | [link][] | ![image](URL) +syn region mkdFootnotes matchgroup=mkdDelimiter start="\[^" end="\]" +execute 'syn region mkdID matchgroup=mkdDelimiter start="\[" end="\]" contained oneline' . s:conceal +execute 'syn region mkdURL matchgroup=mkdDelimiter start="(" end=")" contained oneline' . s:conceal +execute 'syn region mkdLink matchgroup=mkdDelimiter start="\\\@ ]*>" end=">" + +" Link definitions: [id]: URL (Optional Title) +syn region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[\^\@!" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite +syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained +syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained + +"HTML headings +syn region htmlH1 matchgroup=mkdHeading start="^\s*#" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH2 matchgroup=mkdHeading start="^\s*##" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH3 matchgroup=mkdHeading start="^\s*###" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH4 matchgroup=mkdHeading start="^\s*####" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH5 matchgroup=mkdHeading start="^\s*#####" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn region htmlH6 matchgroup=mkdHeading start="^\s*######" end="$" contains=mkdLink,mkdInlineURL,@Spell +syn match htmlH1 /^.\+\n=\+$/ contains=mkdLink,mkdInlineURL,@Spell +syn match htmlH2 /^.\+\n-\+$/ contains=mkdLink,mkdInlineURL,@Spell + +"define Markdown groups +syn match mkdLineBreak / \+$/ +syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLink,mkdInlineURL,mkdLineBreak,@Spell +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start=/\(\([^\\]\|^\)\\\)\@]*\\\@" end=""' . s:concealcode +execute 'syn region mkdCode matchgroup=mkdCodeDelimiter start="]*\\\@" end=""' . s:concealcode +syn region mkdFootnote start="\[^" end="\]" +syn match mkdCode /^\s*\n\(\(\s\{8,}[^ ]\|\t\t\+[^\t]\).*\n\)\+/ +syn match mkdCode /\%^\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ +syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/ contained +syn match mkdListItem /^\s*\%([-*+]\|\d\+\.\)\ze\s\+/ contained +syn region mkdListItemLine start="^\s*\%([-*+]\|\d\+\.\)\s\+" end="$" oneline contains=@mkdNonListItem,mkdListItem,@Spell +syn region mkdNonListItemBlock start="\(\%^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@!\|\n\(\_^\_$\|\s\{4,}[^ ]\|\t+[^\t]\)\@!\)" end="^\(\s*\([-*+]\|\d\+\.\)\s\+\)\@=" contains=@mkdNonListItem,@Spell +syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*\(\*\|\s\)*$/ +syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-\(-\|\s\)*$/ +syn match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_\(_\|\s\)*$/ + +" YAML frontmatter +if get(g:, 'vim_markdown_frontmatter', 0) + syn include @yamlTop syntax/yaml.vim + syn region Comment matchgroup=mkdDelimiter start="\%^---$" end="^\(---\|\.\.\.\)$" contains=@yamlTop keepend + unlet! b:current_syntax +endif + +if get(g:, 'vim_markdown_toml_frontmatter', 0) + try + syn include @tomlTop syntax/toml.vim + syn region Comment matchgroup=mkdDelimiter start="\%^+++$" end="^+++$" transparent contains=@tomlTop keepend + unlet! b:current_syntax + catch /E484/ + syn region Comment matchgroup=mkdDelimiter start="\%^+++$" end="^+++$" + endtry +endif + +if get(g:, 'vim_markdown_json_frontmatter', 0) + try + syn include @jsonTop syntax/json.vim + syn region Comment matchgroup=mkdDelimiter start="\%^{$" end="^}$" contains=@jsonTop keepend + unlet! b:current_syntax + catch /E484/ + syn region Comment matchgroup=mkdDelimiter start="\%^{$" end="^}$" + endtry +endif + +if get(g:, 'vim_markdown_math', 0) + syn include @tex syntax/tex.vim + syn region mkdMath start="\\\@item2 + +Expect (auto insert * and indent level is same): + * item1 + * item2 + +Given markdown; + +Execute: + syntax off + +Do (insert enter at list end with syntax off): + i* item1\item2 + +Expect (auto insert * and indent level is same): + * item1 + * item2 + +Execute: + syntax on + +Given markdown; +``` +* item1 + +Do (insert after list items in code block): + jotext + +Expect (no autoindent in code block): + ``` + * item1 + text + +Given markdown; +* item1 + +a + +Do (insert enter after list): + jji\b + +Expect (no autoindent outside list): + * item1 + + + ba + +Given markdown; +- a + + # b + +Do (insert header after list): + jjwi# + +Expect (no indent header after list): + - a + + ## b + +Given markdown; +* item1 + +Do (new line from the first item of the list and add the second item): + o* item2 + +Expect (insert 4 spaces to the head of second item): + * item1 + * item2 diff --git a/.vim/bundle/vim-markdown/test/map.vader b/.vim/bundle/vim-markdown/test/map.vader new file mode 100644 index 0000000..7ecdfad --- /dev/null +++ b/.vim/bundle/vim-markdown/test/map.vader @@ -0,0 +1,153 @@ +Given markdown; +a c + +Execute (gx autolink): + let b:url = 'http://b' + let b:line = getline(1) + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition') + AssertEqual b:func(1, match(b:line, 'a') + 1), '' + AssertEqual b:func(1, match(b:line, '<') + 1), b:url + AssertEqual b:func(1, match(b:line, 'h') + 1), b:url + AssertEqual b:func(1, match(b:line, '>') + 1), b:url + AssertEqual b:func(1, match(b:line, 'c') + 1), '' + +Given markdown; +a http://b.bb c + +Execute (gx implicit autolink): + let b:url = 'http://b.bb' + let b:line = getline(1) + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition') + AssertEqual b:func(1, match(b:line, 'a') + 1), '' + AssertEqual b:func(1, match(b:line, 'h') + 1), b:url + AssertEqual b:func(1, match(b:line, 'c') + 1), '' + +Given markdown; +[a]: http://b "c" + +Execute (gx link reference definition): + let b:url = 'http://b' + let b:line = getline(1) + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition') + " TODO would be cool if all of the following gave the link. + AssertEqual b:func(1, match(b:line, 'a') + 1), '' + AssertEqual b:func(1, match(b:line, 'h') + 1), b:url + AssertEqual b:func(1, match(b:line, 'c') + 1), '' + +Given markdown; +a [b](c) d + +Execute (gx autolink): + let b:url = 'c' + let b:line = getline(1) + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'Markdown_GetUrlForPosition') + AssertEqual b:func(1, match(b:line, 'a') + 1), '' + AssertEqual b:func(1, match(b:line, '[') + 1), b:url + AssertEqual b:func(1, match(b:line, 'b') + 1), b:url + AssertEqual b:func(1, match(b:line, ']') + 1), b:url + AssertEqual b:func(1, match(b:line, '(') + 1), b:url + AssertEqual b:func(1, match(b:line, 'c') + 1), b:url + AssertEqual b:func(1, match(b:line, ')') + 1), b:url + AssertEqual b:func(1, match(b:line, 'd') + 1), '' + +Given markdown; +[ge_test.md](ge_test.md) + +Execute (ge opens file): + normal ge + AssertEqual @%, 'ge_test.md' + AssertEqual getline(1), 'ge test' + +Given markdown; +[ge_test](ge_test) + +Execute (ge opens file without .md extensions): + let g:vim_markdown_no_extensions_in_markdown = 1 + normal ge + AssertEqual @%, 'ge_test.md' + AssertEqual getline(1), 'ge test' + unlet g:vim_markdown_no_extensions_in_markdown + +Given markdown; +[ge_test.md](ge_test.md) + +Execute (ge does not write before opening file): + normal ia + normal l + normal ge + AssertEqual @%, 'ge_test.md' + AssertEqual getline(1), 'ge test' + +Given markdown; +[ge_test.md](ge_test.md) + +Execute (ge auto-write before opening file): + let g:vim_markdown_autowrite = 1 + normal ia + normal l + AssertThrows normal ge + AssertEqual g:vader_exception, 'Vim(write):E382: Cannot write, ''buftype'' option is set' + unlet g:vim_markdown_autowrite + +Given markdown; +# a + +b + +# c + +d + +Execute (]] same level): + AssertEqual line('.'), 1 + normal ]] + AssertEqual line('.'), 5 + normal [[ + AssertEqual line('.'), 1 + +Given markdown; +# a + +b + +## c + +d + +Execute (]] different levels level): + AssertEqual line('.'), 1 + normal ]] + AssertEqual line('.'), 5 + normal [[ + AssertEqual line('.'), 1 + +Given markdown; +# a + +b + +## c + +d + +# e + +f + +Execute (][ different levels level): + AssertEqual line('.'), 1 + normal ][ + AssertEqual line('.'), 9 + normal [] + AssertEqual line('.'), 1 + +Given markdown; +# a + +b + +Execute (]c): + normal! 3G + AssertEqual line('.'), 3 + normal ]c + AssertEqual line('.'), 1 diff --git a/.vim/bundle/vim-markdown/test/python-folding.vader b/.vim/bundle/vim-markdown/test/python-folding.vader new file mode 100644 index 0000000..9196ea6 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/python-folding.vader @@ -0,0 +1,84 @@ +Before: + let g:vim_markdown_folding_style_pythonic = 1 + source ../after/ftplugin/markdown.vim + +After: + setlocal foldexpr=0 + setlocal foldmethod=manual + +Given markdown; +# Title + +## Chapter 1 + +``` +This is code block +# This is just a comment +``` + +## Chapter 2 + +foobar + +Execute (fold level # in code block): + AssertEqual foldlevel(1), 1, '# Title' + AssertEqual foldlevel(3), 2, '## Chapter 1' + AssertEqual foldlevel(7), 2, '# This is just a comment' + AssertEqual foldlevel(8), 2, '```' + AssertEqual foldlevel(10), 2, '## Chapter 2' + AssertEqual foldlevel(12), 2, 'foobar' + +Execute (fold text of chapters): + let b:width = winwidth(0) + let b:hyphen = repeat('-', b:width - 18 > 2 ? b:width - 18 : b:width - 9 > 0 ? 3 : 2) + AssertEqual foldtextresult(10), strpart('## Chapter 2', 0, b:width - 9) . ' ' . b:hyphen . ' 2' + +Given markdown; +Fold text 1 +=========== +Fold text 2 +----------- + +Execute (fold level ==, --): + AssertEqual foldlevel(2), 0, '==' + AssertEqual foldlevel(4), 1, '--' + +Execute (fold text of ==, --): + let b:width = winwidth(0) + let b:hyphen = repeat('-', b:width - 17 > 2 ? b:width - 17 : b:width - 9 > 0 ? 3 : 2) + AssertEqual foldtextresult(3), strpart('Fold text 2', 0, b:width - 9) . ' ' . b:hyphen . ' 1' + +Given markdown; +Headline + +foobar + +# Title + +Execute (fold any preamble): + AssertEqual foldlevel(1), 1, 'Headline' + AssertEqual foldlevel(3), 1, 'foobar' + AssertEqual foldlevel(5), 1, '# Title' + +Given markdown; +--- +layout: article +title: A test of the heading folding when there is YAML frontmatter +tags: markdown yaml vim-markdown +--- +body + +heading +------- + +Execute (fold level of yaml front matter): + let g:vim_markdown_frontmatter = 1 + source ../after/ftplugin/markdown.vim + AssertEqual foldlevel(1), 1, '---' + AssertEqual foldlevel(2), 1, 'layout: article' + AssertEqual foldlevel(4), 1, 'tags: markdown yaml vim-markdown' + AssertEqual foldlevel(5), 1, '---' + AssertEqual foldlevel(6), 1, 'body' + AssertEqual foldlevel(8), 1, 'heading' + AssertEqual foldlevel(9), 1, '-------' + unlet g:vim_markdown_frontmatter diff --git a/.vim/bundle/vim-markdown/test/run-tests.sh b/.vim/bundle/vim-markdown/test/run-tests.sh new file mode 100755 index 0000000..5c9db06 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/run-tests.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# Exit on error. +set -e + +cd "$( dirname "${BASH_SOURCE[0]}" )" + +for dep in ../build/tabular ../build/vim-toml ../build/vim-json ../build/vader.vim; do + if [[ ! -d $dep ]]; then + echo "Missing dependency: $dep" + echo "You may just want to use 'make test'." + exit 1 + fi +done + +vim -Nu vimrc -c 'Vader! *' > /dev/null diff --git a/.vim/bundle/vim-markdown/test/syntax-singleline.vader b/.vim/bundle/vim-markdown/test/syntax-singleline.vader new file mode 100644 index 0000000..9fde407 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/syntax-singleline.vader @@ -0,0 +1,158 @@ +Before: + let g:vim_markdown_emphasis_multiline = 0 + syn off | syn on + +After: + let g:vim_markdown_emphasis_multiline = 1 + syn off | syn on + +Given markdown; +a **b** c + +Execute (bold): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + +Given markdown; +a __b__ c + +Execute (bold): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + +Given markdown; +a *b* c + +Execute (italic): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a _b_ c + +Execute (italic): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +_a_b_ + +Execute (italic text has underscores): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + +Given markdown; +a \*b\* c + +Execute (not italic with escaped asterisks): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a \_b\_ c + +Execute (not italic with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a _b\_c_ d + +Execute (italic with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +a_b_c + +Execute (not italic underscores within text): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a *b\*c* d + +Execute (italic with escaped asterisks): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +a __b\_\_c__ d + +Execute (bold with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +_a b +c_ d + +Execute (italic with underscores in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +__a b +c__ d + +Execute (bold with underscores in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertNotEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +___a b +c___ d + +Execute (bold italic with underscores in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + +Given markdown; +*a b +c* d + +Execute (italic with asterisks in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +**a b +c** d + +Execute (bold with asterisks in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertNotEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +***a b +c*** d + +Execute (bold italic with asterisks in multiple lines): + AssertNotEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + diff --git a/.vim/bundle/vim-markdown/test/syntax.md b/.vim/bundle/vim-markdown/test/syntax.md new file mode 100644 index 0000000..33f5500 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/syntax.md @@ -0,0 +1,89 @@ +# Fenced code living in an indented environment is correctly highlighted + +1. run this command to do this: + + ``` +some command + ``` + +2. Subsequent list items are correctly highlighted. + +Fenced code block with language: + +```ruby +def f + 0 +end +``` + +# Links + +[a](b "c") + +[a]() + +[good spell](a) + +[badd spell](a) + +[a](b "c") + +[a]( b +"c" ) + +a (`a`) b. Fix: + +Escaped: + +\[a](b) + +[a\]b](c) + +## Known failures + +Escape does not work: + +[a\](b) + +Should not be links because of whitespace: + +[a] (b) + +[a](a +b) + +[a](a b) + +# Reference links + +Single links: + +[a][b] + +[good spell][a] + +[badd spell][a] + +[a][] + +[a] [] + +[a][b] c [d][e] + +Reference link followed by inline link: + +[a] [b](c) + +## Known failures + +Should be shortcut reference links: + +[a] + +[a] b [c] + +Should be a single link: + +[a] [b] + +[a] b [c](d) diff --git a/.vim/bundle/vim-markdown/test/syntax.vader b/.vim/bundle/vim-markdown/test/syntax.vader new file mode 100644 index 0000000..5ce94fc --- /dev/null +++ b/.vim/bundle/vim-markdown/test/syntax.vader @@ -0,0 +1,1284 @@ +Before: + unlet! b:mkd_known_filetypes + unlet! b:mkd_included_filetypes + unlet! g:vim_markdown_math + +Given markdown; +a **b** c + +Execute (bold): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + +Given markdown; +a __b__ c + +Execute (bold): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertNotEqual SyntaxOf('c'), 'htmlBold' + +Given markdown; +a *b* c + +Execute (italic): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a _b_ c + +Execute (italic): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +_a_b_ + +Execute (italic text has underscores): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + +Given markdown; +a \*b\* c + +Execute (not italic with escaped asterisks): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a \_b\_ c + +Execute (not italic with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a _b\_c_ d + +Execute (italic with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +a_b_c + +Execute (not italic underscores within text): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertNotEqual SyntaxOf('b'), 'htmlItalic' + AssertNotEqual SyntaxOf('c'), 'htmlItalic' + +Given markdown; +a *b\*c* d + +Execute (italic with escaped asterisks): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +a __b\_\_c__ d + +Execute (bold with escaped underscores): + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +_a b +c_ d + +Execute (italic with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +__a b +c__ d + +Execute (bold with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +___a b +c___ d + +Execute (bold italic with underscores in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + +Given markdown; +*a b +c* d + +Execute (italic with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlItalic' + AssertEqual SyntaxOf('b'), 'htmlItalic' + AssertEqual SyntaxOf('c'), 'htmlItalic' + AssertNotEqual SyntaxOf('d'), 'htmlItalic' + +Given markdown; +**a b +c** d + +Execute (bold with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBold' + AssertEqual SyntaxOf('b'), 'htmlBold' + AssertEqual SyntaxOf('c'), 'htmlBold' + AssertNotEqual SyntaxOf('d'), 'htmlBold' + +Given markdown; +***a b +c*** d + +Execute (bold italic with asterisks in multiple lines): + AssertEqual SyntaxOf('a'), 'htmlBoldItalic' + AssertEqual SyntaxOf('b'), 'htmlBoldItalic' + AssertEqual SyntaxOf('c'), 'htmlBoldItalic' + AssertNotEqual SyntaxOf('d'), 'htmlBoldItalic' + +Given markdown; +*a + +Execute (not italic with an asterisk): + AssertNotEqual SyntaxOf('a'), 'htmlItalic' + +Given markdown; +[__](a) b + +Execute (not bold with double underscores): + AssertNotEqual SyntaxOf('_'), 'htmlBold' + AssertNotEqual SyntaxOf('a'), 'htmlBold' + AssertNotEqual SyntaxOf('b'), 'htmlBold' + +Given markdown; +_a_ + +Execute (conceal italic): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +Given markdown; +*a* + +Execute (conceal italic): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +Given markdown; +__a__ + +Execute (conceal bold): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +Given markdown; +**a** + +Execute (conceal bold): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +Given markdown; +___a___ + +Execute (conceal italic bold): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + AssertEqual synconcealed(1, 7)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 0 + AssertEqual synconcealed(1, 6)[0], 0 + AssertEqual synconcealed(1, 7)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + AssertEqual synconcealed(1, 7)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +Given markdown; +***a*** + +Execute (conceal italic bold): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + AssertEqual synconcealed(1, 7)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 0 + AssertEqual synconcealed(1, 6)[0], 0 + AssertEqual synconcealed(1, 7)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 1 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + AssertEqual synconcealed(1, 7)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +# Links + +Given markdown; +[a](b) + +Execute (link with title): + AssertEqual SyntaxOf('a'), 'mkdLink' + AssertEqual SyntaxOf('b'), 'mkdURL' + +Given markdown; +[a +b](c) + +Execute (link text with newline): + AssertEqual SyntaxOf('a'), 'mkdLink' + AssertEqual SyntaxOf('b'), 'mkdLink' + AssertEqual SyntaxOf('c'), 'mkdURL' + +Given markdown; +[a] b [c](d) + +Execute (link text with bracket sections): + AssertNotEqual SyntaxOf('a'), 'mkdLink' + AssertNotEqual SyntaxOf('b'), 'mkdLink' + AssertEqual SyntaxOf('c'), 'mkdLink' + AssertEqual SyntaxOf('d'), 'mkdURL' + +Given markdown; +[^a]: b + +Execute (footnote is not link): + AssertNotEqual SyntaxOf('a'), 'mkdLinkDef' + +Given markdown; +(a) + +(b) + +Execute (parenthesis not in link): + AssertNotEqual SyntaxOf('a'), 'mkdURL' + AssertNotEqual SyntaxOf('b'), 'mkdURL' + +Given markdown; +[a](b) c [d](e) + +Execute (multiple links on a line): + AssertNotEqual SyntaxOf('c'), 'mkdLink' + AssertNotEqual SyntaxOf('c'), 'mkdURL' + +Given markdown; +[a] (b) + +Execute (space is not allowed between link text and parenthesis): + AssertNotEqual SyntaxOf('a'), 'mkdLink' + AssertNotEqual SyntaxOf('b'), 'mkdURL' + +Given markdown; +[a](b) + +Execute (conceal link): + if has('conceal') + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + setlocal conceallevel=0 + endif + +Execute (disable conceal): + if has('conceal') + let g:vim_markdown_conceal=0 + syn off | syn on + setlocal conceallevel=2 + AssertEqual synconcealed(1, 1)[0], 0 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 0 + AssertEqual synconcealed(1, 6)[0], 0 + + let g:vim_markdown_conceal=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1 + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 4)[0], 1 + AssertEqual synconcealed(1, 5)[0], 1 + AssertEqual synconcealed(1, 6)[0], 1 + + setlocal conceallevel=0 + unlet g:vim_markdown_conceal + syn off | syn on + endif + +# Autolinks + +Given markdown; +a c + +Execute (autolink): + AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' + AssertEqual SyntaxOf('<'), 'mkdDelimiter' + AssertEqual SyntaxOf('b'), 'mkdInlineURL' + AssertEqual SyntaxOf('>'), 'mkdDelimiter' + AssertNotEqual SyntaxOf('c'), 'mkdInlineURL' + +Given markdown; +http://12monkeys.foo + +Execute (autolink with domain starting with a number): + AssertEqual SyntaxOf('12monkeys'), 'mkdInlineURL' + +Given markdown; + + +Execute (autolink with scheme case is insensitive): + AssertEqual SyntaxOf('a'), 'mkdInlineURL' + +Given markdown; + + +Execute (autolink without scheme is not a link): + AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' + +Given markdown; +< http://a > + + + +Execute (autolink with space is not a link): + AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' + AssertNotEqual SyntaxOf('b'), 'mkdInlineURL' + AssertNotEqual SyntaxOf('c'), 'mkdInlineURL' + AssertNotEqual SyntaxOf('d'), 'mkdInlineURL' + AssertNotEqual SyntaxOf('e'), 'mkdInlineURL' + +Given markdown; +\ + +Execute (autolinks can be backslash escaped): + AssertNotEqual SyntaxOf('<'), 'mkdDelimiter' + +Given markdown; +a (http://b.bb) c + +Execute (autolink in parenthesis): + AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' + AssertEqual SyntaxOf('('), 'mkdDelimiter' + AssertEqual SyntaxOf('b'), 'mkdInlineURL' + AssertEqual SyntaxOf(')'), 'mkdDelimiter' + AssertNotEqual SyntaxOf('c'), 'mkdInlineURL' + +Given markdown; +[![a](http://b)](http://c) + +Execute (autolink in link text): + AssertEqual SyntaxOf('!'), 'mkdDelimiter' + AssertEqual SyntaxOf('a'), 'mkdLink' + AssertEqual SyntaxOf('b'), 'mkdURL' + AssertEqual SyntaxOf('c'), 'mkdURL' + +Given markdown; +# [h1link](url) + +## [h2link](url) + +### [h3link](url) + +#### [h4link](url) + +##### [h5link](url) + +###### [h6link](url) + +[h1link_b](url) +=============== + +[h2link_b](url) +--------------- + +Execute (link in headers): + AssertEqual SyntaxOf('h1link'), 'mkdLink' + AssertEqual SyntaxOf('h2link'), 'mkdLink' + AssertEqual SyntaxOf('h3link'), 'mkdLink' + AssertEqual SyntaxOf('h4link'), 'mkdLink' + AssertEqual SyntaxOf('h5link'), 'mkdLink' + AssertEqual SyntaxOf('h6link'), 'mkdLink' + AssertEqual SyntaxOf('h1link_b'), 'mkdLink' + AssertEqual SyntaxOf('h2link_b'), 'mkdLink' + +Given markdown; +# http://h1link.foo + +## http://h2link.foo + +### http://h3link.foo + +#### http://h4link.foo + +##### http://h5link.foo + +###### http://h6link.foo + +http://h1link_b.foo +=================== + +http://h2link_b.foo +------------------- + +Execute (inline url in headers): + AssertEqual SyntaxOf('h1link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h2link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h3link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h4link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h5link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h6link'), 'mkdInlineURL' + AssertEqual SyntaxOf('h1link_b'), 'mkdInlineURL' + AssertEqual SyntaxOf('h2link_b'), 'mkdInlineURL' + +Given markdown; +> [a](b) +> http://foo.bar + +Execute (link in blockquote): + AssertEqual SyntaxOf('a'), 'mkdLink' + AssertEqual SyntaxOf('foo'), 'mkdInlineURL' + +Given markdown; +[https://domain.tld](https://domain.com) not_a_link + +Execute (link with url title): + AssertEqual SyntaxOf('https://domain.tld'), 'mkdInlineURL' + AssertEqual SyntaxOf('https://domain.com'), 'mkdInlineURL' + AssertNotEqual SyntaxOf('not_a_link'), 'mkdInlineURL' + +# Code Blocks + +Given markdown; +~~~ +code +~~~ + +Execute (code blocks can be fenced with tildes): + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +~~~~ +code +~~~~~ + +Execute (code blocks can be fenced with tildes longer than 3): + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +```` +code +````` + +Execute (code blocks can be fenced with backticks longer than 3): + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +~~~ruby +code +~~~ + +Execute (code blocks can have a language specifier): + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +```c++ +code +``` + +text + +Execute (code blocks can be fenced with backticks and a language specifier): + AssertEqual SyntaxOf('code'), 'mkdCode' + AssertNotEqual SyntaxOf('text'), 'mkdCode' + +# Indent Code Blocks + +Given markdown; +a + + b + c + +Execute (indent code blocks): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + AssertEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +# a + +b + + c + +Execute (indent code blocks after header): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + AssertNotEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; +- a + + b + + c + +Execute (indent code blocks after list): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + AssertNotEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c'), 'mkdCode' + +Given markdown; + a + b + +Execute (indent code block at beginning of file): + AssertEqual SyntaxOf('a'), 'mkdCode' + AssertEqual SyntaxOf('b'), 'mkdCode' + +Given markdown; +```c++ +#include +code +``` + +```ruby +def a +end +``` + +Execute (fenced code block syntax with a language specifier): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('include'), 'cInclude' + AssertEqual SyntaxOf('code'), 'mkdSnippetCPP' + AssertEqual SyntaxOf('def'), 'rubyDefine' + +Given markdown; +``` c++ +#include +code +``` + +``` vim +let g:a = 1 +``` + +``` ruby +def a +end +``` + +``` +ruby +class B +end +``` + +Execute (fenced code block syntax with a language specifier after whitespace): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('include'), 'cInclude' + AssertEqual SyntaxOf('code'), 'mkdSnippetCPP' + AssertEqual SyntaxOf('g:a'), 'vimVar' + AssertEqual SyntaxOf('def'), 'rubyDefine' + AssertNotEqual SyntaxOf('class'), 'rubyClass' + +Given markdown; +```vim +let g:a = 1 +``` + +```viml +let g:b = 1 +``` + +Execute (fenced code block syntax with alias language specifier): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('g:a'), 'vimVar' + AssertEqual SyntaxOf('g:b'), 'vimVar' + +Given markdown; +```csharp +var s = "foo"; +``` + +Execute (fenced code block languages setting): + let g:vim_markdown_fenced_languages = ['csharp=cs'] + source ../ftplugin/markdown.vim + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('foo'), 'csString' + unlet g:vim_markdown_fenced_languages + +Given markdown; +```vim +let g:a = 1 +``` + +Execute (fenced code block includes language syntax with reopening same buffer): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + split + quit + edit + set filetype=markdown + execute "normal! i```vim\let g:a = 1\```" + call b:func(1) + AssertEqual SyntaxOf('g:a'), 'vimVar' + +Given markdown; +```a+b- +code +``` + +Execute (fenced code block syntax with an unknown language specifier): + let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax') + call b:func(0) + AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_' + +Given markdown; +``` += +a +- +``` + +Execute (first = or - in fenced code block is not setex headers): + AssertEqual SyntaxOf('='), 'mkdCode' + AssertEqual SyntaxOf('-'), 'mkdCode' + +Given markdown; +``` {style=""} +a +``` + +Execute (fenced code block with extended info strings): + AssertEqual SyntaxOf('a'), 'mkdCode' + +# Code Blocks in pre and code tag + +Given markdown; +
+a
+
+ +Execute (code block in pre tag): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; + +a + + +Execute (code block in code tag): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +\ +a +\ + +Execute (not code block in escaped pre tag): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +\ +a +\ + +Execute (not code block in escaped code tag): + AssertNotEqual SyntaxOf('a'), 'mkdCode' + +# Code quotes + +Given markdown; +`a` + +Execute (code in code quotes): + AssertEqual SyntaxOf('a'), 'mkdCode' + +Given markdown; +`a\` b `c\` d + +Execute (code quotes not escaped ending with backslash): + AssertEqual SyntaxOf('a\'), 'mkdCode' + AssertNotEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c\'), 'mkdCode' + AssertNotEqual SyntaxOf('d'), 'mkdCode' + +Given markdown; +``a\`` b ``c`\`1`` d + +Execute (double code quotes not escaped ending with backslash): + AssertEqual SyntaxOf('a\'), 'mkdCode' + AssertNotEqual SyntaxOf('b'), 'mkdCode' + AssertEqual SyntaxOf('c`\\`1'), 'mkdCode' + AssertNotEqual SyntaxOf('d'), 'mkdCode' + +# Math + +Given markdown; +a $x$ b +c $$y$$ d +\$e\$ +\$\$f\$\$ + +Execute (math): + AssertNotEqual SyntaxOf('x')[0:2], 'tex' + AssertNotEqual SyntaxOf('y')[0:2], 'tex' + let g:vim_markdown_math=1 + syn off | syn on + AssertNotEqual SyntaxOf('a')[0:2], 'tex' + AssertNotEqual SyntaxOf('b')[0:2], 'tex' + AssertNotEqual SyntaxOf('c')[0:2], 'tex' + AssertNotEqual SyntaxOf('d')[0:2], 'tex' + AssertNotEqual SyntaxOf('e')[0:2], 'tex' + AssertNotEqual SyntaxOf('f')[0:2], 'tex' + AssertEqual SyntaxOf('x')[0:2], 'tex' + AssertEqual SyntaxOf('y')[0:2], 'tex' + let g:vim_markdown_math=0 + syn off | syn on + AssertNotEqual SyntaxOf('x')[0:2], 'tex' + AssertNotEqual SyntaxOf('y')[0:2], 'tex' + +Given markdown; +a + +$ +b +$ + +c + +Execute (multiline math): + let g:vim_markdown_math=1 + syn off | syn on + AssertNotEqual SyntaxOf('a')[0:2], 'tex' + AssertEqual SyntaxOf('b')[0:2], 'tex' + AssertNotEqual SyntaxOf('c')[0:2], 'tex' + +Given markdown; +$ \sqrt{a}{b} $ +$$ \frac{a}{b} $$ + +Execute (math tex highlighting): + let g:vim_markdown_math=0 + syn off | syn on + AssertNotEqual SyntaxOf('sqrt'), 'texStatement' + AssertNotEqual SyntaxOf('frac'), 'texStatement' + let g:vim_markdown_math=1 + syn off | syn on + AssertEqual SyntaxOf('sqrt'), 'texStatement' + AssertEqual SyntaxOf('frac'), 'texStatement' + +Given markdown; +$a b[$ c + +Execute (math ends with $): + let g:vim_markdown_math=1 + syn off | syn on + AssertEqual SyntaxOf('a')[0:2], 'tex' + AssertEqual SyntaxOf('b')[0:2], 'tex' + AssertNotEqual SyntaxOf('c')[0:2], 'tex' + +Given markdown; +$$a b[$$ c + +Execute (math ends with $$): + let g:vim_markdown_math=1 + syn off | syn on + AssertEqual SyntaxOf('a')[0:2], 'tex' + AssertEqual SyntaxOf('b')[0:2], 'tex' + AssertNotEqual SyntaxOf('c')[0:2], 'tex' + +Given markdown; +$(0 \le 1)$ + +Execute (math conceal in $): + if has('conceal') + setlocal conceallevel=2 + let g:vim_markdown_math=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1, '$' + AssertEqual synconcealed(1, 2)[0], 0 + AssertEqual synconcealed(1, 3)[0], 0 + AssertEqual synconcealed(1, 4)[0], 0 + AssertEqual synconcealed(1, 5)[0], 1, '\le' + AssertEqual synconcealed(1, 6)[0], 1 + AssertEqual synconcealed(1, 7)[0], 1 + AssertEqual synconcealed(1, 8)[0], 0 + AssertEqual synconcealed(1, 9)[0], 0 + AssertEqual synconcealed(1, 10)[0], 0 + AssertEqual synconcealed(1, 11)[0], 1, '$' + setlocal conceallevel=0 + endif + +Given markdown; +$$ +\omega +0 \le 1 +$$ + +Execute (math conceal in $$): + if has('conceal') + setlocal conceallevel=2 + let g:vim_markdown_math=1 + syn off | syn on + AssertEqual synconcealed(1, 1)[0], 1, '$$' + AssertEqual synconcealed(2, 1)[0], 1, '\omega' + AssertEqual synconcealed(3, 1)[0], 0, '0' + AssertEqual synconcealed(3, 3)[0], 1, '\le' + AssertEqual synconcealed(3, 7)[0], 0, '1' + AssertEqual synconcealed(4, 1)[0], 1, '$$' + setlocal conceallevel=0 + endif + +# YAML frontmatter + +Given markdown; +--- +a: b +--- + +Execute (YAML frontmatter is controlled by the option): + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('a')[0:3], 'yaml' + let g:vim_markdown_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' + +Given markdown; + +--- +a: b +--- + +Execute (YAML frontmatter only works if it's the first thing in the file): + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('a')[0:3], 'yaml' + +Given markdown; +--- +a: b +--- + +--- + +Execute (rules are not mistaken by YAML frontmatter delimiters): + let g:vim_markdown_frontmatter=1 + syn off | syn on + AssertEqual SyntaxAt(5, 1), 'mkdRule' + unlet g:vim_markdown_frontmatter + +# TOML frontmatter + +Given markdown; ++++ +a = "b" ++++ + +Execute (TOML frontmatter is controlled by the option): + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + let g:vim_markdown_toml_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('b'), 'tomlString' + let g:vim_markdown_toml_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + +Given markdown; + ++++ +a = "b" ++++ + +Execute (TOML frontmatter only works if it's the first thing in the file): + let g:vim_markdown_toml_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('b'), 'tomlString' + unlet g:vim_markdown_toml_frontmatter + +# JSON frontmatter + +Given markdown; +{ + "a": "b" +} + +Execute (JSON frontmatter is controlled by the option): + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + let g:vim_markdown_json_frontmatter=1 + syn off | syn on + AssertEqual SyntaxOf('a'), 'jsonKeyword' + let g:vim_markdown_json_frontmatter=0 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + +Given markdown; + +{ + "a": "b" +} + +Execute (JSON frontmatter only works if it's the first thing in the file): + let g:vim_markdown_json_frontmatter=1 + syn off | syn on + AssertNotEqual SyntaxOf('a'), 'jsonKeyword' + unlet g:vim_markdown_json_frontmatter + +# Header + +Given markdown; +# #a +ccc + +## #b +ddd + +Execute (header title starts with #): + AssertEqual SyntaxOf('a'), 'htmlH1' + AssertEqual SyntaxOf('b'), 'htmlH2' + +Given markdown; +# h1 space + +#h1 nospace + +# h1 2 spaces + +# h1 trailing hash # + +## h2 space + +##h2 nospace + +## h2 trailing hash ## + +### h3 space + +###h3 nospace + +### h3 trailing hash ### + +#### h4 + +##### h5 + +###### h6 + +Execute (atx headers): + AssertEqual SyntaxOf(' h1 space'), 'htmlH1' + AssertEqual SyntaxOf('h1 nospace'), 'htmlH1' + AssertEqual SyntaxOf(' h1 2 spaces'), 'htmlH1' + AssertEqual SyntaxOf(' h1 trailing hash '), 'htmlH1' + AssertEqual SyntaxOf(' h2 space'), 'htmlH2' + AssertEqual SyntaxOf('h2 nospace'), 'htmlH2' + AssertEqual SyntaxOf(' h2 trailing hash '), 'htmlH2' + AssertEqual SyntaxOf(' h3 space'), 'htmlH3' + AssertEqual SyntaxOf('h3 nospace'), 'htmlH3' + AssertEqual SyntaxOf(' h3 trailing hash '), 'htmlH3' + AssertEqual SyntaxOf(' h4'), 'htmlH4' + AssertEqual SyntaxOf(' h5'), 'htmlH5' + AssertEqual SyntaxOf(' h6'), 'htmlH6' + +Given markdown; +# h1 before h2 + +## h2 between h1s + +# h1 after h2 + +Execute (atx headers relative positions): + AssertEqual SyntaxOf(' h1 before h2'), 'htmlH1' + AssertEqual SyntaxOf(' h2 between h1s'), 'htmlH2' + AssertEqual SyntaxOf(' h1 after h2'), 'htmlH1' + +Given markdown; +setex h1 +======== + +setex h2 +-------- + +setex h1 single punctuation += + +setex h1 punctuation longer than header +================================ + +Execute (setex headers): + AssertEqual SyntaxOf('setex h1'), 'htmlH1' + AssertEqual SyntaxOf('^========$'), 'htmlH1' + AssertEqual SyntaxOf('setex h2'), 'htmlH2' + AssertEqual SyntaxOf('--------'), 'htmlH2' + AssertEqual SyntaxOf('setex h1 single punctuation'), 'htmlH1' + AssertEqual SyntaxOf('^=$'), 'htmlH1' + AssertEqual SyntaxOf('setex h1 punctuation longer than header'), 'htmlH1' + AssertEqual SyntaxOf('^================================$'), 'htmlH1' + +Given markdown; +- not Setex +- because list + +Execute (prevent list vs Setex confusion): + AssertNotEqual SyntaxOf('- not Setex'), 'htmlH2' + AssertNotEqual SyntaxOf('- becuase list'), 'htmlH2' + +Given markdown; +setex h1 before atx +=================== + +## atx h2 + +### atx h3 + +# atx h1 + +setex h2 +------------------ + +### atx h3 2 + +Execute (mixed atx and setex headers): + AssertEqual SyntaxOf('setex h1 before atx'), 'htmlH1' + AssertEqual SyntaxOf('==================='), 'htmlH1' + AssertEqual SyntaxOf(' atx h2'), 'htmlH2' + AssertEqual SyntaxOf(' atx h3'), 'htmlH3' + AssertEqual SyntaxOf(' atx h1'), 'htmlH1' + AssertEqual SyntaxOf('setex h2'), 'htmlH2' + AssertEqual SyntaxOf('------------------'), 'htmlH2' + +# List + +Given markdown; +- a & b +1. c > d + +Execute (& and > are not marked as htmlError in lists): + AssertEqual SyntaxOf('-'), 'mkdListItem' + AssertEqual SyntaxOf('1.'), 'mkdListItem' + AssertNotEqual SyntaxOf('&'), 'htmlError' + AssertNotEqual SyntaxOf('>'), 'htmlError' + +Given markdown; +1. a +2. b + +Execute (list after line break): + AssertEqual SyntaxOf('1'), 'mkdListItem' + AssertEqual SyntaxOf('2'), 'mkdListItem' + +# HTML + +Given markdown; +a + +

b

+ +- c + +Execute (HTML tag in text): + AssertEqual SyntaxOf('p'), 'htmlTagName' + AssertEqual SyntaxOf('

'), 'htmlTag' + AssertEqual SyntaxOf('

'), 'htmlEndTag' + AssertEqual SyntaxOf('span'), 'htmlTagName' + AssertEqual SyntaxOf(''), 'htmlTag' + AssertEqual SyntaxOf(''), 'htmlEndTag' diff --git a/.vim/bundle/vim-markdown/test/table-format.vader b/.vim/bundle/vim-markdown/test/table-format.vader new file mode 100644 index 0000000..2fc06a3 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/table-format.vader @@ -0,0 +1,44 @@ +Before: + let &gdefault = 1 + +After: + let &gdefault = 0 + +Given markdown; +| normal |no space| 2 spaces || +| - |-| --- || +| normal |no space| 2 spaces || + +Execute (format unformatted table): + TableFormat + +Expect (table is formatted): + | normal | no space | 2 spaces | | + |--------|----------|----------|--| + | normal | no space | 2 spaces | | + +Given markdown; +| a | b | +|---|---| +| c | d | + +Execute (format well formatted table): + TableFormat + +Expect (table is not modified): + | a | b | + |---|---| + | c | d | + +Given markdown; +| left |right| center || +| :- | --: |:---:|:| +| left |right| center || + +Execute (format table with colons): + TableFormat + +Expect (preserve colons to align text): + | left | right | center | | + |:-----|------:|:------:|:--| + | left | right | center | | diff --git a/.vim/bundle/vim-markdown/test/toc-autofit.vader b/.vim/bundle/vim-markdown/test/toc-autofit.vader new file mode 100644 index 0000000..2678997 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/toc-autofit.vader @@ -0,0 +1,53 @@ +" Tests toc window auto-fit to longest header, but without exceeding half screen. + +Given markdown; +# chap 1 + +# chap 2 + +# chap 3 + +# chap 4 + +# chap 5 + +# chap 6 + +# chap 7 + +# chap 8 + +# chap 9 + +# chap 10 + +# chap 11 + +# chap 12 + +## chap 12.1 + +### chap 12.1.1 + +#### chap 12.1.1.1 + +##### chap 12.1.1.1.1 + +###### chap 12.1.1.1.1.1 + +# chap 13 + +Execute (toc window autofit width): + set number + let g:vim_markdown_toc_autofit = 1 + let line = '###### chap 12.1.1.1.1.1' + AssertEqual getline('33'), line + :Toc + let real_width = winwidth(0) + :lclose + let expected_width = len(line) + 2*5 + 1 + 3 - 7 + AssertEqual real_width, expected_width + set nonumber +" 2 spaces * 5 additional header levels + 1 space for first header + +" 3 spaces for line numbers - 7 chars ('###### ') that don't show up on the TOC + diff --git a/.vim/bundle/vim-markdown/test/toc.vader b/.vim/bundle/vim-markdown/test/toc.vader new file mode 100644 index 0000000..5126952 --- /dev/null +++ b/.vim/bundle/vim-markdown/test/toc.vader @@ -0,0 +1,181 @@ +Given markdown; +# a + +Execute (Toc does not set nomodifiable on other files): + " Sanity check. + Assert &modifiable + + :Toc + :lclose + :edit a + + Assert &modifiable + +Given markdown; +header 1 +======== + +test + +header 2 +-------- + +test + +### header 3 + +test + +Execute (Toc setex headers): + :Toc + +Expect (setex headers): + header 1 + header 2 + header 3 + +Given markdown; +# header 1 + +test + +## header 2 + +test + +### header 3 + +test + +Execute (Toc atx headers): + :Toc + +Expect (atx headers): + header 1 + header 2 + header 3 + +Given markdown; +ATX tests. + +# h1 space + +#h1 nospace + +# h1 2 spaces + +# h1 trailing hash # + +## h2 space + +##h2 nospace + +## h2 trailing hash ## + +### h3 space + +###h3 nospace + +### h3 trailing hash ### + +#### h4 + +##### h5 + +###### h6 + +--- + +Relative positions. + +# h1 before h2 + +## h2 between h1s + +# h1 after h2 + +--- + +Setex tests. + +setex h1 +======== + +setex h2 +-------- + +setex h1 single punctuation += + +setex h1 punctuation longer than header +================================ + +Prevent list vs Setex confusion: + +- not Setex +- because list + +--- + +Mixed tests. + +setex h1 before atx +=================== + +## atx h2 + +### atx h3 + +# atx h1 + +setex h2 +------------------ + +### atx h3 2 + +Execute (Toc multiple headers): + :Toc + +Expect (multiple headers): + h1 space + h1 nospace + h1 2 spaces + h1 trailing hash + h2 space + h2 nospace + h2 trailing hash + h3 space + h3 nospace + h3 trailing hash + h4 + h5 + h6 + h1 before h2 + h2 between h1s + h1 after h2 + setex h1 + setex h2 + setex h1 single punctuation + setex h1 punctuation longer than header + setex h1 before atx + atx h2 + atx h3 + atx h1 + setex h2 + atx h3 2 + +Execute: + :lclose + +Given markdown; +# header 1 + +## header 2 + +### header 3 + +Execute (Toc cursor on the current header): + normal! G + :Toc + AssertEqual line('.'), 3 + :lclose diff --git a/.vim/bundle/vim-markdown/test/vimrc b/.vim/bundle/vim-markdown/test/vimrc new file mode 100644 index 0000000..638ab3f --- /dev/null +++ b/.vim/bundle/vim-markdown/test/vimrc @@ -0,0 +1,29 @@ +set nocompatible +set rtp+=../ +set rtp+=../build/tabular/ +set rtp+=../build/vim-toml/ +set rtp+=../build/vim-json/ +set rtp+=../build/vader.vim/ +set rtp-=~/.vim +set rtp-=~/.vim/after +let $LANG='en_US' +filetype on +filetype plugin on +filetype indent on +syntax on + +function! Markdown_GetScriptID(fname) abort + let l:snlist = '' + redir => l:snlist + silent! scriptnames + redir END + let l:mx = '^\s*\(\d\+\):\s*\(.*\)$' + for l:line in split(l:snlist, "\n") + if stridx(substitute(l:line, '\\', '/', 'g'), a:fname) >= 0 + return substitute(l:line, l:mx, '\1', '') + endif + endfor +endfunction +function! Markdown_GetFunc(fname, funcname) abort + return function('' . Markdown_GetScriptID(a:fname) . '_' . a:funcname) +endfunction diff --git a/.vim/bundle/vim-python-pep8-indent/.circleci/config.yml b/.vim/bundle/vim-python-pep8-indent/.circleci/config.yml new file mode 100644 index 0000000..8d54439 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/.circleci/config.yml @@ -0,0 +1,37 @@ +version: 2 + +common: &common + working_directory: ~/repo + docker: + - image: blueyed/vim-python-pep8-indent-vims-for-test:3@sha256:e7e3c4f4b021954a40f2f1d88dc470f119dc65603c63724d1c58cbe437fdc2d4 + +jobs: + test: + <<: *common + steps: + - checkout + - run: + name: Run tests + command: | + spec/make-coverage + - run: + name: Report coverage + command: | + covimerage xml + codecov -X search gcov pycov -f coverage.xml + + checkqa: + <<: *common + steps: + - checkout + - run: + name: Lint + command: | + vint **/*.vim + +workflows: + version: 2 + test: + jobs: + - test + - checkqa diff --git a/.vim/bundle/vim-python-pep8-indent/.coveragerc b/.vim/bundle/vim-python-pep8-indent/.coveragerc new file mode 100644 index 0000000..74cc24e --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/.coveragerc @@ -0,0 +1,7 @@ +[run] +plugins = covimerage +data_file = .coverage_covimerage +source = indent/python.vim + +[report] +include = indent/python.vim diff --git a/.vim/bundle/vim-python-pep8-indent/.dockerignore b/.vim/bundle/vim-python-pep8-indent/.dockerignore new file mode 100644 index 0000000..1a99a79 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/.dockerignore @@ -0,0 +1,2 @@ +* +!Gemfile diff --git a/.vim/bundle/vim-python-pep8-indent/.gitignore b/.vim/bundle/vim-python-pep8-indent/.gitignore new file mode 100644 index 0000000..e8035f6 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/.gitignore @@ -0,0 +1,3 @@ +.*.swp +.coverage_covimerage +Gemfile.lock diff --git a/.vim/bundle/vim-python-pep8-indent/CONTRIBUTING.rst b/.vim/bundle/vim-python-pep8-indent/CONTRIBUTING.rst new file mode 100644 index 0000000..094f20a --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/CONTRIBUTING.rst @@ -0,0 +1,37 @@ +How To Contribute +================= + +``vim-python-pep8-indent`` is always open for suggestions and contributions by generous developers. +I’ve collected a few tips to get you started. + +Please: + +- *Always* add tests for your code. +- Write `good commit messages`_. + + +Running Tests +------------- + +- They are written in Ruby_ (sorry :() using vimrunner_ which requires rspec_. +- The tests go into ``spec/indent/indent_spec.rb``. + Look at the ``describe`` blocks to get the hang of it. +- Run the tests with the command:: + + $ rspec spec +- Alternatively you can use Docker:: + + $ make test_docker + +- You can select tests based on line numbers, e.g.:: + + $ rspec ./spec/indent/indent_spec.rb:385 + $ make test_docker RSPEC_ARGS=./spec/indent/indent_spec.rb:385 + +Thank you for considering to contribute! + + +.. _Ruby: https://www.ruby-lang.org/ +.. _`good commit messages`: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html +.. _vimrunner: https://github.com/AndrewRadev/vimrunner +.. _rspec: https://github.com/rspec/rspec diff --git a/.vim/bundle/vim-python-pep8-indent/COPYING.txt b/.vim/bundle/vim-python-pep8-indent/COPYING.txt new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/COPYING.txt @@ -0,0 +1,121 @@ +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/.vim/bundle/vim-python-pep8-indent/Dockerfile b/.vim/bundle/vim-python-pep8-indent/Dockerfile new file mode 100644 index 0000000..14e39ea --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/Dockerfile @@ -0,0 +1,24 @@ +FROM testbed/vim:latest + +RUN apk --no-cache add gtk+2.0-dev libx11-dev libxt-dev mcookie xauth xvfb +# NOTE: +profile needs huge features. +RUN install_vim -tag v8.1.0129 -name vim --with-features=huge \ + --disable-channel --disable-netbeans --disable-xim \ + --enable-gui=gtk2 --with-x -build +RUN ln -s /vim-build/bin/vim /usr/bin/gvim +RUN gvim --version + +# Install covimerage and vint. +# NOTE: we have py2 already via gtk+2.0-dev. +# NOTE: enum34+pathlib+typing gets installed as workaround for broken vim-vint wheel. +RUN apk --no-cache add py2-pip \ + && pip install --no-cache-dir codecov covimerage==0.0.9 vim-vint enum34 pathlib typing \ + && rm -rf /usr/include /usr/lib/python*/turtle* /usr/lib/python*/tkinter + +WORKDIR /vim-python-pep8-indent + +ADD Gemfile . +RUN apk --no-cache add coreutils ruby-bundler +RUN bundle install + +ENTRYPOINT ["rspec", "spec"] diff --git a/.vim/bundle/vim-python-pep8-indent/Gemfile b/.vim/bundle/vim-python-pep8-indent/Gemfile new file mode 100644 index 0000000..9bbf596 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gem "vimrunner", "0.3.4" +gem "rspec" diff --git a/.vim/bundle/vim-python-pep8-indent/Makefile b/.vim/bundle/vim-python-pep8-indent/Makefile new file mode 100644 index 0000000..2566d41 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/Makefile @@ -0,0 +1,25 @@ +test: + VIMRUNNER_REUSE_SERVER=1 xvfb-run bundle exec rspec + +# Run tests in dockerized Vims. +DOCKER_REPO:=blueyed/vim-python-pep8-indent-vims-for-test +DOCKER_TAG:=3 +DOCKER_IMAGE:=$(DOCKER_REPO):$(DOCKER_TAG) + +docker_image: + docker build -t $(DOCKER_REPO):$(DOCKER_TAG) . +docker_push: + docker push $(DOCKER_REPO):$(DOCKER_TAG) +docker_update_latest: + docker tag $(DOCKER_REPO):$(DOCKER_TAG) $(DOCKER_REPO):latest + docker push $(DOCKER_REPO):latest + +test_docker: XVFB_ERRORFILE:=/dev/null +test_docker: + @set -x; export DISPLAY=$(if $(VIMRUNNER_TEST_DISPLAY),$(VIMRUNNER_TEST_DISPLAY),172.17.0.1:99; Xvfb -ac -listen tcp :99 >$(XVFB_ERRORFILE) 2>&1 & XVFB_PID=$$!); \ + docker run --rm -ti -e DISPLAY -e VIMRUNNER_REUSE_SERVER=1 \ + -v $(CURDIR):/vim-python-pep8-indent $(DOCKER_IMAGE) $(RSPEC_ARGS) \ + $(if $(VIMRUNNER_TEST_DISPLAY),,; ret=$$?; kill $$XVFB_PID; exit $$ret) + +test_coverage: + spec/make-coverage diff --git a/.vim/bundle/vim-python-pep8-indent/README.rst b/.vim/bundle/vim-python-pep8-indent/README.rst new file mode 100644 index 0000000..77be58c --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/README.rst @@ -0,0 +1,169 @@ +vim-python-pep8-indent +====================== + +.. image:: https://circleci.com/gh/Vimjas/vim-python-pep8-indent.svg?style=svg + :target: https://circleci.com/gh/Vimjas/vim-python-pep8-indent +.. image:: https://codecov.io/gh/Vimjas/vim-python-pep8-indent/branch/master/graph/badge.svg + :target: https://codecov.io/gh/Vimjas/vim-python-pep8-indent + +This small script modifies Vim_’s indentation behavior to comply with PEP8_ and my aesthetic preferences. +Most importantly:: + + foobar(foo, + bar) + +and:: + + foobar( + foo, + bar + ) + + +Installation +------------ + +Install the plugin using your favorite plugin manager / method, a few examples +follow: + +Pathogen +^^^^^^^^ + +Follow the instructions on installing Pathogen_ and then: + +.. code-block:: shell-session + + $ cd ~/.vim/bundle + $ git clone https://github.com/Vimjas/vim-python-pep8-indent.git + + +Vundle +^^^^^^ + +Follow the instructions on installing Vundle_ and add the appropriate plugin line into your ``.vimrc``: + +.. code-block:: vim + + Plugin 'Vimjas/vim-python-pep8-indent' + + +NeoBundle +^^^^^^^^^ + +Follow the instructions on installing NeoBundle_ and add the appropriate NeoBundle line into your ``.vimrc``: + +.. code-block:: vim + + NeoBundle 'Vimjas/vim-python-pep8-indent' + + +Configuration +------------- + +g:python_pep8_indent_multiline_string +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +You can configure the initial indentation of multiline strings using ``g:python_pep8_indent_multiline_string`` (which can also be set per buffer). +This defaults to ``0``, which means that multiline strings are not indented. +``-1`` and positive values will be used as-is, where ``-1`` is a special value for Vim's ``indentexpr``, and will keep the existing indent (using Vim's ``autoindent`` setting). +``-2`` is meant to be used for strings that are wrapped with ``textwrap.dedent`` etc. It will add a level of indentation if the multiline string started in the previous line, without any content in it already:: + + testdir.makeconftest(""" + _ + +With content already, it will be aligned to the opening parenthesis:: + + testdir.makeconftest("""def pytest_addoption(parser): + _ + +Existing indentation (including ``0``) in multiline strings will be kept, so this setting only applies to the indentation of new/empty lines. + +g:python_pep8_indent_hang_closing +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Control closing bracket indentation with ``python_pep8_indent_hang_closing``, set globally or per buffer. + +By default (set to ``0``), closing brackets line up with the opening line:: + + my_list = [ + 1, 2, 3, + 4, 5, 6, + ] + result = some_function_that_takes_arguments( + 'a', 'b', 'c', + 'd', 'e', 'f', + ) + +With ``python_pep8_indent_hang_closing = 1``, closing brackets line up with the items:: + + my_list = [ + 1, 2, 3, + 4, 5, 6, + ] + result = some_function_that_takes_arguments( + 'a', 'b', 'c', + 'd', 'e', 'f', + ) + + +Troubleshooting +--------------- + +In case it is not working, please make sure your Vim is configured to load +indent files (``filetype indent on``). +This is typically the case when using a plugin manager, but check its docs. + +Check ``:verbose set indentexpr?`` in a Python file, which should show +something like the following: + + indentexpr=GetPythonPEPIndent(v:lnum) + Last set from ~/…/plugged/vim-python-pep8-indent/indent/python.vim + + +Notes +----- + +Please note that Kirill Klenov’s python-mode_ ships its own version of this bundle. +Therefore, if you want to use this version specifically, you’ll have to disable python-mode’s using: + +.. code-block:: vim + + let g:pymode_indent = 0 + + +License and Authorship +---------------------- + +This script is based on one from Vim’s official `script repo`_ that was *not* originally written by me. +Unfortunately the indentation was off by one character in one case and the script hasn’t been updated since 2005. + +Even more unfortunately, I wasn’t able to reach any of the original authors/maintainers: +**David Bustos** and **Eric Mc Sween**. + +So I fixed the annoyance with the help of `Steve Losh`_ and am putting it out here so you don’t have to patch the original yourself. +The original patch is still available here_. + +Over the time a lot more improvements have been contributed_ by `generous people`_. + +I’d like to thank the original authors here for their work and release it hereby to the *Public Domain* (using the CC0_ licence) since I hope that would be in their spirit. +If anyone with a say in this objects, please let me_ know immediately. +Also, if someone is in contact with one of them, I would appreciate being introduced. + +While my Vimscript_ skills are still feeble, I intend to maintain it for now. +This mainly means that I’ll triage through bugs and pull requests but won’t be fixing much myself. + + +.. _Vim: http://www.vim.org/ +.. _PEP8: http://www.python.org/dev/peps/pep-0008/ +.. _`script repo`: http://www.vim.org/scripts/script.php?script_id=974 +.. _`Steve Losh`: http://stevelosh.com/ +.. _here: https://gist.github.com/2965846 +.. _Neobundle: https://github.com/Shougo/neobundle.vim +.. _Pathogen: https://github.com/tpope/vim-pathogen +.. _python-mode: https://github.com/klen/python-mode +.. _`Vimscript`: http://learnvimscriptthehardway.stevelosh.com/ +.. _vundle: https://github.com/gmarik/Vundle.vim +.. _me: https://hynek.me/ +.. _CC0: http://creativecommons.org/publicdomain/zero/1.0/ +.. _contributed: https://github.com/hynek/vim-python-pep8-indent/blob/master/CONTRIBUTING.rst +.. _`generous people`: https://github.com/hynek/vim-python-pep8-indent/graphs/contributors diff --git a/.vim/bundle/vim-python-pep8-indent/docker-compose.yml b/.vim/bundle/vim-python-pep8-indent/docker-compose.yml new file mode 100644 index 0000000..71760c2 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/docker-compose.yml @@ -0,0 +1,6 @@ +version: '2' +services: + rspec: + build: . + volumes: + - .:/vim-python-pep8-indent diff --git a/.vim/bundle/vim-python-pep8-indent/indent/cython.vim b/.vim/bundle/vim-python-pep8-indent/indent/cython.vim new file mode 120000 index 0000000..4407bc1 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/indent/cython.vim @@ -0,0 +1 @@ +python.vim \ No newline at end of file diff --git a/.vim/bundle/vim-python-pep8-indent/indent/python.vim b/.vim/bundle/vim-python-pep8-indent/indent/python.vim new file mode 100644 index 0000000..047ae3d --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/indent/python.vim @@ -0,0 +1,454 @@ +" PEP8 compatible Python indent file +" Language: Python +" Maintainer: Daniel Hahler +" Prev Maintainer: Hynek Schlawack +" Prev Maintainer: Eric Mc Sween (address invalid) +" Original Author: David Bustos (address invalid) +" License: CC0 +" +" vim-python-pep8-indent - A nicer Python indentation style for vim. +" Written in 2004 by David Bustos +" Maintained from 2004-2005 by Eric Mc Sween +" Maintained from 2013 by Hynek Schlawack +" Maintained from 2017 by Daniel Hahler +" +" To the extent possible under law, the author(s) have dedicated all copyright +" and related and neighboring rights to this software to the public domain +" worldwide. This software is distributed without any warranty. +" You should have received a copy of the CC0 Public Domain Dedication along +" with this software. If not, see +" . + +" Only load this indent file when no other was loaded. +if exists('b:did_indent') + finish +endif +let b:did_indent = 1 + +setlocal nolisp +setlocal autoindent +setlocal indentexpr=GetPythonPEPIndent(v:lnum) +setlocal indentkeys=!^F,o,O,<:>,0),0],0},=elif,=except + +if !exists('g:python_pep8_indent_multiline_string') + let g:python_pep8_indent_multiline_string = 0 +endif + +if !exists('g:python_pep8_indent_hang_closing') + let g:python_pep8_indent_hang_closing = 0 +endif + +" TODO: check required patch for timeout argument, likely lower than 7.3.429 though. +if !exists('g:python_pep8_indent_searchpair_timeout') + if has('patch-8.0.1483') + let g:python_pep8_indent_searchpair_timeout = 150 + else + let g:python_pep8_indent_searchpair_timeout = 0 + endif +endif + +let s:block_rules = { + \ '^\s*elif\>': [['if', 'elif'], ['else']], + \ '^\s*except\>': [['try', 'except'], []], + \ '^\s*finally\>': [['try', 'except', 'else'], []] + \ } +let s:block_rules_multiple = { + \ '^\s*else\>': [['if', 'elif', 'for', 'try', 'except'], []] + \ } +" Pairs to look for when searching for opening parenthesis. +" The value is the maximum offset in lines. +let s:paren_pairs = {'()': 50, '[]': 100, '{}': 1000} + +if &filetype ==# 'pyrex' || &filetype ==# 'cython' + let b:control_statement = '\v^\s*(class|def|if|while|with|for|except|cdef|cpdef)>' +else + let b:control_statement = '\v^\s*(class|def|if|while|with|for|except)>' +endif +let s:stop_statement = '^\s*\(break\|continue\|raise\|return\|pass\)\>' + +let s:skip_after_opening_paren = 'synIDattr(synID(line("."), col("."), 0), "name") ' . + \ '=~? "\\vcomment|jedi\\S"' + +let s:special_chars_syn_pattern = "\\vstring|comment|^pythonbytes%(contents)=$|pythonTodo|jedi\\S" + +if !get(g:, 'python_pep8_indent_skip_concealed', 0) || !has('conceal') + " Skip strings and comments. Return 1 for chars to skip. + " jedi* refers to syntax definitions from jedi-vim for call signatures, which + " are inserted temporarily into the buffer. + function! s:_skip_special_chars(line, col) + return synIDattr(synID(a:line, a:col, 0), 'name') + \ =~? s:special_chars_syn_pattern + endfunction +else + " Also ignore anything concealed. + " TODO: doc; likely only necessary with jedi-vim, where a better version is + " planned (https://github.com/Vimjas/vim-python-pep8-indent/pull/98). + + " Wrapper around synconcealed for older Vim (7.3.429, used on Travis CI). + function! s:is_concealed(line, col) + let concealed = synconcealed(a:line, a:col) + return len(concealed) && concealed[0] + endfunction + + function! s:_skip_special_chars(line, col) + return synIDattr(synID(a:line, a:col, 0), 'name') + \ =~? s:special_chars_syn_pattern + \ || s:is_concealed(a:line, a:col) + endfunction +endif + +" Use 'shiftwidth()' instead of '&sw'. +" (Since Vim patch 7.3.629, 'shiftwidth' can be set to 0 to follow 'tabstop'). +if exists('*shiftwidth') + function! s:sw() + return shiftwidth() + endfunction +else + function! s:sw() + return &shiftwidth + endfunction +endif + +" Find backwards the closest open parenthesis/bracket/brace. +function! s:find_opening_paren(lnum, col) + " Return if cursor is in a comment. + if synIDattr(synID(a:lnum, a:col, 0), 'name') =~? 'comment' + return [0, 0] + endif + + call cursor(a:lnum, a:col) + + let nearest = [0, 0] + let timeout = g:python_pep8_indent_searchpair_timeout + let skip_special_chars = 's:_skip_special_chars(line("."), col("."))' + for [p, maxoff] in items(s:paren_pairs) + let stopline = max([0, line('.') - maxoff, nearest[0]]) + let next = searchpairpos( + \ '\V'.p[0], '', '\V'.p[1], 'bnW', skip_special_chars, stopline, timeout) + if next[0] && (next[0] > nearest[0] || (next[0] == nearest[0] && next[1] > nearest[1])) + let nearest = next + endif + endfor + return nearest +endfunction + +" Find the start of a multi-line statement +function! s:find_start_of_multiline_statement(lnum) + let lnum = a:lnum + while lnum > 0 + if getline(lnum - 1) =~# '\\$' + let lnum = prevnonblank(lnum - 1) + else + let [paren_lnum, _] = s:find_opening_paren(lnum, 1) + if paren_lnum < 1 + return lnum + else + let lnum = paren_lnum + endif + endif + endwhile +endfunction + +" Find possible indent(s) of the block starter that matches the current line. +function! s:find_start_of_block(lnum, types, skip, multiple) abort + let r = [] + let re = '\V\^\s\*\('.join(a:types, '\|').'\)\>' + if !empty(a:skip) + let re_skip = '\V\^\s\*\('.join(a:skip, '\|').'\)\>' + else + let re_skip = '' + endif + let last_indent = indent(a:lnum) + 1 + let lnum = a:lnum - 1 + while lnum > 0 && last_indent > 0 + let indent = indent(lnum) + if indent < last_indent + let line = getline(lnum) + if !empty(re_skip) && line =~# re_skip + let last_indent = indent + elseif line =~# re + if !a:multiple + return [indent] + endif + if index(r, indent) == -1 + let r += [indent] + endif + let last_indent = indent + endif + endif + let lnum = prevnonblank(lnum - 1) + endwhile + return r +endfunction + +" Is "expr" true for every position in "lnum", beginning at "start"? +" (optionally up to a:1 / 4th argument) +function! s:match_expr_on_line(expr, lnum, start, ...) + let text = getline(a:lnum) + let end = a:0 ? a:1 : len(text) + if a:start > end + return 1 + endif + let save_pos = getpos('.') + let r = 1 + for i in range(a:start, end) + call cursor(a:lnum, i) + if !(eval(a:expr) || text[i-1] =~# '\s') + let r = 0 + break + endif + endfor + call setpos('.', save_pos) + return r +endfunction + +" Line up with open parenthesis/bracket/brace. +function! s:indent_like_opening_paren(lnum) + let [paren_lnum, paren_col] = s:find_opening_paren(a:lnum, 1) + if paren_lnum <= 0 + return -2 + endif + let text = getline(paren_lnum) + let base = indent(paren_lnum) + + let nothing_after_opening_paren = s:match_expr_on_line( + \ s:skip_after_opening_paren, paren_lnum, paren_col+1) + let starts_with_closing_paren = getline(a:lnum) =~# '^\s*[])}]' + + let hang_closing = get(b:, 'python_pep8_indent_hang_closing', + \ get(g:, 'python_pep8_indent_hang_closing', 0)) + + if nothing_after_opening_paren + if starts_with_closing_paren && !hang_closing + let res = base + else + let res = base + s:sw() + + " Special case for parenthesis. + if text[paren_col-1] ==# '(' && getline(a:lnum) !~# '\v\)\s*:?\s*$' + return res + endif + endif + else + " Indent to match position of opening paren. + let res = paren_col + endif + + " If this line is the continuation of a control statement + " indent further to distinguish the continuation line + " from the next logical line. + if text =~# b:control_statement && res == base + s:sw() + " But only if not inside parens itself (Flake's E127). + let [paren_lnum, _] = s:find_opening_paren(paren_lnum, 1) + if paren_lnum <= 0 + return res + s:sw() + endif + endif + return res +endfunction + +" Match indent of first block of this type. +function! s:indent_like_block(lnum) + let text = getline(a:lnum) + for [multiple, block_rules] in [ + \ [0, s:block_rules], + \ [1, s:block_rules_multiple], + \ ] + for [line_re, blocks_ignore] in items(block_rules) + if text !~# line_re + continue + endif + + let [blocks, skip] = blocks_ignore + let indents = s:find_start_of_block(a:lnum, blocks, skip, multiple) + if empty(indents) + return -1 + endif + if len(indents) == 1 + return indents[0] + endif + + " Multiple valid indents, e.g. for 'else' with both try and if. + let indent = indent(a:lnum) + if index(indents, indent) != -1 + " The indent is valid, keep it. + return indent + endif + " Fallback to the first/nearest one. + return indents[0] + endfor + endfor + return -2 +endfunction + +function! s:indent_like_previous_line(lnum) + let lnum = prevnonblank(a:lnum - 1) + + " No previous line, keep current indent. + if lnum < 1 + return -1 + endif + + let text = getline(lnum) + let start = s:find_start_of_multiline_statement(lnum) + let base = indent(start) + let current = indent(a:lnum) + + " Ignore last character in previous line? + let lastcol = len(text) + let col = lastcol + + " Search for final colon that is not inside something to be ignored. + while 1 + if col == 1 | break | endif + if text[col-1] =~# '\s' || s:_skip_special_chars(lnum, col) + let col = col - 1 + continue + elseif text[col-1] ==# ':' + return base + s:sw() + endif + break + endwhile + + if text =~# '\\$' && !s:_skip_special_chars(lnum, lastcol) + " If this line is the continuation of a control statement + " indent further to distinguish the continuation line + " from the next logical line. + if getline(start) =~# b:control_statement + return base + s:sw() * 2 + endif + + " Nest (other) explicit continuations only one level deeper. + return base + s:sw() + endif + + let empty = getline(a:lnum) =~# '^\s*$' + + " Current and prev line are empty, next is not -> indent like next. + if empty && a:lnum > 1 && + \ (getline(a:lnum - 1) =~# '^\s*$') && + \ !(getline(a:lnum + 1) =~# '^\s*$') + return indent(a:lnum + 1) + endif + + " If the previous statement was a stop-execution statement or a pass + if getline(start) =~# s:stop_statement + " Remove one level of indentation if the user hasn't already dedented + if empty || current > base - s:sw() + return base - s:sw() + endif + " Otherwise, trust the user + return -1 + endif + + if (current || !empty) && s:is_dedented_already(current, base) + return -1 + endif + + " In all other cases, line up with the start of the previous statement. + return base +endfunction + +" If this line is dedented and the number of indent spaces is valid +" (multiple of the indentation size), trust the user. +function! s:is_dedented_already(current, base) + let dedent_size = a:current - a:base + return (dedent_size < 0 && a:current % s:sw() == 0) ? 1 : 0 +endfunction + +" Is the syntax at lnum (and optionally cnum) a python string? +function! s:is_python_string(lnum, ...) + let line = getline(a:lnum) + if a:0 + let cols = type(a:1) != type([]) ? [a:1] : a:1 + else + let cols = range(1, max([1, len(line)])) + endif + for cnum in cols + if match(map(synstack(a:lnum, cnum), + \ "synIDattr(v:val, 'name')"), 'python\S*String') == -1 + return 0 + end + endfor + return 1 +endfunction + +function! GetPythonPEPIndent(lnum) + " First line has indent 0 + if a:lnum == 1 + return 0 + endif + + let line = getline(a:lnum) + let prevline = getline(a:lnum-1) + + " Multilinestrings: continous, docstring or starting. + if s:is_python_string(a:lnum-1, max([1, len(prevline)])) + \ && (s:is_python_string(a:lnum, 1) + \ || match(line, '^\%("""\|''''''\)') != -1) + + " Indent closing quotes as the line with the opening ones. + let match_quotes = match(line, '^\s*\zs\%("""\|''''''\)') + if match_quotes != -1 + " closing multiline string + let quotes = line[match_quotes:(match_quotes+2)] + call cursor(a:lnum, 1) + let pairpos = searchpairpos(quotes, '', quotes, 'bW', '', 0, g:python_pep8_indent_searchpair_timeout) + if pairpos[0] != 0 + return indent(pairpos[0]) + else + return -1 + endif + endif + + if s:is_python_string(a:lnum-1) + " Previous line is (completely) a string: keep current indent. + return -1 + endif + + if match(prevline, '^\s*\%("""\|''''''\)') != -1 + " docstring. + return indent(a:lnum-1) + endif + + let indent_multi = get(b:, 'python_pep8_indent_multiline_string', + \ get(g:, 'python_pep8_indent_multiline_string', 0)) + if match(prevline, '\v%("""|'''''')$') != -1 + " Opening multiline string, started in previous line. + if (&autoindent && indent(a:lnum) == indent(a:lnum-1)) + \ || match(line, '\v^\s+$') != -1 + " with empty line or to split up 'foo("""bar' into + " 'foo("""' and 'bar'. + if indent_multi == -2 + return indent(a:lnum-1) + s:sw() + endif + return indent_multi + endif + endif + + " Keep existing indent. + if match(line, '\v^\s*\S') != -1 + return -1 + endif + + if indent_multi != -2 + return indent_multi + endif + + return s:indent_like_opening_paren(a:lnum) + endif + + " Parens: If we can find an open parenthesis/bracket/brace, line up with it. + let indent = s:indent_like_opening_paren(a:lnum) + if indent >= -1 + return indent + endif + + " Blocks: Match indent of first block of this type. + let indent = s:indent_like_block(a:lnum) + if indent >= -1 + return indent + endif + + return s:indent_like_previous_line(a:lnum) +endfunction diff --git a/.vim/bundle/vim-python-pep8-indent/spec/indent/bytes_spec.rb b/.vim/bundle/vim-python-pep8-indent/spec/indent/bytes_spec.rb new file mode 100644 index 0000000..3d6744e --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/indent/bytes_spec.rb @@ -0,0 +1,36 @@ +require "spec_helper" + +describe "handles byte strings" do + before(:all) { + vim.command 'syn region pythonBytes start=+[bB]"+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end=+$+ keepend contains=pythonBytesError,pythonBytesContent,@Spell' + vim.command "syn match pythonBytesEscape '\\\\$'" + } + + before(:each) { + # clear buffer + vim.normal 'gg"_dG' + + # Insert two blank lines. + # The first line is a corner case in this plugin that would shadow the + # correct behaviour of other tests. Thus we explicitly jump to the first + # line when we require so. + vim.feedkeys 'i\\\' + } + + it "it does not indent to bracket in byte string" do + vim.feedkeys 'ireg = b"["\' + vim.echo('map(synstack(line("."), col(".")), "synIDattr(v:val, \"name\")")' + ).should == "['pythonBytes']" + vim.feedkeys 'o' + indent.should == 0 + end + + it "it indents backslash continuation correctly" do + vim.feedkeys 'iwith foo, \\' + vim.echo('getline(".")').should == "with foo, \\" + vim.echo('map(synstack(line("."), col(".")), "synIDattr(v:val, \"name\")")' + ).should == "['pythonBytesEscape']" + vim.feedkeys 'o' + indent.should == 8 + end +end diff --git a/.vim/bundle/vim-python-pep8-indent/spec/indent/cython_spec.rb b/.vim/bundle/vim-python-pep8-indent/spec/indent/cython_spec.rb new file mode 100644 index 0000000..03dcbb2 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/indent/cython_spec.rb @@ -0,0 +1,36 @@ +require "spec_helper" + +describe "vim for cython" do + before(:all) { + vim.command "new" + vim.command "set ft=cython" + vim.command("set indentexpr?").should include "GetPythonPEPIndent(" + } + before(:each) { + # clear buffer + vim.normal 'gg"_dG' + + # Insert two blank lines. + # The first line is a corner case in this plugin that would shadow the + # correct behaviour of other tests. Thus we explicitly jump to the first + # line when we require so. + vim.feedkeys 'i\\\' + } + after(:all) { + vim.command "bwipe!" + } + + describe "when using a cdef function definition" do + it "indents shiftwidth spaces" do + vim.feedkeys 'icdef long_function_name(\arg' + indent.should == shiftwidth + end + end + + describe "when using a cpdef function definition" do + it "indents shiftwidth spaces" do + vim.feedkeys 'icpdef long_function_name(\arg' + indent.should == shiftwidth + end + end +end diff --git a/.vim/bundle/vim-python-pep8-indent/spec/indent/indent_spec.rb b/.vim/bundle/vim-python-pep8-indent/spec/indent/indent_spec.rb new file mode 100644 index 0000000..745e939 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/indent/indent_spec.rb @@ -0,0 +1,796 @@ +require "spec_helper" + +shared_examples_for "vim" do + before(:each) { + # clear buffer + vim.normal 'gg"_dG' + + # Insert two blank lines. + # The first line is a corner case in this plugin that would shadow the + # correct behaviour of other tests. Thus we explicitly jump to the first + # line when we require so. + vim.feedkeys 'i\\\' + } + + describe "when using the indent plugin" do + it "sets the indentexpr and indentkeys options" do + vim.command("set indentexpr?").should include "GetPythonPEPIndent(" + vim.command("set indentkeys?").should include "=elif" + end + + it "sets autoindent and expandtab" do + vim.command("set autoindent?").should match(/\s*autoindent/) + vim.command("set expandtab?").should match(/\s*expandtab/) + end + end + + describe "when entering the first line" do + before { vim.feedkeys '0ggipass' } + + it "does not indent" do + indent.should == 0 + proposed_indent.should == 0 + end + + it "does not indent when using '=='" do + vim.normal "==" + indent.should == 0 + end + end + + describe "when after a '(' that is at the end of its line" do + before { vim.feedkeys 'itest(\' } + + it "indents by one level" do + proposed_indent.should == shiftwidth + vim.feedkeys 'something' + indent.should == shiftwidth + vim.normal '==' + indent.should == shiftwidth + end + + it "puts the closing parenthesis at the same level" do + vim.feedkeys ')' + indent.should == (hang_closing ? shiftwidth : 0) + end + end + + describe "when after an '(' that is followed by something" do + before { vim.feedkeys 'itest(something,\' } + + it "lines up on following lines" do + indent.should == 5 + vim.feedkeys 'more,\' + indent.should == 5 + end + + it "lines up the closing parenthesis" do + vim.feedkeys ')' + indent.should == 5 + end + + it "does not touch the closing parenthesis if it is already indented further" do + vim.feedkeys ' )' + indent.should == 7 + end + end + + describe "when after an '{' that is followed by a comment" do + before { vim.feedkeys 'imydict = { # comment\' } + + it "indent by one level" do + indent.should == shiftwidth + vim.feedkeys '1: 1,\' + indent.should == shiftwidth + end + + it "lines up the closing parenthesis" do + vim.feedkeys '}' + indent.should == (hang_closing ? shiftwidth : 0) + end + end + + describe "when using gq to reindent a '(' that is" do + before { vim.feedkeys 'itest(' } + it "something and has a string without spaces at the end" do + vim.feedkeys 'something_very_long_blaaaaaaaaa, "some_very_long_string_blaaaaaaaaaaaaaaaaaaaa"\gqq' + indent.should == 5 + end + end + + describe "when after multiple parens of different types" do + it "indents by one level" do + vim.feedkeys 'if({\' + indent.should == shiftwidth + end + + it "lines up with the last paren" do + vim.feedkeys 'ifff({123: 456,\' + indent.should == 5 + end + end + + describe "when '#' is contained in a string that is followed by a colon" do + it "indents by one level" do + vim.feedkeys 'iif "some#thing" == "test":#test\pass' + indent.should == shiftwidth + end + end + + describe "when '#' is not contained in a string and is followed by a colon" do + it "does not indent" do + vim.feedkeys 'iif "some#thing" == "test"#:test\' + indent.should == 0 + end + end + + describe "when inside an unfinished string" do + it "does not indent" do + vim.feedkeys 'i"test:\' + vim.echo('synIDattr(synID(line("."), col("."), 0), "name")' + ).downcase.should include 'string' + vim.feedkeys 'a\' + proposed_indent.should == -1 + indent.should == 0 + end + + it "does not dedent" do + vim.feedkeys 'iif True:\"test:\' + vim.echo('synIDattr(synID(line("."), col("."), 0), "name")' + ).downcase.should include 'string' + proposed_indent.should == shiftwidth + indent.should == shiftwidth + end + end + + describe "when the previous line has a colon in a string" do + before { vim.feedkeys 'itest(":".join(["1","2"]))\' } + it "does not indent" do + vim.feedkeys 'if True:' + indent.should == 0 + proposed_indent.should == 0 + end + end + + describe "when the previous line has a list slice" do + it "does not indent" do + vim.feedkeys 'ib = a[2:]\' + indent.should == 0 + proposed_indent.should == 0 + end + end + + describe "when line is empty inside a block" do + it "is indented like the previous line" do + vim.feedkeys 'idef a():\1\\2\kcc' + indent.should == shiftwidth + end + end + + describe "when an empty line is after empty line / before non-empty" do + it "is indented like the next line" do + vim.feedkeys 'idef a():\1\\\2\<1\\\\0i\2\kcc' + indent.should == shiftwidth + end + end + + describe "when line is empty inside a block following multi-line statement" do + it "is indented like the previous line" do + vim.feedkeys 'idef a():\x = (1 +\2)\\y\kcc' + indent.should == shiftwidth + end + end + + describe "when line is empty inside a block following stop statement" do + it "is indented like the previous line minus shiftwidth" do + vim.feedkeys 'iif x:\if y:\pass\\z\kcc' + indent.should == shiftwidth + end + end + + describe "when using simple control structures" do + it "indents shiftwidth spaces" do + vim.feedkeys 'iwhile True:\pass' + indent.should == shiftwidth + end + end + + describe "when using a function definition" do + it "handles indent with closing parenthesis on same line" do + vim.feedkeys 'idef long_function_name(\arg' + indent.should == shiftwidth + vim.feedkeys '):' + indent.should == shiftwidth * 2 + end + + it "handles indent with closing parenthesis on new line" do + vim.feedkeys 'idef long_function_name(\arg' + indent.should == shiftwidth + vim.feedkeys '\' + indent.should == shiftwidth + vim.feedkeys ')' + indent.should == (hang_closing ? shiftwidth * 2 : 0) + vim.feedkeys ':' + indent.should == (hang_closing ? shiftwidth * 2 : 0) + vim.feedkeys '\k' + indent.should == shiftwidth + end + end + + describe "when using a class definition" do + it "indents shiftwidth spaces" do + vim.feedkeys 'iclass Foo(\' + indent.should == shiftwidth + end + end + + describe "when writing an 'else' block" do + it "aligns to the preceeding 'for' block" do + vim.feedkeys 'ifor x in "abc":\pass\else:' + indent.should == 0 + end + + it "aligns to the preceeding 'if' block" do + vim.feedkeys 'ifor x in "abc":\if True:\pass\else:' + indent.should == shiftwidth + end + end + + describe "when using parens and control statements" do + it "avoids ambiguity by using extra indentation" do + vim.feedkeys 'iif (111 and\' + if shiftwidth == 4 + indent.should == shiftwidth * 2 + else + indent.should == 4 + end + vim.feedkeys '222):\' + indent.should == shiftwidth + vim.feedkeys 'pass\' + indent.should == 0 + end + + it "still aligns parens properly if not ambiguous" do + vim.feedkeys 'iwhile (111 and\' + indent.should == 7 + vim.feedkeys '222):\' + indent.should == shiftwidth + vim.feedkeys 'pass\' + indent.should == 0 + end + + it "handles nested expressions (Flake8's E127)" do + vim.feedkeys 'i[\x for x in foo\if (\' + indent.should == shiftwidth * 2 + end + + it "still handles multiple parens correctly" do + vim.feedkeys 'iif (111 and (222 and 333\' + indent.should == 13 + vim.feedkeys 'and 444\' + indent.should == 13 + vim.feedkeys ')\' + if shiftwidth == 4 + indent.should == shiftwidth * 2 + else + indent.should == 4 + end + vim.feedkeys 'and 555):\' + indent.should == shiftwidth + vim.feedkeys 'pass\' + indent.should == 0 + end + end + + describe "when a line breaks with a manual '\\'" do + it "indents shiftwidth spaces on normal line" do + vim.feedkeys 'ivalue = test + \\\\\' + indent.should == shiftwidth + end + + it "indents 2x shiftwidth spaces for control structures" do + vim.feedkeys 'iif somevalue == xyz and \\\\\' + indent.should == shiftwidth * 2 + end + + it "indents relative to line above" do + vim.feedkeys 'i\value = test + \\\\\' + indent.should == shiftwidth * 2 + end + end + + describe "when current line is dedented compared to previous line" do + before { vim.feedkeys 'i\\if x:\y = True\\' } + it "and current line has a valid indentation (Part 1)" do + vim.feedkeys '0i\if y:' + proposed_indent.should == -1 + end + + it "and current line has a valid indentation (Part 2)" do + vim.feedkeys '0i\\if y:' + proposed_indent.should == -1 + end + + it "and current line has an invalid indentation" do + vim.feedkeys 'i while True:\' + indent.should == previous_indent + shiftwidth + end + end + + describe "when current line is dedented compared to the last non-empty line" do + before { vim.feedkeys 'i\\if x:\y = True\\\' } + it "and current line has a valid indentation" do + vim.feedkeys '0i\if y:' + proposed_indent.should == -1 + end + end + + describe "when an 'if' is followed by" do + before { vim.feedkeys 'i\\if x:\' } + it "an elif, it lines up with the 'if'" do + vim.feedkeys 'elif y:' + indent.should == shiftwidth * 2 + end + + it "an 'else', it lines up with the 'if'" do + vim.feedkeys 'else:' + indent.should == shiftwidth * 2 + end + end + + describe "when an 'if' contains a try-except" do + before { + vim.feedkeys 'iif x:\try:\pass\except:\pass\' + indent.should == shiftwidth + } + it "an 'else' should be indented to the try" do + vim.feedkeys 'else:' + indent.should == shiftwidth + proposed_indent.should == shiftwidth + end + it "an 'else' should keep the indent of the 'if'" do + vim.feedkeys 'else:\<<' + indent.should == 0 + proposed_indent.should == 0 + end + end + + describe "when a 'for' is followed by" do + before { vim.feedkeys 'i\\for x in y:\' } + it "an 'else', it lines up with the 'for'" do + vim.feedkeys 'else:' + indent.should == shiftwidth * 2 + end + end + + describe "when an 'else' is followed by" do + before { vim.feedkeys 'i\\else:\XXX\' } + it "a 'finally', it lines up with the 'else'" do + vim.feedkeys 'finally:' + indent.should == shiftwidth * 2 + end + end + + + describe "when a 'try' is followed by" do + before { vim.feedkeys 'i\\try:\' } + it "an 'except', it lines up with the 'try'" do + vim.feedkeys 'except:' + indent.should == shiftwidth * 2 + end + + it "an 'else', it lines up with the 'try'" do + vim.feedkeys 'else:' + indent.should == shiftwidth * 2 + end + + it "a 'finally', it lines up with the 'try'" do + vim.feedkeys 'finally:' + indent.should == shiftwidth * 2 + end + end + + describe "when an 'except' is followed by" do + before { vim.feedkeys 'i\\except:\' } + it "an 'else', it lines up with the 'except'" do + vim.feedkeys 'else:' + indent.should == shiftwidth * 2 + end + + it "another 'except', it lines up with the previous 'except'" do + vim.feedkeys 'except:' + indent.should == shiftwidth * 2 + end + + it "a 'finally', it lines up with the 'except'" do + vim.feedkeys 'finally:' + indent.should == shiftwidth * 2 + end + end + + describe "when an else is used inside of a nested if" do + before { vim.feedkeys 'iif foo:\if bar:\pass\' } + it "indents the else to the inner if" do + vim.feedkeys 'else:' + indent.should == shiftwidth + end + end + + describe "when an else is used outside of a nested if" do + before { vim.feedkeys 'iif True:\if True:\pass\\0' } + it "indents the else to the outer if" do + indent.should == 0 + proposed_indent.should == shiftwidth + + vim.feedkeys 'ielse:' + indent.should == 0 + proposed_indent.should == 0 + end + end + + describe "when jedi-vim call signatures are used" do + before { vim.command 'syn match jediFunction "JEDI_CALL_SIGNATURE" keepend extend' } + + it "ignores the call signature after a colon" do + vim.feedkeys 'iif True: JEDI_CALL_SIGNATURE\' + indent.should == shiftwidth + end + + it "ignores the call signature after a function" do + vim.feedkeys 'idef f( JEDI_CALL_SIGNATURE\' + indent.should == shiftwidth + end + end +end + +shared_examples_for "multiline strings" do + before(:each) { + # clear buffer + vim.normal 'gg"_dG' + + # Insert two blank lines. + # The first line is a corner case in this plugin that would shadow the + # correct behaviour of other tests. Thus we explicitly jump to the first + # line when we require so. + vim.feedkeys 'i\\\' + } + + describe "when after an '(' that is followed by an unfinished string" do + before { vim.feedkeys 'itest("""' } + + it "it indents the next line" do + vim.feedkeys '\' + expected_proposed, expected_indent = multiline_indent(0, shiftwidth) + proposed_indent.should == expected_proposed + indent.should == expected_indent + end + + it "with contents it indents the second line to the parenthesis" do + vim.feedkeys 'second line\' + expected_proposed, expected_indent = multiline_indent(0, 5) + proposed_indent.should == expected_proposed + indent.should == expected_indent + end + end + + describe "when after assigning an unfinished string" do + before { vim.feedkeys 'itest = """' } + + it "it indents the next line" do + vim.feedkeys '\' + expected_proposed, expected_indent = multiline_indent(0, shiftwidth) + proposed_indent.should == expected_proposed + indent.should == expected_indent + end + end + + describe "when after assigning an indented unfinished string" do + before { vim.feedkeys 'i test = """' } + + it "it indents the next line" do + vim.feedkeys '\' + expected_proposed, expected_indent = multiline_indent(4, shiftwidth + 4) + proposed_indent.should == expected_proposed + indent.should == expected_indent + end + end + + describe "when after assigning an indented finished string" do + before { vim.feedkeys 'i test = ""' } + + it "it does indent the next line" do + vim.feedkeys '\' + indent.should == 4 + end + + it "and writing a new string, it does indent the next line" do + vim.feedkeys '\""' + indent.should == 4 + end + end + + describe "when after a docstring" do + it "it does indent the next line to the docstring" do + vim.feedkeys 'i """\' + indent.should == 4 + proposed_indent.should == 4 + end + + it "indents the closing docstring quotes" do + vim.feedkeys 'i """\\"""' + indent.should == 4 + proposed_indent.should == 4 + vim.echo('getline(3)').should == ' """' + end + + it "indents non-matching docstring quotes" do + vim.feedkeys 'i """\\' + vim.feedkeys "0C'''" + vim.echo('line(".")').should == "4" + vim.echo('getline(".")').should == "'''" + indent.should == 0 + proposed_indent.should == -1 + end + end + + describe "when after a docstring with contents" do + before { vim.feedkeys 'i """First line' } + it "it does indent the next line to the docstring" do + vim.feedkeys '\' + indent.should == 4 + proposed_indent.should == 4 + end + end + + describe "when breaking a string after opening parenthesis" do + before { vim.feedkeys 'i foo("""bar\\\' } + it "it does indent the next line as after an opening multistring" do + vim.feedkeys '\' + _, expected_indent = multiline_indent(4, 4 + shiftwidth) + indent.should == expected_indent + proposed_indent.should == -1 + + # it keeps the indent after an empty line + vim.feedkeys '\' + proposed_indent, expected_indent = multiline_indent(4, 4 + shiftwidth) + indent.should == expected_indent + proposed_indent.should == proposed_indent + + # it keeps the indent of nonblank above + vim.feedkeys '\\' + proposed_indent, expected_indent = multiline_indent(4, 4 + shiftwidth) + indent.should == expected_indent + proposed_indent.should == proposed_indent + + # it keeps the indent of nonblank above before an empty line + vim.feedkeys '\' + proposed_indent, expected_indent = multiline_indent(4, 4 + shiftwidth) + indent.should == expected_indent + proposed_indent.should == proposed_indent + end + end +end + +SUITE_SHIFTWIDTHS = [4, 3] +SUITE_HANG_CLOSINGS = [false, true] + +SUITE_SHIFTWIDTHS.each do |sw| + describe "vim when using width of #{sw}" do + before { + vim.command("set sw=#{sw} ts=#{sw} sts=#{sw} et") + } + it "sets shiftwidth to #{sw}" do + shiftwidth.should == sw + end + + SUITE_HANG_CLOSINGS.each do |hc| + describe "vim when hang_closing is set to #{hc}" do + before { + set_hang_closing hc + } + it "sets hang_closing to #{hc}" do + hang_closing.should == !!hc + end + + it_behaves_like "vim" + end + end + end +end + +describe "vim when not using python_pep8_indent_multiline_string" do + before { + vim.command("set sw=4 ts=4 sts=4 et") + vim.command("unlet! g:python_pep8_indent_multiline_string") + } + it_behaves_like "multiline strings" +end + +describe "vim when using python_pep8_indent_multiline_first=0" do + before { + vim.command("set sw=4 ts=4 sts=4 et") + vim.command("let g:python_pep8_indent_multiline_string=0") + } + it_behaves_like "multiline strings" +end + +describe "vim when using python_pep8_indent_multiline_string=-1" do + before { + vim.command("set sw=4 ts=4 sts=4 et") + vim.command("let g:python_pep8_indent_multiline_string=-1") + } + it_behaves_like "multiline strings" +end + +describe "vim when using python_pep8_indent_multiline_string=-2" do + before { + vim.command("set sw=4 ts=4 sts=4 et") + vim.command("let g:python_pep8_indent_multiline_string=-2") + } + it_behaves_like "multiline strings" +end + +describe "Handles far away opening parens" do + before { vim.feedkeys '\ggdGifrom foo import (' } + + it "indents by one level" do + vim.feedkeys '\' + proposed_indent.should == shiftwidth + end + + it "indents by one level for 10 lines" do + vim.command('set paste | exe "norm 9o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end + + it "indents by one level for 50 lines" do + vim.command('set paste | exe "norm 49o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end +end + +describe "Handles far away opening square brackets" do + before { vim.feedkeys '\ggdGibar = [' } + + it "indents by one level" do + vim.feedkeys '\' + proposed_indent.should == shiftwidth + end + + it "indents by one level for 10 lines" do + vim.command('set paste | exe "norm 9o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end + + it "indents by one level for 100 lines" do + vim.command('set paste | exe "norm 99o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end +end + +describe "Handles far away opening curly brackets" do + before { vim.feedkeys '\ggdGijson = {' } + + it "indents by one level" do + vim.feedkeys '\' + vim.feedkeys '\o' + proposed_indent.should == shiftwidth + end + + it "indents by one level for 10 lines" do + vim.command('set paste | exe "norm 9o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end + + it "indents by one level for 1000 lines" do + vim.command('set paste | exe "norm 999o" | set nopaste') + vim.feedkeys '\o' + indent.should == shiftwidth + end +end + +describe "Compact multiline dict" do + before { vim.feedkeys '\ggdGid = {"one": 1,' } + + it "gets indented correctly" do + vim.feedkeys '\' + proposed_indent.should == 5 + + vim.feedkeys '"two": 2}' + proposed_indent.should == 5 + + vim.feedkeys '\' + proposed_indent.should == 0 + end +end + +describe "Using O" do + before { + vim.feedkeys '\ggdG' + vim.feedkeys 'iif foo:\' + } + + it "respects autoindent" do + vim.feedkeys '1\\' + indent.should == shiftwidth + vim.feedkeys '\ko' + indent.should == shiftwidth + vim.feedkeys '\kO' + indent.should == shiftwidth + # Uses/keeps indent from line above + vim.feedkeys '\i2\O' + indent.should == shiftwidth + # Uses/keeps indent from line above + vim.feedkeys '\j\O' + indent.should == 0 + end +end + +describe "searchpairpos" do + before { vim.feedkeys '\ggdG' } + it "handles nested parenthesis" do + vim.feedkeys 'iif foo.startswith("("):\' + indent.should == shiftwidth + end +end + +describe "o within TODO" do + before { + vim.feedkeys '\ggdG' + vim.feedkeys 'iif 1: # TODO\' + # Assertion that we have a pythonTodo here. + vim.echo('synIDattr(synID(line("."), col("."), 0), "name")').should match 'pythonTodo' + } + + it "respects autoindent" do + vim.feedkeys 'o' + indent.should == shiftwidth + end +end + +describe "elif after else" do + before { + vim.feedkeys '\ggdG' + } + + it "is indented to the outer if" do + vim.feedkeys 'iif 1:\if 2:\pass\else:\pass\elif 3:\' + indent.should == 0 + + vim.feedkeys '\ggdG' + vim.feedkeys 'i if 1:\if 2:\pass\else:\pass\elif 3:\' + indent.should == 4 + end +end + +describe "elif after two ifs" do + before { + vim.feedkeys '\ggdG' + } + + it "keeps its indent to the outer if" do + vim.feedkeys 'iif 1:\if 2:\pass\elif 3:\pass\' + indent.should == 4 + vim.feedkeys '\' + indent.should == 0 + proposed_indent.should == shiftwidth + vim.feedkeys 'ielif 4:' + indent.should == 0 + proposed_indent.should == 0 + vim.feedkeys '\' + indent.should == 4 + proposed_indent.should == 4 + end +end diff --git a/.vim/bundle/vim-python-pep8-indent/spec/make-coverage b/.vim/bundle/vim-python-pep8-indent/spec/make-coverage new file mode 100755 index 0000000..f425496 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/make-coverage @@ -0,0 +1,24 @@ +#!/bin/sh + +set -ex + +rm -f .coverage_covimerage +export PYTHON_PEP8_INDENT_TEST_PROFILE_BASE=/tmp/vim-python-pep8-profile + +Xvfb :99 2>/dev/null >&2 & +export DISPLAY=:99 + +export VIMRUNNER_REUSE_SERVER=1 + +ret=0 +for file in ./spec/indent/*_spec.rb; do + # shellcheck disable=SC2086 + bundle exec rspec "$file" $RSPEC_OPTIONS || ret=1 + + for p in "${PYTHON_PEP8_INDENT_TEST_PROFILE_BASE}".*; do + covimerage write_coverage --append "$p" + rm "$p" + covimerage report -m + done +done +exit $ret diff --git a/.vim/bundle/vim-python-pep8-indent/spec/spec_helper.rb b/.vim/bundle/vim-python-pep8-indent/spec/spec_helper.rb new file mode 100644 index 0000000..c6cc517 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/spec_helper.rb @@ -0,0 +1,70 @@ +require 'vimrunner' +require 'vimrunner/rspec' +require 'vimrunner/server' + +# Explicitly enable usage of "should". +RSpec.configure do |config| + config.expect_with(:rspec) { |c| c.syntax = :should } +end + +Vimrunner::RSpec.configure do |config| + # Use a single Vim instance for the test suite. Set to false to use an + # instance per test (slower, but can be easier to manage). + # This requires using gvim, otherwise it hangs after a few tests. + config.reuse_server = ENV['VIMRUNNER_REUSE_SERVER'] == '1' ? true : false + + config.start_vim do + exe = config.reuse_server ? Vimrunner::Platform.gvim : Vimrunner::Platform.vim + vimrc = File.expand_path("../vimrc", __FILE__) + vim = Vimrunner::Server.new(:executable => exe, + :vimrc => vimrc).start + # More friendly killing. + # Otherwise profiling information might not be written. + def vim.kill + normal(':qall!') + + Timeout.timeout(5) do + sleep 0.1 while server.running? + end + end + + plugin_path = File.expand_path('../..', __FILE__) + vim.command "set rtp^=#{plugin_path}" + vim.command "set filetype=python" + + def shiftwidth + @shiftwidth ||= vim.echo("exists('*shiftwidth') ? shiftwidth() : &sw").to_i + end + def tabstop + @tabstop ||= vim.echo("&tabstop").to_i + end + def indent + vim.echo("indent('.')").to_i + end + def previous_indent + pline = vim.echo("line('.')").to_i - 1 + vim.echo("indent('#{pline}')").to_i + end + def proposed_indent + line = vim.echo("line('.')") + col = vim.echo("col('.')") + indent_value = vim.echo("GetPythonPEPIndent(#{line})").to_i + vim.command("call cursor(#{line}, #{col})") + return indent_value + end + def multiline_indent(prev, default) + i = vim.echo("get(g:, 'python_pep8_indent_multiline_string', 0)").to_i + return (i == -2 ? default : i), i < 0 ? (i == -1 ? prev : default) : i + end + def hang_closing + i = vim.echo("get(g:, 'python_pep8_indent_hang_closing', 0)").to_i + return (i != 0) + end + def set_hang_closing(value) + i = value ? 1 : 0 + vim.command("let g:python_pep8_indent_hang_closing=#{i}") + end + + vim + end +end diff --git a/.vim/bundle/vim-python-pep8-indent/spec/vimrc b/.vim/bundle/vim-python-pep8-indent/spec/vimrc new file mode 100644 index 0000000..e549f80 --- /dev/null +++ b/.vim/bundle/vim-python-pep8-indent/spec/vimrc @@ -0,0 +1,22 @@ +" vint: -ProhibitSetNoCompatible +set nocompatible + +filetype plugin on +filetype indent on +syntax on + +set noswapfile nobackup + +" remove default ~/.vim directories to avoid loading plugins +set runtimepath-=~/.vim +set runtimepath-=~/.vim/after + +let sfile = expand('') +let plugin_path = fnamemodify(sfile, ':p:h:h') +exe 'set runtimepath^='.plugin_path + +if !empty($PYTHON_PEP8_INDENT_TEST_PROFILE_BASE) + execute printf('profile start %s.%s', + \ $PYTHON_PEP8_INDENT_TEST_PROFILE_BASE, getpid()) + execute 'profile! file '. plugin_path . '/indent/python.vim' +endif diff --git a/.vim/colors/madduck.vim b/.vim/colors/madduck.vim new file mode 100644 index 0000000..ac29406 --- /dev/null +++ b/.vim/colors/madduck.vim @@ -0,0 +1,71 @@ +hi clear +if exists("syntax_on") + syntax reset +endif + +let g:colors_name = "madduck" + +if &background == "dark" + hi Normal ctermfg=15 ctermbg=0 cterm=none term=none + hi Comment ctermfg=fg ctermbg=bg cterm=none term=bold + hi Constant ctermfg=Cyan ctermbg=bg cterm=none term=underline + hi Special ctermfg=LightRed ctermbg=bg cterm=none term=bold + hi Identifier ctermfg=fg ctermbg=bg cterm=none term=underline + hi Statement ctermfg=Yellow ctermbg=bg cterm=bold term=bold + hi PreProc ctermfg=Cyan ctermbg=bg cterm=bold term=underline + hi Type ctermfg=LightGreen ctermbg=bg cterm=bold term=underline + hi Ignore ctermfg=bg ctermbg=bg cterm=none term=none + + hi mailHeader ctermfg=darkcyan + hi mailSignature ctermfg=darkcyan + hi mailEmail ctermfg=darkcyan + hi mailHeaderKey ctermfg=white + hi mailSubject ctermfg=white + + hi mailQuoted1 ctermfg=darkgreen + hi mailQuoted2 ctermfg=magenta cterm=NONE + hi mailQuoted3 ctermfg=darkcyan + hi mailQuoted4 ctermfg=darkred + hi mailQuoted5 ctermfg=darkgreen + hi mailQuoted6 ctermfg=magenta + + hi Error ctermfg=White ctermbg=Red cterm=none term=none + hi Todo ctermfg=Black ctermbg=Yellow cterm=standout term=standout + +else + hi Normal ctermfg=0 ctermbg=15 cterm=none term=none + hi Comment ctermfg=fg ctermbg=bg cterm=none term=bold + hi Constant ctermfg=DarkGray ctermbg=bg cterm=none term=underline + hi Special ctermfg=DarkMagenta ctermbg=bg cterm=none term=bold + hi Identifier ctermfg=DarkBlue ctermbg=bg cterm=none term=underline + hi Statement ctermfg=DarkBlue ctermbg=bg cterm=none term=bold + hi PreProc ctermfg=DarkMagenta ctermbg=bg cterm=none term=underline + hi Type ctermfg=DarkBlue ctermbg=bg cterm=none term=underline + hi Ignore ctermfg=bg ctermbg=bg cterm=none term=none + + hi mailHeader ctermfg=darkblue cterm=none + hi mailSignature ctermfg=darkblue + hi mailEmail ctermfg=magenta cterm=none + hi mailHeaderKey ctermfg=blue cterm=none + hi mailSubject ctermfg=blue cterm=none + + hi mailQuoted1 ctermfg=darkred + hi mailQuoted2 ctermfg=darkmagenta cterm=none + hi mailQuoted3 ctermfg=darkgreen + hi mailQuoted4 ctermfg=darkred + hi mailQuoted5 ctermfg=darkmagenta + hi mailQuoted6 ctermfg=darkgreen + + hi Error ctermfg=white ctermbg=red cterm=none term=none + hi Todo ctermfg=black ctermbg=yellow cterm=standout term=standout + + hi SpellBad ctermfg=white ctermbg=darkred cterm=none term=reverse + hi SpellCap ctermfg=darkred ctermbg=bg cterm=bold term=reverse + hi SpellRare ctermfg=red ctermbg=bg cterm=none term=reverse + hi SpellLocal ctermfg=white ctermbg=magenta cterm=none term=reverse + + hi Highlit ctermbg=yellow ctermfg=black cterm=none term=reverse + +endif + +" vim:sts=8:sw=8:ts=8:noet diff --git a/.vim/doc/.gitignore b/.vim/doc/.gitignore new file mode 100644 index 0000000..6e92f57 --- /dev/null +++ b/.vim/doc/.gitignore @@ -0,0 +1 @@ +tags diff --git a/.vim/doc/Tabular.txt b/.vim/doc/Tabular.txt new file mode 120000 index 0000000..461c669 --- /dev/null +++ b/.vim/doc/Tabular.txt @@ -0,0 +1 @@ +/usr/share/vim/addons/doc/Tabular.txt \ No newline at end of file diff --git a/.vim/doc/editorconfig.txt b/.vim/doc/editorconfig.txt new file mode 120000 index 0000000..e62146c --- /dev/null +++ b/.vim/doc/editorconfig.txt @@ -0,0 +1 @@ +/usr/share/vim-editorconfig/doc/editorconfig.txt \ No newline at end of file diff --git a/.vim/doc/fugitive.txt b/.vim/doc/fugitive.txt new file mode 120000 index 0000000..5741707 --- /dev/null +++ b/.vim/doc/fugitive.txt @@ -0,0 +1 @@ +/usr/share/vim/addons/doc/fugitive.txt \ No newline at end of file diff --git a/.vim/doc/lastplace.txt b/.vim/doc/lastplace.txt new file mode 120000 index 0000000..9c00f5b --- /dev/null +++ b/.vim/doc/lastplace.txt @@ -0,0 +1 @@ +/usr/share/vim/addons/doc/lastplace.txt \ No newline at end of file diff --git a/.vim/doc/youcompleteme.txt b/.vim/doc/youcompleteme.txt new file mode 120000 index 0000000..f5669d2 --- /dev/null +++ b/.vim/doc/youcompleteme.txt @@ -0,0 +1 @@ +/usr/share/vim-youcompleteme/doc/youcompleteme.txt \ No newline at end of file diff --git a/.vim/ftdetect/fugitive.vim b/.vim/ftdetect/fugitive.vim new file mode 120000 index 0000000..9cd163a --- /dev/null +++ b/.vim/ftdetect/fugitive.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/ftdetect/fugitive.vim \ No newline at end of file diff --git a/.vim/ftdetect/itsalltext.vim b/.vim/ftdetect/itsalltext.vim new file mode 100644 index 0000000..3eee5a7 --- /dev/null +++ b/.vim/ftdetect/itsalltext.vim @@ -0,0 +1,4 @@ +augroup filetypedetect + " detect itsalltext buffers + au! BufRead,BufNewFile */itsalltext/*.txt setf itsalltext +augroup END diff --git a/.vim/ftdetect/mediawiki.vim b/.vim/ftdetect/mediawiki.vim new file mode 100644 index 0000000..472801a --- /dev/null +++ b/.vim/ftdetect/mediawiki.vim @@ -0,0 +1,4 @@ +augroup filetypedetect + " detect mediawiki buffers + au! BufRead,BufNewFile *.mw setf mediawiki +augroup END diff --git a/.vim/ftdetect/puppet.vim b/.vim/ftdetect/puppet.vim new file mode 100644 index 0000000..8237f87 --- /dev/null +++ b/.vim/ftdetect/puppet.vim @@ -0,0 +1 @@ +au BufRead,BufNewFile *.pp setfiletype puppet diff --git a/.vim/ftplugin/gitcommit.vim b/.vim/ftplugin/gitcommit.vim new file mode 100644 index 0000000..23051d4 --- /dev/null +++ b/.vim/ftplugin/gitcommit.vim @@ -0,0 +1 @@ +setlocal tw=68 diff --git a/.vim/ftplugin/gitconfig.vim b/.vim/ftplugin/gitconfig.vim new file mode 100644 index 0000000..976959b --- /dev/null +++ b/.vim/ftplugin/gitconfig.vim @@ -0,0 +1,3 @@ +" git uses tabs by default +setlocal noet +setlocal sw=8 diff --git a/.vim/ftplugin/itsalltext.vim b/.vim/ftplugin/itsalltext.vim new file mode 100644 index 0000000..e5d1bb1 --- /dev/null +++ b/.vim/ftplugin/itsalltext.vim @@ -0,0 +1,9 @@ +if exists("b:did_ftplugin") + finish +endif + +let b:did_ftplugin = 1 + +setlocal nolist +setlocal wrap +setlocal linebreak diff --git a/.vim/ftplugin/latex-suite/.gitignore b/.vim/ftplugin/latex-suite/.gitignore new file mode 100644 index 0000000..77cb018 --- /dev/null +++ b/.vim/ftplugin/latex-suite/.gitignore @@ -0,0 +1,2 @@ +/__pycache__ +*.pyc diff --git a/.vim/ftplugin/markdown.vim b/.vim/ftplugin/markdown.vim new file mode 100644 index 0000000..af9d67d --- /dev/null +++ b/.vim/ftplugin/markdown.vim @@ -0,0 +1,4 @@ +let g:vim_markdown_folding_disabled = 1 +let g:vim_markdown_strikethrough = 1 +let g:vim_markdown_follow_anchor = 1 +let g:vim_markdown_conceal = 1 diff --git a/.vim/ftplugin/mediawiki.vim b/.vim/ftplugin/mediawiki.vim new file mode 100644 index 0000000..c068d71 --- /dev/null +++ b/.vim/ftplugin/mediawiki.vim @@ -0,0 +1,51 @@ +" Many MediaWiki wikis prefer line breaks only at the end of paragraphs +" (like in a text processor), which results in long, wrapping lines. +setlocal wrap linebreak +setlocal textwidth=0 + +" No auto-wrap at all. +setlocal formatoptions-=tc formatoptions+=l +if v:version >= 602 | setlocal formatoptions-=a | endif + +" Make navigation more amenable to the long wrapping lines. +noremap k gk +noremap j gj +noremap gk +noremap gj +noremap 0 g0 +noremap ^ g^ +noremap $ g$ +noremap D dg$ +noremap C cg$ +noremap A g$a + +inoremap gk +inoremap gj + +" utf-8 should be set if not already done globally +setlocal fileencoding=utf-8 +setlocal matchpairs+=<:> + +" Treat lists, indented text and tables as comment lines and continue with the +" same formatting in the next line (i.e. insert the comment leader) when hitting +" or using "o". +setlocal comments=n:#,n:*,n:\:,s:{\|,m:\|,ex:\|} +setlocal formatoptions+=roq + +" match HTML tags (taken directly from $VIM/ftplugin/html.vim) +if exists("loaded_matchit") + let b:match_ignorecase=0 + let b:match_skip = 's:Comment' + let b:match_words = '<:>,' . + \ '<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,' . + \ '<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,' . + \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>' +endif + +" Other useful mappings +" Insert a matching = automatically while starting a new header. +inoremap = =(getline('.')==''\|\|getline('.')=~'^=\+$')?"==\Left>":"=" + +" Enable folding based on ==sections== +setlocal foldexpr=getline(v:lnum)=~'^\\(=\\+\\)[^=]\\+\\1\\(\\s*\\)\\=\\s*$'?\">\".(len(matchstr(getline(v:lnum),'^=\\+'))-1):\"=\" +setlocal fdm=expr diff --git a/.vim/ftplugin/python/khuno.vim b/.vim/ftplugin/python/khuno.vim new file mode 120000 index 0000000..e8573f4 --- /dev/null +++ b/.vim/ftplugin/python/khuno.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/ftplugin/python/khuno.vim \ No newline at end of file diff --git a/.vim/ftplugin/tex.vim b/.vim/ftplugin/tex.vim new file mode 100644 index 0000000..7d3361f --- /dev/null +++ b/.vim/ftplugin/tex.vim @@ -0,0 +1,5 @@ +let Tex_UsePython = 1 + +let Tex_FoldedMisc = "preamble,<<<" + +"let g:Imap_UsePlaceHolders = 0 diff --git a/.vim/ftplugin/vcard.vim b/.vim/ftplugin/vcard.vim new file mode 100644 index 0000000..15ffa31 --- /dev/null +++ b/.vim/ftplugin/vcard.vim @@ -0,0 +1,3 @@ +"autocmd BufWritePre *.vcf :/^REV:/s/:.*/\=strftime(":%Y%m%dT%H%M%S%z")/ge + +nmap :%s/^UID:.*/\="UID:urn:uuid:" . split(system("uuid"))[0]/:nohlsearch diff --git a/.vim/macros/table.vim b/.vim/macros/table.vim new file mode 100644 index 0000000..4f4d24d --- /dev/null +++ b/.vim/macros/table.vim @@ -0,0 +1,324 @@ +" Script: table.vim +" Version: 0.1 +" +" Maintainer: Usman Latif Email: latif@techuser.net +" Webpage: http://www.techuser.net +" +" Description: +" This script defines maps for easier editing and alignmnet of tables. +" For usage and installation instructions consult the documentation +" files that came with this script. In case you are missing the +" documentation files, download a complete distribution of the files +" from http://www.techuser.net/files + + +map tt :call TableToggle() +map th :call TableHeading() +map ta :call TableAlign() + +let s:tablemode = 0 +let s:heading = '' +let s:fieldsep = ' \{2,}' + +" Function: TableHeading +" Args: None +" +" use current line as the heading line of the table +" current line should be non-empty + +func! TableHeading() + " get heading line and store it in a script variable + let s:heading = TrimWS(ExpandTabs(getline("."))) + + if !ValidHeading(s:heading) + return + endif + + " map keys to invoke table navigation functions + call EnableMaps() + + let s:tablemode = 1 +endfunc + +" Function: ValidHeading +" Args: None +" Return: boolean +" +" returns 1 if heading is valid, i.e., non-whitespace +" returns 0 otherwise + +func! ValidHeading(heading) + " heading line empty ==> invalid heading + let l:str = a:heading + if strlen(str) == matchend(str,'^ *') + return 0 + endif + return 1 +endfunc + +" Function: TableToggle +" Args: None +" +" Toggle Table Mode +" Enable/Disable maps for tablemode keys + +func! TableToggle() + + if !ValidHeading(s:heading) + return + endif + + " enable/disable maps + if s:tablemode + call DisableMaps() + else + call EnableMaps() + endif + + " toggle tablemode + let s:tablemode = !s:tablemode +endfunc + +" Function: Enable Maps +" Args: None +" +" Enable maps for tablemode keys + +func! EnableMaps() + nnoremap :call NextField(0) + inoremap :call NextField(1) + nnoremap :call PrevField() + inoremap :call PrevField() +endfunc + +" Function: Disable Maps +" Args: None +" +" Disable maps for tablemode keys + +func! DisableMaps() + nunmap + iunmap + nunmap + iunmap +endfunc + + +" Function: TableAlign +" Args: None +" Description: align the fields of the row with the fields of the heading + +func! TableAlign() + if !s:tablemode + return + endif + let temp = "" + let linetext = TrimWS(ExpandTabs(getline('.'))) + + let nfhead = LenWS(s:heading,0) + 1 + let nftext = LenWS(linetext,0) + 1 + let error = 0 + + while 1 + " flag error if current field too big to fit + if (nfhead - strlen(temp)) <= 1 && strlen(temp) != 0 + let error = 1 + break + endif + + " pad to next field of heading and add contents of the next text + " field after that + let temp = temp . Replicate(' ',nfhead - strlen(temp)-1) . Gettext(linetext,nftext-1) + + let nfhead = NextFieldPos(s:heading,s:fieldsep,nfhead) + let nftext = NextFieldPos(linetext,s:fieldsep,nftext) + + " If no next field exit loop + if nfhead == 0 || nftext == 0 + " flag error if row to be aligned has more fields than heading + if nftext != 0 + let error = 1 + endif + break + endif + endwhile + if !error && temp != linetext + call setline('.',temp) + endif +endfunc + + +" Function: PrevField +" Args: None +" +" position the cursor at the start of the prev field position + +func! PrevField() + let nextpos = 1 + let lastpos = 1 + let pos = col('.') + let linenum = line('.') + let fstfield = LenWS(s:heading,0) + 1 + + while nextpos != 0 + let lastpos = nextpos + let nextpos = NextFieldPos(s:heading,s:fieldsep,nextpos) + if pos > lastpos && (pos <= nextpos || nextpos == 0) + let pos = lastpos + endif + endwhile + + if pos <= fstfield && linenum != 1 && col('.') <= fstfield + let linenum = linenum - 1 + let pos = lastpos + endif + + call cursor(linenum,pos) +endfunc + + +" Function: NextField +" Args: curmode +" +" position the cursor at the start of next field position +" pad the current line with spaces if needed when in insertion +" or replace mode + +func! NextField(curmode) + let l:pos = Max(col('.') - 2,0) + let l:startnext = NextFieldPos(s:heading,s:fieldsep,pos) + let l:linenum = line('.') + + "If no nextfield on line goto next line + "append an empty line if in insert/replace mode + if startnext == 0 + if a:curmode + call append(linenum,'') + endif + let linenum = linenum+1 + let startnext = LenWS(s:heading,0) + 1 + endif + + let l:linetext = ExpandTabs(getline(linenum)) + let l:linelen = strlen(linetext) + + "If padding required + if linelen < startnext + let linetext = linetext . Replicate(' ',startnext-linelen+1) + call setline(linenum,linetext) + endif + + if linenum > line('$') + let linenum = line('$') + let startnext = col('.') + endif + call cursor(linenum,startnext) +endfunc + + +" Function: NextFieldPos +" Args: string,pattern,startposition +" +" returns the position of the end of field in which pos +" is contained + +func! NextFieldPos(str,pat,pos) + return matchend(a:str,a:pat,a:pos) + 1 +endfunc + + +" Function: Gettext +" Args: str, pos +" Description: Extract the text contents of a field from the +" string str, starting at position pos + +func! Gettext(str,pos) + let endpos = match(a:str,s:fieldsep,a:pos) + if endpos == -1 + let endpos = strlen(a:str) - 1 + endif + return strpart(a:str,a:pos,endpos - a:pos + 1) +endfunc + + +" Function: TrimWS +" Args: str +" Description: Trim any WS at the end of the string str + +func! TrimWS(str) + let len = match(a:str,' \{1,}$',0) + if len == -1 + return a:str + else + return strpart(a:str,0,len) + endif +endfunc + + +" Function: LenWS +" Args: str, startpos +" Description: Length of contiguous whitespace starting at +" position startpos in string str + +func! LenWS(str,startpos) + let i = 0 + while a:str[a:startpos+i] == ' ' + let i = i + 1 + endwhile + return i +endfunc + + +" Function: Replicate +" Args: str,cnt +" +" Repeat the given string cnt number of times + +func! Replicate(str,cnt) + let l:temp = "" + + let l:i = 0 + while i < a:cnt + let temp = temp . a:str + let i = i + 1 + endwhile + + return temp +endfunc + + +" Function: ExpandTabs +" Args: str +" Return value: string +" +" Expand all tabs in the string to spaces +" according to tabstop value + +func! ExpandTabs(str) + let l:str = a:str + let l:temp = "" + + let l:i = 0 + while i < strlen(str) + if str[i] == "\t" + let temp = temp . Replicate(' ',&tabstop) + else + let temp = temp . str[i] + endif + let i = i + 1 + endwhile + + return temp +endfunc + +" Function: Max +" Args: x,y +" Description: return the max of x and y + +func! Max(x,y) + if a:x >= a:y + return a:x + else + return a:y + endif +endfunc diff --git a/.vim/plugin/Tabular.vim b/.vim/plugin/Tabular.vim new file mode 120000 index 0000000..fa1b87b --- /dev/null +++ b/.vim/plugin/Tabular.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/Tabular.vim \ No newline at end of file diff --git a/.vim/plugin/editorconfig.vim b/.vim/plugin/editorconfig.vim new file mode 120000 index 0000000..395bd7a --- /dev/null +++ b/.vim/plugin/editorconfig.vim @@ -0,0 +1 @@ +/usr/share/vim-editorconfig/plugin/editorconfig.vim \ No newline at end of file diff --git a/.vim/plugin/fugitive.vim b/.vim/plugin/fugitive.vim new file mode 120000 index 0000000..751fa63 --- /dev/null +++ b/.vim/plugin/fugitive.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/fugitive.vim \ No newline at end of file diff --git a/.vim/plugin/justify.vim b/.vim/plugin/justify.vim new file mode 120000 index 0000000..de74822 --- /dev/null +++ b/.vim/plugin/justify.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/justify.vim \ No newline at end of file diff --git a/.vim/plugin/lastplace.vim b/.vim/plugin/lastplace.vim new file mode 120000 index 0000000..a5f9974 --- /dev/null +++ b/.vim/plugin/lastplace.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/lastplace.vim \ No newline at end of file diff --git a/.vim/plugin/lbdbq.vim b/.vim/plugin/lbdbq.vim new file mode 120000 index 0000000..fe7dff2 --- /dev/null +++ b/.vim/plugin/lbdbq.vim @@ -0,0 +1 @@ +/usr/share/vim-scripts/lbdbq/plugin/lbdbq.vim \ No newline at end of file diff --git a/.vim/plugin/matchit.vim b/.vim/plugin/matchit.vim new file mode 120000 index 0000000..9304428 --- /dev/null +++ b/.vim/plugin/matchit.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/matchit.vim \ No newline at end of file diff --git a/.vim/plugin/vimsnippets.vim b/.vim/plugin/vimsnippets.vim new file mode 120000 index 0000000..1a92c87 --- /dev/null +++ b/.vim/plugin/vimsnippets.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/plugin/vimsnippets.vim \ No newline at end of file diff --git a/.vim/plugin/youcompleteme.vim b/.vim/plugin/youcompleteme.vim new file mode 120000 index 0000000..b6f29b6 --- /dev/null +++ b/.vim/plugin/youcompleteme.vim @@ -0,0 +1 @@ +/usr/share/vim-youcompleteme/plugin/youcompleteme.vim \ No newline at end of file diff --git a/.vim/pythonx/vimsnippets.py b/.vim/pythonx/vimsnippets.py new file mode 120000 index 0000000..04fd971 --- /dev/null +++ b/.vim/pythonx/vimsnippets.py @@ -0,0 +1 @@ +/usr/share/vim/addons/pythonx/vimsnippets.py \ No newline at end of file diff --git a/.vim/snippets/_.snippets b/.vim/snippets/_.snippets new file mode 120000 index 0000000..58ca918 --- /dev/null +++ b/.vim/snippets/_.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/_.snippets \ No newline at end of file diff --git a/.vim/snippets/actionscript.snippets b/.vim/snippets/actionscript.snippets new file mode 120000 index 0000000..186d2ed --- /dev/null +++ b/.vim/snippets/actionscript.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/actionscript.snippets \ No newline at end of file diff --git a/.vim/snippets/apache.snippets b/.vim/snippets/apache.snippets new file mode 120000 index 0000000..3211cb9 --- /dev/null +++ b/.vim/snippets/apache.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/apache.snippets \ No newline at end of file diff --git a/.vim/snippets/autoit.snippets b/.vim/snippets/autoit.snippets new file mode 120000 index 0000000..871351c --- /dev/null +++ b/.vim/snippets/autoit.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/autoit.snippets \ No newline at end of file diff --git a/.vim/snippets/c.snippets b/.vim/snippets/c.snippets new file mode 120000 index 0000000..8cdc857 --- /dev/null +++ b/.vim/snippets/c.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/c.snippets \ No newline at end of file diff --git a/.vim/snippets/chef.snippets b/.vim/snippets/chef.snippets new file mode 120000 index 0000000..a3673ea --- /dev/null +++ b/.vim/snippets/chef.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/chef.snippets \ No newline at end of file diff --git a/.vim/snippets/clojure.snippets b/.vim/snippets/clojure.snippets new file mode 120000 index 0000000..48f6b96 --- /dev/null +++ b/.vim/snippets/clojure.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/clojure.snippets \ No newline at end of file diff --git a/.vim/snippets/cmake.snippets b/.vim/snippets/cmake.snippets new file mode 120000 index 0000000..aca1621 --- /dev/null +++ b/.vim/snippets/cmake.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/cmake.snippets \ No newline at end of file diff --git a/.vim/snippets/coffee/angular_coffee.snippets b/.vim/snippets/coffee/angular_coffee.snippets new file mode 120000 index 0000000..85cdc8c --- /dev/null +++ b/.vim/snippets/coffee/angular_coffee.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/coffee/angular_coffee.snippets \ No newline at end of file diff --git a/.vim/snippets/coffee/coffee.snippets b/.vim/snippets/coffee/coffee.snippets new file mode 120000 index 0000000..a5359e9 --- /dev/null +++ b/.vim/snippets/coffee/coffee.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/coffee/coffee.snippets \ No newline at end of file diff --git a/.vim/snippets/coffee/jquery_coffee.snippets b/.vim/snippets/coffee/jquery_coffee.snippets new file mode 120000 index 0000000..db1a4f6 --- /dev/null +++ b/.vim/snippets/coffee/jquery_coffee.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/coffee/jquery_coffee.snippets \ No newline at end of file diff --git a/.vim/snippets/cpp.snippets b/.vim/snippets/cpp.snippets new file mode 120000 index 0000000..cc78c1d --- /dev/null +++ b/.vim/snippets/cpp.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/cpp.snippets \ No newline at end of file diff --git a/.vim/snippets/cs.snippets b/.vim/snippets/cs.snippets new file mode 120000 index 0000000..e429b0a --- /dev/null +++ b/.vim/snippets/cs.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/cs.snippets \ No newline at end of file diff --git a/.vim/snippets/css.snippets b/.vim/snippets/css.snippets new file mode 120000 index 0000000..d672c56 --- /dev/null +++ b/.vim/snippets/css.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/css.snippets \ No newline at end of file diff --git a/.vim/snippets/dart.snippets b/.vim/snippets/dart.snippets new file mode 120000 index 0000000..e50c780 --- /dev/null +++ b/.vim/snippets/dart.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/dart.snippets \ No newline at end of file diff --git a/.vim/snippets/diff.snippets b/.vim/snippets/diff.snippets new file mode 120000 index 0000000..7a6f2b2 --- /dev/null +++ b/.vim/snippets/diff.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/diff.snippets \ No newline at end of file diff --git a/.vim/snippets/django.snippets b/.vim/snippets/django.snippets new file mode 120000 index 0000000..d4a9042 --- /dev/null +++ b/.vim/snippets/django.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/django.snippets \ No newline at end of file diff --git a/.vim/snippets/dosini.snippets b/.vim/snippets/dosini.snippets new file mode 120000 index 0000000..beea102 --- /dev/null +++ b/.vim/snippets/dosini.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/dosini.snippets \ No newline at end of file diff --git a/.vim/snippets/elixir.snippets b/.vim/snippets/elixir.snippets new file mode 120000 index 0000000..a20606c --- /dev/null +++ b/.vim/snippets/elixir.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/elixir.snippets \ No newline at end of file diff --git a/.vim/snippets/erlang.snippets b/.vim/snippets/erlang.snippets new file mode 120000 index 0000000..4b239ec --- /dev/null +++ b/.vim/snippets/erlang.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/erlang.snippets \ No newline at end of file diff --git a/.vim/snippets/eruby.snippets b/.vim/snippets/eruby.snippets new file mode 120000 index 0000000..4f291f6 --- /dev/null +++ b/.vim/snippets/eruby.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/eruby.snippets \ No newline at end of file diff --git a/.vim/snippets/falcon.snippets b/.vim/snippets/falcon.snippets new file mode 120000 index 0000000..d4daa7b --- /dev/null +++ b/.vim/snippets/falcon.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/falcon.snippets \ No newline at end of file diff --git a/.vim/snippets/go.snippets b/.vim/snippets/go.snippets new file mode 120000 index 0000000..7036cc4 --- /dev/null +++ b/.vim/snippets/go.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/go.snippets \ No newline at end of file diff --git a/.vim/snippets/haml.snippets b/.vim/snippets/haml.snippets new file mode 120000 index 0000000..3ea21b1 --- /dev/null +++ b/.vim/snippets/haml.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/haml.snippets \ No newline at end of file diff --git a/.vim/snippets/haskell.snippets b/.vim/snippets/haskell.snippets new file mode 120000 index 0000000..7700dfd --- /dev/null +++ b/.vim/snippets/haskell.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/haskell.snippets \ No newline at end of file diff --git a/.vim/snippets/html.snippets b/.vim/snippets/html.snippets new file mode 120000 index 0000000..4be3706 --- /dev/null +++ b/.vim/snippets/html.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/html.snippets \ No newline at end of file diff --git a/.vim/snippets/html_minimal.snippets b/.vim/snippets/html_minimal.snippets new file mode 120000 index 0000000..855a5f2 --- /dev/null +++ b/.vim/snippets/html_minimal.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/html_minimal.snippets \ No newline at end of file diff --git a/.vim/snippets/htmldjango.snippets b/.vim/snippets/htmldjango.snippets new file mode 120000 index 0000000..66a66bb --- /dev/null +++ b/.vim/snippets/htmldjango.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/htmldjango.snippets \ No newline at end of file diff --git a/.vim/snippets/htmltornado.snippets b/.vim/snippets/htmltornado.snippets new file mode 120000 index 0000000..f534c03 --- /dev/null +++ b/.vim/snippets/htmltornado.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/htmltornado.snippets \ No newline at end of file diff --git a/.vim/snippets/jade.snippets b/.vim/snippets/jade.snippets new file mode 120000 index 0000000..9ed7023 --- /dev/null +++ b/.vim/snippets/jade.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/jade.snippets \ No newline at end of file diff --git a/.vim/snippets/java.snippets b/.vim/snippets/java.snippets new file mode 120000 index 0000000..4490159 --- /dev/null +++ b/.vim/snippets/java.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/java.snippets \ No newline at end of file diff --git a/.vim/snippets/javascript/javascript-jquery.snippets b/.vim/snippets/javascript/javascript-jquery.snippets new file mode 120000 index 0000000..3770916 --- /dev/null +++ b/.vim/snippets/javascript/javascript-jquery.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/javascript/javascript-jquery.snippets \ No newline at end of file diff --git a/.vim/snippets/javascript/javascript.d3.snippets b/.vim/snippets/javascript/javascript.d3.snippets new file mode 120000 index 0000000..e0acf4e --- /dev/null +++ b/.vim/snippets/javascript/javascript.d3.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/javascript/javascript.d3.snippets \ No newline at end of file diff --git a/.vim/snippets/javascript/javascript.snippets b/.vim/snippets/javascript/javascript.snippets new file mode 120000 index 0000000..52bc9ac --- /dev/null +++ b/.vim/snippets/javascript/javascript.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/javascript/javascript.snippets \ No newline at end of file diff --git a/.vim/snippets/jsp.snippets b/.vim/snippets/jsp.snippets new file mode 120000 index 0000000..df8c33f --- /dev/null +++ b/.vim/snippets/jsp.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/jsp.snippets \ No newline at end of file diff --git a/.vim/snippets/ledger.snippets b/.vim/snippets/ledger.snippets new file mode 120000 index 0000000..b4f84a8 --- /dev/null +++ b/.vim/snippets/ledger.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/ledger.snippets \ No newline at end of file diff --git a/.vim/snippets/ls.snippets b/.vim/snippets/ls.snippets new file mode 120000 index 0000000..a159da9 --- /dev/null +++ b/.vim/snippets/ls.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/ls.snippets \ No newline at end of file diff --git a/.vim/snippets/lua.snippets b/.vim/snippets/lua.snippets new file mode 120000 index 0000000..53109d9 --- /dev/null +++ b/.vim/snippets/lua.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/lua.snippets \ No newline at end of file diff --git a/.vim/snippets/make.snippets b/.vim/snippets/make.snippets new file mode 120000 index 0000000..f626edf --- /dev/null +++ b/.vim/snippets/make.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/make.snippets \ No newline at end of file diff --git a/.vim/snippets/mako.snippets b/.vim/snippets/mako.snippets new file mode 120000 index 0000000..027cb7e --- /dev/null +++ b/.vim/snippets/mako.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/mako.snippets \ No newline at end of file diff --git a/.vim/snippets/markdown.snippets b/.vim/snippets/markdown.snippets new file mode 120000 index 0000000..197a688 --- /dev/null +++ b/.vim/snippets/markdown.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/markdown.snippets \ No newline at end of file diff --git a/.vim/snippets/objc.snippets b/.vim/snippets/objc.snippets new file mode 120000 index 0000000..753da93 --- /dev/null +++ b/.vim/snippets/objc.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/objc.snippets \ No newline at end of file diff --git a/.vim/snippets/openfoam.snippets b/.vim/snippets/openfoam.snippets new file mode 120000 index 0000000..a0267d7 --- /dev/null +++ b/.vim/snippets/openfoam.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/openfoam.snippets \ No newline at end of file diff --git a/.vim/snippets/perl.snippets b/.vim/snippets/perl.snippets new file mode 120000 index 0000000..a8b67ae --- /dev/null +++ b/.vim/snippets/perl.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/perl.snippets \ No newline at end of file diff --git a/.vim/snippets/php.snippets b/.vim/snippets/php.snippets new file mode 120000 index 0000000..4fdbad9 --- /dev/null +++ b/.vim/snippets/php.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/php.snippets \ No newline at end of file diff --git a/.vim/snippets/plsql.snippets b/.vim/snippets/plsql.snippets new file mode 120000 index 0000000..c93fa18 --- /dev/null +++ b/.vim/snippets/plsql.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/plsql.snippets \ No newline at end of file diff --git a/.vim/snippets/po.snippets b/.vim/snippets/po.snippets new file mode 120000 index 0000000..5af17aa --- /dev/null +++ b/.vim/snippets/po.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/po.snippets \ No newline at end of file diff --git a/.vim/snippets/processing.snippets b/.vim/snippets/processing.snippets new file mode 120000 index 0000000..bfe4016 --- /dev/null +++ b/.vim/snippets/processing.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/processing.snippets \ No newline at end of file diff --git a/.vim/snippets/progress.snippets b/.vim/snippets/progress.snippets new file mode 120000 index 0000000..811bc4e --- /dev/null +++ b/.vim/snippets/progress.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/progress.snippets \ No newline at end of file diff --git a/.vim/snippets/puppet.snippets b/.vim/snippets/puppet.snippets new file mode 120000 index 0000000..6526c3f --- /dev/null +++ b/.vim/snippets/puppet.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/puppet.snippets \ No newline at end of file diff --git a/.vim/snippets/python.snippets b/.vim/snippets/python.snippets new file mode 120000 index 0000000..fb8bd7e --- /dev/null +++ b/.vim/snippets/python.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/python.snippets \ No newline at end of file diff --git a/.vim/snippets/r.snippets b/.vim/snippets/r.snippets new file mode 120000 index 0000000..85099c3 --- /dev/null +++ b/.vim/snippets/r.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/r.snippets \ No newline at end of file diff --git a/.vim/snippets/rst.snippets b/.vim/snippets/rst.snippets new file mode 120000 index 0000000..6c7d4d0 --- /dev/null +++ b/.vim/snippets/rst.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/rst.snippets \ No newline at end of file diff --git a/.vim/snippets/ruby.snippets b/.vim/snippets/ruby.snippets new file mode 120000 index 0000000..66f6f72 --- /dev/null +++ b/.vim/snippets/ruby.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/ruby.snippets \ No newline at end of file diff --git a/.vim/snippets/rust.snippets b/.vim/snippets/rust.snippets new file mode 120000 index 0000000..7a53ea7 --- /dev/null +++ b/.vim/snippets/rust.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/rust.snippets \ No newline at end of file diff --git a/.vim/snippets/scala.snippets b/.vim/snippets/scala.snippets new file mode 120000 index 0000000..d29c30d --- /dev/null +++ b/.vim/snippets/scala.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/scala.snippets \ No newline at end of file diff --git a/.vim/snippets/scheme.snippets b/.vim/snippets/scheme.snippets new file mode 120000 index 0000000..67c267c --- /dev/null +++ b/.vim/snippets/scheme.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/scheme.snippets \ No newline at end of file diff --git a/.vim/snippets/sh.snippets b/.vim/snippets/sh.snippets new file mode 120000 index 0000000..80aed0e --- /dev/null +++ b/.vim/snippets/sh.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/sh.snippets \ No newline at end of file diff --git a/.vim/snippets/slim.snippets b/.vim/snippets/slim.snippets new file mode 120000 index 0000000..0c930c3 --- /dev/null +++ b/.vim/snippets/slim.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/slim.snippets \ No newline at end of file diff --git a/.vim/snippets/snippets.snippets b/.vim/snippets/snippets.snippets new file mode 120000 index 0000000..052c7f0 --- /dev/null +++ b/.vim/snippets/snippets.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/snippets.snippets \ No newline at end of file diff --git a/.vim/snippets/sql.snippets b/.vim/snippets/sql.snippets new file mode 120000 index 0000000..c237ce6 --- /dev/null +++ b/.vim/snippets/sql.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/sql.snippets \ No newline at end of file diff --git a/.vim/snippets/tcl.snippets b/.vim/snippets/tcl.snippets new file mode 120000 index 0000000..119c2ab --- /dev/null +++ b/.vim/snippets/tcl.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/tcl.snippets \ No newline at end of file diff --git a/.vim/snippets/tex.snippets b/.vim/snippets/tex.snippets new file mode 120000 index 0000000..2547d37 --- /dev/null +++ b/.vim/snippets/tex.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/tex.snippets \ No newline at end of file diff --git a/.vim/snippets/textile.snippets b/.vim/snippets/textile.snippets new file mode 120000 index 0000000..e4f5039 --- /dev/null +++ b/.vim/snippets/textile.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/textile.snippets \ No newline at end of file diff --git a/.vim/snippets/vim.snippets b/.vim/snippets/vim.snippets new file mode 120000 index 0000000..82ef8b8 --- /dev/null +++ b/.vim/snippets/vim.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/vim.snippets \ No newline at end of file diff --git a/.vim/snippets/xslt.snippets b/.vim/snippets/xslt.snippets new file mode 120000 index 0000000..7fc2b39 --- /dev/null +++ b/.vim/snippets/xslt.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/xslt.snippets \ No newline at end of file diff --git a/.vim/snippets/yii-chtml.snippets b/.vim/snippets/yii-chtml.snippets new file mode 120000 index 0000000..5759df4 --- /dev/null +++ b/.vim/snippets/yii-chtml.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/yii-chtml.snippets \ No newline at end of file diff --git a/.vim/snippets/yii.snippets b/.vim/snippets/yii.snippets new file mode 120000 index 0000000..b9e15af --- /dev/null +++ b/.vim/snippets/yii.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/yii.snippets \ No newline at end of file diff --git a/.vim/snippets/zsh.snippets b/.vim/snippets/zsh.snippets new file mode 120000 index 0000000..4d48303 --- /dev/null +++ b/.vim/snippets/zsh.snippets @@ -0,0 +1 @@ +/usr/share/vim/addons/snippets/zsh.snippets \ No newline at end of file diff --git a/.vim/spell/.gitignore b/.vim/spell/.gitignore new file mode 100644 index 0000000..6d535c0 --- /dev/null +++ b/.vim/spell/.gitignore @@ -0,0 +1 @@ +*.spl diff --git a/.vim/spell/en.utf-8.add b/.vim/spell/en.utf-8.add new file mode 100644 index 0000000..d5e61a2 --- /dev/null +++ b/.vim/spell/en.utf-8.add @@ -0,0 +1,101 @@ +ADSL +Ajzen +Akkerman +alioth +alright +anonymise +anonymised +anonymising +autotools +B +bikeshed +blog +blogged +bo +Boehm +BTS +c0ffee +changelog +chroot +codings +cosmopolite +cosmopoliteness +deadbeef +debhelper +debian +Debian +Debianisation +debianised +Debian's +Delphis +determinist +devel +diff +dpkg +EFTE +Farquhar +Fishbein +FreeBSD +freenode +Genericity +hamm +heterophilous +heterophily +Heterophily +homophilous +homophily +Homophily +iff +interpretivism +IRC +Jun +learnable +lenny +Likert +lintian +localite +madduck +mdadm +namespace +occasionalist +oldstable +panelist +panelists +peercolation +Peercolation +phd +pkg +pleonastic +POSIX +RC +rebase +rebases +rebasing +rex +s +S +Schulze +screenshot +Slackware +snapshotted +Solaris +svn +tarball +tarballs +Tarde's +tesseract +trialability +Trialability +trialable +Troup +Ubuntu +upstream's +vcs +vi +Wichert +wiki +workflow +workflows +netbooks +Hurd +grep diff --git a/.vim/syntax/fugitive.vim b/.vim/syntax/fugitive.vim new file mode 120000 index 0000000..34b43d9 --- /dev/null +++ b/.vim/syntax/fugitive.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/syntax/fugitive.vim \ No newline at end of file diff --git a/.vim/syntax/fugitiveblame.vim b/.vim/syntax/fugitiveblame.vim new file mode 120000 index 0000000..c1b9ab8 --- /dev/null +++ b/.vim/syntax/fugitiveblame.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/syntax/fugitiveblame.vim \ No newline at end of file diff --git a/.vim/syntax/jinja.vim b/.vim/syntax/jinja.vim new file mode 120000 index 0000000..4a07214 --- /dev/null +++ b/.vim/syntax/jinja.vim @@ -0,0 +1 @@ +/usr/share/vim/addons/syntax/jinja.vim \ No newline at end of file diff --git a/.vim/syntax/mediawiki.vim b/.vim/syntax/mediawiki.vim new file mode 100644 index 0000000..950b016 --- /dev/null +++ b/.vim/syntax/mediawiki.vim @@ -0,0 +1,293 @@ +" mediawiki.vim (formerly named Wikipedia.vim) +" +" Vim syntax file +" Language: MediaWiki, http://www.mediawiki.org/ +" Maintainer: This syntax file needs a maintainer in order to ship +" with Vim. Please contact [[User:Unforgettableid]] if you want +" to volunteer. +" Home: http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim +" Last Change: 2011 Sep 19 +" Credits: [[User:Aepd87]], [[User:Danny373]], [[User:Ingo Karkat]], et al. +" +" Published on Wikipedia in 2003-04 and declared authorless. +" +" Based on the HTML syntax file. Probably too closely based, in fact. +" There may well be name collisions everywhere, but ignorance is bliss, +" so they say. +" +" To do: plug-in support for downloading and uploading to the server. + +if !exists("main_syntax") + if version < 600 + syntax clear + elseif exists("b:current_syntax") + finish + endif + let main_syntax = "html" +endif + +syntax case ignore +if v:version >= 700 + syntax spell toplevel +endif + +" Mark illegal characters +sy match htmlError "[<>&]" + +" Tags +sy region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,@htmlPreproc +sy region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,@htmlPreproc +sy match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=@htmlPreproc +sy region htmlEndTag start=++ contains=htmlTagN,htmlTagError +sy region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster +sy match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster +sy match htmlTagN contained +]<"ms=s+1 + +" Allowed HTML tag names +sy keyword htmlTagName contained big blockquote br caption center cite code +sy keyword htmlTagName contained dd del div dl dt font hr ins li +sy keyword htmlTagName contained ol p pre rb rp rt ruby s small span strike sub +sy keyword htmlTagName contained sup table td th tr tt ul var +sy match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\)\>" +" Allowed Wiki tag names +sy keyword htmlTagName contained math nowiki references source syntaxhighlight + +" Allowed arg names +sy keyword htmlArg contained align lang dir width height nowrap bgcolor clear +sy keyword htmlArg contained noshade cite datetime size face color type start +sy keyword htmlArg contained value compact summary border frame rules +sy keyword htmlArg contained cellspacing cellpadding valign char charoff +sy keyword htmlArg contained colgroup col span abbr axis headers scope rowspan +sy keyword htmlArg contained colspan id class name style title + +" Special characters +sy match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" + +" Comments +sy region htmlComment start=++ contains=htmlCommentPart,htmlCommentError +sy match htmlCommentError contained "[^>+ + +if !exists("html_no_rendering") + sy cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,@htmlPreproc + + sy region htmlBold start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic + sy region htmlBold start="" end=""me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic + sy region htmlBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic + sy region htmlBoldItalic contained start="" end="
"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline + sy region htmlBoldItalic contained start="" end=""me=e-5 contains=@htmlTop,htmlBoldItalicUnderline + sy region htmlBoldUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlBoldUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop + sy region htmlBoldItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic + + sy region htmlUnderline start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic + sy region htmlUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic + sy region htmlUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic + sy region htmlUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineItalicBold + sy region htmlUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop,htmlUnderlineItalicBold + sy region htmlUnderlineItalicBold contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlUnderlineItalicBold contained start="" end=""me=e-9 contains=@htmlTop + sy region htmlUnderlineBoldItalic contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlUnderlineBoldItalic contained start="" end=""me=e-5 contains=@htmlTop + + sy region htmlItalic start="" end=""me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline + sy region htmlItalic start="" end=""me=e-5 contains=@htmlTop + sy region htmlItalicBold contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicBoldUnderline + sy region htmlItalicBold contained start="" end=""me=e-9 contains=@htmlTop,htmlItalicBoldUnderline + sy region htmlItalicBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicUnderlineBold + sy region htmlItalicUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop + sy region htmlItalicUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop + + sy region htmlH1 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH2 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH3 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH4 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH5 start="" end=""me=e-5 contains=@htmlTop + sy region htmlH6 start="" end=""me=e-5 contains=@htmlTop +endif + + +" No htmlTop and wikiPre inside HTML preformatted areas, because +" MediaWiki renders everything in there literally (HTML tags and +" entities, too):
 tags work as the combination of  and
+" the standard HTML 
 tag: the content will preformatted, and it
+" will not be parsed, but shown as in the wikitext source.
+"
+" With wikiPre, indented lines would be rendered differently from
+" unindented lines.
+sy match htmlPreTag       /
/         contains=htmlTag
+sy match htmlPreEndTag    /<\/pre>/       contains=htmlEndTag
+sy match wikiNowikiTag    //      contains=htmlTag
+sy match wikiNowikiEndTag /<\/nowiki>/    contains=htmlEndTag
+sy match wikiSourceTag    /]\+>/ contains=htmlTag
+sy match wikiSourceEndTag /<\/source>/    contains=htmlEndTag
+sy match wikiSyntaxHLTag    /]\+>/ contains=htmlTag
+sy match wikiSyntaxHLEndTag /<\/syntaxhighlight>/    contains=htmlEndTag
+ 
+" Note: Cannot use 'start="
"rs=e', so still have the 
 tag
+" highlighted correctly via separate sy-match. Unfortunately, this will
+" also highlight 
 tags inside the preformatted region. 
+sy region htmlPre    start="
"                 end="<\/pre>"me=e-6    contains=htmlPreTag
+sy region wikiNowiki start=""              end="<\/nowiki>"me=e-9 contains=wikiNowikiTag
+sy region wikiSource start="]\+>"         keepend end="<\/source>"me=e-9 contains=wikiSourceTag
+sy region wikiSyntaxHL start="]\+>" keepend end="<\/syntaxhighlight>"me=e-18 contains=wikiSyntaxHLTag
+ 
+sy include @TeX syntax/tex.vim
+sy region wikiTeX matchgroup=htmlTag start="" end="<\/math>"  contains=@texMathZoneGroup,wikiNowiki,wikiNowikiEndTag
+sy region wikiRef matchgroup=htmlTag start=""  end="<\/ref>"   contains=wikiNowiki,wikiNowikiEndTag
+ 
+sy cluster wikiTop contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag
+ 
+sy region wikiItalic        start=+'\@
+else
+  command! -nargs=+ HtmlHiLink hi def link 
+endif
+ 
+if version >= 508 || !exists("did_html_syn_inits")
+  HtmlHiLink htmlTag            Function
+  HtmlHiLink htmlEndTag         Identifier
+  HtmlHiLink htmlArg            Type
+  HtmlHiLink htmlTagName        htmlStatement
+  HtmlHiLink htmlSpecialTagName Exception
+  HtmlHiLink htmlValue          String
+  HtmlHiLink htmlSpecialChar    Special
+ 
+  if !exists("html_no_rendering")
+    HtmlHiLink htmlTitle Title
+    HtmlHiLink htmlH1    htmlTitle
+    HtmlHiLink htmlH2    htmlTitle
+    HtmlHiLink htmlH3    htmlTitle
+    HtmlHiLink htmlH4    htmlTitle
+    HtmlHiLink htmlH5    htmlTitle
+    HtmlHiLink htmlH6    htmlTitle
+ 
+    HtmlHiLink htmlPreProc          PreProc
+    HtmlHiLink htmlHead             htmlPreProc
+    HtmlHiLink htmlPreProcAttrName  htmlPreProc
+    HtmlHiLink htmlPreStmt          htmlPreProc
+ 
+    HtmlHiLink htmlSpecial          Special
+    HtmlHiLink htmlCssDefinition    htmlSpecial
+    HtmlHiLink htmlEvent            htmlSpecial
+    HtmlHiLink htmlSpecialChar      htmlSpecial
+ 
+    HtmlHiLink htmlComment          Comment
+    HtmlHiLink htmlCommentPart      htmlComment
+    HtmlHiLink htmlCssStyleComment  htmlComment
+ 
+    HtmlHiLink htmlString           String
+    HtmlHiLink htmlPreAttr          htmlString
+    HtmlHiLink htmlValue            htmlString
+ 
+    HtmlHiLink htmlError            Error
+    HtmlHiLink htmlBadArg           htmlError
+    HtmlHiLink htmlBadTag           htmlError
+    HtmlHiLink htmlCommentError     htmlError
+    HtmlHiLink htmlPreError         htmlError  
+    HtmlHiLink htmlPreProcAttrError htmlError
+    HtmlHiLink htmlTagError         htmlError
+ 
+    HtmlHiLink htmlStatement        Statement
+ 
+    HtmlHiLink htmlConstant         Constant
+ 
+    HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic
+    HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic
+    HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic
+    HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic
+    HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic
+ 
+    HtmlHiLink htmlItalicBold          htmlBoldItalic
+    HtmlHiLink htmlItalicUnderline     htmlUnderlineItalic
+    HtmlHiLink htmlUnderlineBold       htmlBoldUnderline
+ 
+    HtmlHiLink htmlLink Underlined
+ 
+    if !exists("html_my_rendering")
+      hi def htmlBold                term=bold                  cterm=bold                  gui=bold
+      hi def htmlBoldUnderline       term=bold,underline        cterm=bold,underline        gui=bold,underline
+      hi def htmlBoldItalic          term=bold,italic           cterm=bold,italic           gui=bold,italic
+      hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
+      hi def htmlUnderline           term=underline             cterm=underline             gui=underline
+      hi def htmlUnderlineItalic     term=italic,underline      cterm=italic,underline      gui=italic,underline
+      hi def htmlItalic              term=italic                cterm=italic                gui=italic
+    endif
+ 
+  endif " !exists("html_no_rendering")
+ 
+  if version < 508
+    let did_html_syn_inits = 1
+  endif
+ 
+endif " version >= 508 || !exists("did_html_syn_inits")
+ 
+" Wiki highlighting
+ 
+HtmlHiLink wikiItalic        htmlItalic
+HtmlHiLink wikiBold          htmlBold
+HtmlHiLink wikiBoldItalic    htmlBoldItalic
+HtmlHiLink wikiItalicBold    htmlBoldItalic
+HtmlHiLink wikiBoldAndItalic htmlBoldItalic
+ 
+HtmlHiLink wikiH1 htmlTitle
+HtmlHiLink wikiH2 htmlTitle
+HtmlHiLink wikiH3 htmlTitle
+HtmlHiLink wikiH4 htmlTitle
+HtmlHiLink wikiH5 htmlTitle
+HtmlHiLink wikiH6 htmlTitle
+ 
+HtmlHiLink wikiLink           htmlLink
+HtmlHiLink wikiTemplate       htmlSpecial
+HtmlHiLink wikiParaFormatChar htmlSpecial
+HtmlHiLink wikiPre            htmlConstant
+HtmlHiLink wikiRef            htmlComment
+ 
+HtmlHiLink wikiSource         wikiPre
+HtmlHiLink wikiSyntaxHL       wikiPre
+ 
+ 
+let b:current_syntax = "html"
+ 
+delcommand HtmlHiLink
+ 
+if main_syntax == "html"
+  unlet main_syntax
+endif
+ 
+" vim: set et sts=2 sw=2:
diff --git a/.vim/syntax/puppet.vim b/.vim/syntax/puppet.vim
new file mode 100644
index 0000000..698fc80
--- /dev/null
+++ b/.vim/syntax/puppet.vim
@@ -0,0 +1,89 @@
+" puppet syntax file
+" Filename:     puppet.vim
+" Language:     puppet configuration file
+" Maintainer:   Luke Kanies 
+" URL:         
+" Last Change:
+" Version:     
+"
+
+" Copied from the cfengine, ruby, and perl syntax files
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn region  puppetDefine        start="^\s*\(class\|define\|site\|node\)" end="{" contains=puppetDefType,puppetDefName,puppetDefArguments
+syn keyword puppetDefType       class define site node inherits contained
+syn keyword puppetInherits      inherits contained
+syn region  puppetDefArguments  start="(" end=")" contains=puppetArgument
+syn match   puppetArgument      "\w\+" contained
+syn match   puppetArgument      "\$\w\+" contained
+syn match   puppetArgument      "'[^']+'" contained
+syn match   puppetArgument      '"[^"]+"' contained
+syn match   puppetDefName     "\w\+" contained
+
+syn match   puppetInstance           "\w\+\s*{" contains=puppetTypeBrace,puppetTypeName,puppetTypeDefault
+syn match   puppetTypeBrace       "{" contained
+syn match   puppetTypeName       "[a-z]\w*" contained
+syn match   puppetTypeDefault    "[A-Z]\w*" contained
+
+syn match   puppetParam           "\w\+\s*=>" contains=puppetTypeRArrow,puppetParamName
+syn match   puppetParamRArrow       "=>" contained
+syn match   puppetParamName       "\w\+" contained
+syn match   puppetVariable           "$\w\+"
+syn match   puppetVariable           "${\w\+}"
+syn match   puppetParen           "("
+syn match   puppetParen           ")"
+syn match   puppetBrace           "{"
+syn match   puppetBrace           "}"
+
+syn region  puppetString start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=puppetVariable
+
+syn keyword puppetBoolean    true false
+syn keyword puppetKeyword    import inherits include
+syn keyword puppetControl    case default
+
+" comments last overriding everything else
+syn match   puppetComment            "\s*#.*$" contains=puppetTodo
+syn keyword puppetTodo               TODO NOTE FIXME XXX contained
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_puppet_syn_inits")
+  if version < 508
+    let did_puppet_syn_inits = 1
+    command -nargs=+ HiLink hi link 
+  else
+    command -nargs=+ HiLink hi def link 
+  endif
+
+  HiLink puppetVariable             Identifier
+  HiLink puppetBoolean              Boolean
+  HiLink puppetType                 Identifier
+  HiLink puppetDefault              Identifier
+  HiLink puppetKeyword              Define
+  HiLink puppetTypeDefs             Define
+  HiLink puppetComment              Comment
+  HiLink puppetString               String
+  HiLink puppetTodo                 Todo
+"  HiLink puppetBrace                Delimiter
+"  HiLink puppetTypeBrace            Delimiter
+"  HiLink puppetParen                Delimiter
+  HiLink puppetDelimiter            Delimiter
+  HiLink puppetControl              Statement
+  HiLink puppetDefType              Define
+  HiLink puppetDefName              Type
+  HiLink puppetTypeName             Statement
+  HiLink puppetTypeDefault          Type
+  HiLink puppetParamName            Identifier
+  HiLink puppetArgument             Identifier
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "puppet"
diff --git a/.vim/syntax/tex.vim b/.vim/syntax/tex.vim
new file mode 100644
index 0000000..14e1bd6
--- /dev/null
+++ b/.vim/syntax/tex.vim
@@ -0,0 +1,559 @@
+" Vim syntax file
+" Language:	TeX
+" Maintainer:	Dr. Charles E. Campbell, Jr. 
+" Last Change:	Feb 27, 2007
+" Version:	37
+" URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
+"
+" Notes: {{{1
+"
+" 1. If you have a \begin{verbatim} that appears to overrun its boundaries,
+"    use %stopzone.
+"
+" 2. Run-on equations ($..$ and $$..$$, particularly) can also be stopped
+"    by suitable use of %stopzone.
+"
+" 3. If you have a slow computer, you may wish to modify
+"
+"	syn sync maxlines=200
+"	syn sync minlines=50
+"
+"    to values that are more to your liking.
+"
+" 4. There is no match-syncing for $...$ and $$...$$; hence large
+"    equation blocks constructed that way may exhibit syncing problems.
+"    (there's no difference between begin/end patterns)
+"
+" 5. If you have the variable "g:tex_no_error" defined then none of the
+"    lexical error-checking will be done.
+"
+"    ie. let g:tex_no_error=1
+
+" Version Clears: {{{1
+" For version 5.x: Clear all syntax items
+" For version 6.x: Quit when a syntax file was already loaded
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" Define the default highlighting. {{{1
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_tex_syntax_inits")
+ let did_tex_syntax_inits = 1
+ if version < 508
+  command -nargs=+ HiLink hi link 
+ else
+  command -nargs=+ HiLink hi def link 
+ endif
+endif
+if exists("g:tex_tex") && !exists("g:tex_no_error")
+ let g:tex_no_error= 1
+endif
+
+" Determine whether or not to use "*.sty" mode {{{1
+" The user may override the normal determination by setting
+"   g:tex_stylish to 1      (for    "*.sty" mode)
+"    or to           0 else (normal "*.tex" mode)
+" or on a buffer-by-buffer basis with b:tex_stylish
+let b:extfname=expand("%:e")
+if exists("g:tex_stylish")
+ let b:tex_stylish= g:tex_stylish
+elseif !exists("b:tex_stylish")
+ if b:extfname == "sty" || b:extfname == "cls" || b:extfname == "clo" || b:extfname == "dtx" || b:extfname == "ltx"
+  let b:tex_stylish= 1
+ else
+  let b:tex_stylish= 0
+ endif
+endif
+
+" handle folding {{{1
+if !exists("g:tex_fold_enabled")
+ let g:tex_fold_enabled= 0
+elseif g:tex_fold_enabled && !has("folding")
+ let g:tex_fold_enabled= 0
+ echomsg "Ignoring g:tex_fold_enabled=".g:tex_fold_enabled."; need to re-compile vim for +fold support"
+endif
+if g:tex_fold_enabled && &fdm == "manual"
+ set fdm=syntax
+endif
+
+" (La)TeX keywords: only use the letters a-zA-Z {{{1
+" but _ is the only one that causes problems.
+if version < 600
+  set isk-=_
+  if b:tex_stylish
+    set isk+=@
+  endif
+else
+  setlocal isk-=_
+  if b:tex_stylish
+    setlocal isk+=@
+  endif
+endif
+
+" Clusters: {{{1
+" --------
+syn cluster texCmdGroup		contains=texCmdBody,texComment,texDefParm,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSectionMarker,texSectionName,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texURLZone,texAcroZone
+if !exists("g:tex_no_error")
+ syn cluster texCmdGroup	add=texMathError
+endif
+syn cluster texEnvGroup		contains=texMatcher,texMathDelim,texSpecialChar,texStatement
+syn cluster texFoldGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract,texURLZone,texAcroZone
+syn cluster texMatchGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texURLZone,texAcroZone,@Spell
+syn cluster texRefGroup		contains=texMatcher,texComment,texDelimiter
+if !exists("tex_no_math")
+ syn cluster texMathZones	contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
+ syn cluster texMatchGroup	add=@texMathZones
+ syn cluster texMathDelimGroup	contains=texMathDelimBad,texMathDelimKey,texMathDelimSet1,texMathDelimSet2
+ syn cluster texMathMatchGroup	contains=@texMathZones,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMathDelim,texMathMatcher,texMathOper,texNewCmd,texNewEnv,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone
+ syn cluster texMathZoneGroup	contains=texComment,texDelimiter,texLength,texMathDelim,texMathMatcher,texMathOper,texRefZone,texSpecialChar,texStatement,texTypeSize,texTypeStyle
+ if !exists("g:tex_no_error")
+  syn cluster texMathMatchGroup	add=texMathError
+  syn cluster texMathZoneGroup	add=texMathError
+ endif
+ syn cluster texMathZoneGroup add=@NoSpell
+ " following used in the \part \chapter \section \subsection \subsubsection
+ " \paragraph \subparagraph \author \title highlighting
+ syn cluster texDocGroup		contains=texPartZone,@texPartGroup
+ syn cluster texPartGroup		contains=texChapterZone,texSectionZone,texParaZone
+ syn cluster texChapterGroup		contains=texSectionZone,texParaZone
+ syn cluster texSectionGroup		contains=texSubSectionZone,texParaZone
+ syn cluster texSubSectionGroup		contains=texSubSubSectionZone,texParaZone
+ syn cluster texSubSubSectionGroup	contains=texParaZone
+ syn cluster texParaGroup		contains=texSubParaZone
+endif
+syn cluster texURLGroup			contains=texMatcher,@NoSpell
+syn cluster texAcroGroup		contains=texMatcher,@NoSpell
+
+" Try to flag {} and () mismatches: {{{1
+if !exists("g:tex_no_error")
+ syn region texMatcher		matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"		contains=@texMatchGroup,texError
+ syn region texMatcher		matchgroup=Delimiter start="\["				end="]"		contains=@texMatchGroup,texError
+else
+ syn region texMatcher		matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"		contains=@texMatchGroup
+ syn region texMatcher		matchgroup=Delimiter start="\["				end="]"		contains=@texMatchGroup
+endif
+syn region texParen		start="("						end=")"		contains=@texMatchGroup,@Spell
+if !exists("g:tex_no_error")
+ syn match  texError		"[}\])]"
+endif
+if !exists("tex_no_math")
+ if !exists("g:tex_no_error")
+  syn match  texMathError	"}"	contained
+ endif
+ syn region texMathMatcher	matchgroup=Delimiter start="{"  skip="\\\\\|\\}"  end="}" end="%stopzone\>" contained contains=@texMathMatchGroup
+endif
+
+" TeX/LaTeX keywords: {{{1
+" Instead of trying to be All Knowing, I just match \..alphameric..
+" Note that *.tex files may not have "@" in their \commands
+if exists("g:tex_tex") || b:tex_stylish
+  syn match texStatement	"\\[a-zA-Z@]\+"
+else
+  syn match texStatement	"\\\a\+"
+  if !exists("g:tex_no_error")
+   syn match texError		"\\\a*@[a-zA-Z@]*"
+  endif
+endif
+
+" TeX/LaTeX delimiters: {{{1
+syn match texDelimiter		"&"
+syn match texDelimiter		"\\\\"
+
+" Tex/Latex Options: {{{1
+syn match texOption	"[^\\]\zs#\d\+\|^#\d\+"
+
+" texAccent (tnx to Karim Belabas) avoids annoying highlighting for accents: {{{1
+if b:tex_stylish
+  syn match texAccent		"\\[bcdvuH][^a-zA-Z@]"me=e-1
+  syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)[^a-zA-Z@]"me=e-1
+else
+  syn match texAccent		"\\[bcdvuH]\A"me=e-1
+  syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)\A"me=e-1
+endif
+syn match texAccent		"\\[bcdvuH]$"
+syn match texAccent		+\\[=^.\~"`']+
+syn match texAccent		+\\['=t'.c^ud"vb~Hr]{\a}+
+syn match texLigature		"\\\([ijolL]\|ae\|oe\|ss\|AA\|AE\|OE\)$"
+
+" \begin{}/\end{} section markers: {{{1
+syn match  texSectionMarker	"\\begin\>\|\\end\>" nextgroup=texSectionName
+syn region texSectionName	matchgroup=Delimiter start="{" end="}"  contained nextgroup=texSectionModifier
+syn region texSectionModifier	matchgroup=Delimiter start="\[" end="]" contained
+
+" \documentclass, \documentstyle, \usepackage: {{{1
+syn match  texDocType		"\\documentclass\>\|\\documentstyle\>\|\\usepackage\>"	nextgroup=texSectionName,texDocTypeArgs
+syn region texDocTypeArgs	matchgroup=Delimiter start="\[" end="]"			contained	nextgroup=texSectionName
+
+" Preamble syntax-based folding support: {{{1
+if g:tex_fold_enabled && has("folding")
+ syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=@texMatchGroup
+endif
+
+" TeX input: {{{1
+syn match texInput		"\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7				contains=texStatement
+syn match texInputFile		"\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}"	contains=texStatement,texInputCurlies
+syn match texInputFile		"\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}"		contains=texStatement,texInputCurlies,texInputFileOpt
+syn match texInputCurlies	"[{}]"								contained
+syn region texInputFileOpt	matchgroup=Delimiter start="\[" end="\]"			contained
+
+" Type Styles (LaTeX 2.09): {{{1
+syn match texTypeStyle		"\\rm\>"
+syn match texTypeStyle		"\\em\>"
+syn match texTypeStyle		"\\bf\>"
+syn match texTypeStyle		"\\it\>"
+syn match texTypeStyle		"\\sl\>"
+syn match texTypeStyle		"\\sf\>"
+syn match texTypeStyle		"\\sc\>"
+syn match texTypeStyle		"\\tt\>"
+
+" Type Styles: attributes, commands, families, etc (LaTeX2E): {{{1
+syn match texTypeStyle		"\\textbf\>"
+syn match texTypeStyle		"\\textit\>"
+syn match texTypeStyle		"\\textmd\>"
+syn match texTypeStyle		"\\textrm\>"
+syn match texTypeStyle		"\\textsc\>"
+syn match texTypeStyle		"\\textsf\>"
+syn match texTypeStyle		"\\textsl\>"
+syn match texTypeStyle		"\\texttt\>"
+syn match texTypeStyle		"\\textup\>"
+syn match texTypeStyle		"\\emph\>"
+
+syn match texTypeStyle		"\\mathbb\>"
+syn match texTypeStyle		"\\mathbf\>"
+syn match texTypeStyle		"\\mathcal\>"
+syn match texTypeStyle		"\\mathfrak\>"
+syn match texTypeStyle		"\\mathit\>"
+syn match texTypeStyle		"\\mathnormal\>"
+syn match texTypeStyle		"\\mathrm\>"
+syn match texTypeStyle		"\\mathsf\>"
+syn match texTypeStyle		"\\mathtt\>"
+
+syn match texTypeStyle		"\\rmfamily\>"
+syn match texTypeStyle		"\\sffamily\>"
+syn match texTypeStyle		"\\ttfamily\>"
+
+syn match texTypeStyle		"\\itshape\>"
+syn match texTypeStyle		"\\scshape\>"
+syn match texTypeStyle		"\\slshape\>"
+syn match texTypeStyle		"\\upshape\>"
+
+syn match texTypeStyle		"\\bfseries\>"
+syn match texTypeStyle		"\\mdseries\>"
+
+" Some type sizes: {{{1
+syn match texTypeSize		"\\tiny\>"
+syn match texTypeSize		"\\scriptsize\>"
+syn match texTypeSize		"\\footnotesize\>"
+syn match texTypeSize		"\\small\>"
+syn match texTypeSize		"\\normalsize\>"
+syn match texTypeSize		"\\large\>"
+syn match texTypeSize		"\\Large\>"
+syn match texTypeSize		"\\LARGE\>"
+syn match texTypeSize		"\\huge\>"
+syn match texTypeSize		"\\Huge\>"
+
+" Spacecodes (TeX'isms): {{{1
+" \mathcode`\^^@="2201  \delcode`\(="028300  \sfcode`\)=0 \uccode`X=`X  \lccode`x=`x
+syn match texSpaceCode		"\\\(math\|cat\|del\|lc\|sf\|uc\)code`"me=e-1 nextgroup=texSpaceCodeChar
+syn match texSpaceCodeChar    "`\\\=.\(\^.\)\==\(\d\|\"\x\{1,6}\|`.\)"	contained
+
+" Sections, subsections, etc: {{{1
+if g:tex_fold_enabled && has("folding")
+ syn region texDocZone			matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}'	fold contains=@texFoldGroup,@texDocGroup,@Spell
+ syn region texPartZone			matchgroup=texSection start='\\part\>'			 end='\n\ze\s*\\part\>'		fold contains=@texFoldGroup,@texPartGroup,@Spell
+ syn region texChapterZone		matchgroup=texSection start='\\chapter\>'		 end='\n\ze\s*\\chapter\>'	fold contains=@texFoldGroup,@texChapterGroup,@Spell
+ syn region texSectionZone		matchgroup=texSection start='\\section\>'		 end='\n\ze\s*\\section\>'	fold contains=@texFoldGroup,@texSectionGroup,@Spell
+ syn region texSubSectionZone		matchgroup=texSection start='\\subsection\>'		 end='\n\ze\s*\\subsection\>'	fold contains=@texFoldGroup,@texSubSectionGroup,@Spell
+ syn region texSubSubSectionZone	matchgroup=texSection start='\\subsubsection\>'		end='\n\ze\s*\\subsubsection\>'	fold contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
+ syn region texParaZone			matchgroup=texSection start='\\paragraph\>'		 end='\n\ze\s*\\paragraph\>'	fold contains=@texFoldGroup,@texParaGroup,@Spell
+ syn region texSubParaZone		matchgroup=texSection start='\\subparagraph\>'		 end='\n\ze\s*\\subparagraph\>'	fold contains=@texFoldGroup,@Spell
+ syn region texTitle			matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'		fold contains=@texFoldGroup,@Spell
+ syn region texAbstract			matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}'	fold contains=@texFoldGroup,@Spell
+else
+ syn region texDocZone			matchgroup=texSection start='\\begin\s*{\s*document\s*}' end='\\end\s*{\s*document\s*}'	contains=@texFoldGroup,@texDocGroup,@Spell
+ syn region texPartZone			matchgroup=texSection start='\\part\>'			 end='\n\ze\s*\\part\>'		contains=@texFoldGroup,@texPartGroup,@Spell
+ syn region texChapterZone		matchgroup=texSection start='\\chapter\>'		 end='\n\ze\s*\\chapter\>'	contains=@texFoldGroup,@texChapterGroup,@Spell
+ syn region texSectionZone		matchgroup=texSection start='\\section\>'		 end='\n\ze\s*\\section\>'	contains=@texFoldGroup,@texSectionGroup,@Spell
+ syn region texSubSectionZone		matchgroup=texSection start='\\subsection\>'		 end='\n\ze\s*\\subsection\>'	contains=@texFoldGroup,@texSubSectionGroup,@Spell
+ syn region texSubSubSectionZone	matchgroup=texSection start='\\subsubsection\>'		end='\n\ze\s*\\subsubsection\>'	contains=@texFoldGroup,@texSubSubSectionGroup,@Spell
+ syn region texParaZone			matchgroup=texSection start='\\paragraph\>'		 end='\n\ze\s*\\paragraph\>'	contains=@texFoldGroup,@texParaGroup,@Spell
+ syn region texSubParaZone		matchgroup=texSection start='\\subparagraph\>'		 end='\n\ze\s*\\subparagraph\>'	contains=@texFoldGroup,@Spell
+ syn region texTitle			matchgroup=texSection start='\\\%(author\|title\)\>\s*{' end='}'			contains=@texFoldGroup,@Spell
+ syn region texAbstract			matchgroup=texSection start='\\begin\s*{\s*abstract\s*}' end='\\end\s*{\s*abstract\s*}'	contains=@texFoldGroup,@Spell
+endif
+
+" Bad Math (mismatched): {{{1
+if !exists("tex_no_math")
+ syn match texBadMath		"\\end\s*{\s*\(array\|gathered\|bBpvV]matrix\|split\|subequations\|smallmatrix\|xxalignat\)\s*}"
+ syn match texBadMath		"\\end\s*{\s*\(align\|alignat\|displaymath\|displaymath\|eqnarray\|equation\|flalign\|gather\|math\|multline\|xalignat\)\*\=\s*}"
+ syn match texBadMath		"\\[\])]"
+endif
+
+" Math Zones: {{{1
+if !exists("tex_no_math")
+ " TexNewMathZone: function creates a mathzone with the given suffix and mathzone name. {{{2
+ "                 Starred forms are created if starform is true.  Starred
+ "                 forms have syntax group and synchronization groups with a
+ "                 "S" appended.  Handles: cluster, syntax, sync, and HiLink.
+ fun! TexNewMathZone(sfx,mathzone,starform)
+   let grpname  = "texMathZone".a:sfx
+   let syncname = "texSyncMathZone".a:sfx
+   exe "syn cluster texMathZones add=".grpname
+   exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'
+   exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+   exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+   exe 'HiLink '.grpname.' texMath'
+   if a:starform
+    let grpname  = "texMathZone".a:sfx.'S'
+    let syncname = "texSyncMathZone".a:sfx.'S'
+    exe "syn cluster texMathZones add=".grpname
+    exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'
+    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
+    exe 'HiLink '.grpname.' texMath'
+   endif
+ endfun
+
+ " Standard Math Zones: {{{2
+ call TexNewMathZone("A","align",1)
+ call TexNewMathZone("B","alignat",1)
+ call TexNewMathZone("C","displaymath",1)
+ call TexNewMathZone("D","eqnarray",1)
+ call TexNewMathZone("E","equation",1)
+ call TexNewMathZone("F","flalign",1)
+ call TexNewMathZone("G","gather",1)
+ call TexNewMathZone("H","math",1)
+ call TexNewMathZone("I","multline",1)
+ call TexNewMathZone("J","subequations",0)
+ call TexNewMathZone("K","xalignat",1)
+ call TexNewMathZone("L","xxalignat",0)
+
+ " Inline Math Zones: {{{2
+ syn region texMathZoneV	matchgroup=Delimiter start="\\("	matchgroup=Delimiter end="\\)\|%stopzone\>"	keepend contains=@texMathZoneGroup
+ syn region texMathZoneW	matchgroup=Delimiter start="\\\["	matchgroup=Delimiter end="\\]\|%stopzone\>"	keepend contains=@texMathZoneGroup
+ syn region texMathZoneX	matchgroup=Delimiter start="\$" skip="\\\\\|\\\$" matchgroup=Delimiter end="\$" end="%stopzone\>"	contains=@texMathZoneGroup
+ syn region texMathZoneY	matchgroup=Delimiter start="\$\$" matchgroup=Delimiter end="\$\$" end="%stopzone\>"	keepend		contains=@texMathZoneGroup
+ syn region texMathZoneZ	matchgroup=texStatement start="\\ensuremath\s*{" matchgroup=texStatement end="}" end="%stopzone\>"	contains=@texMathZoneGroup
+
+ syn match texMathOper		"[_^=]" contained
+
+ " \left..something.. and \right..something.. support: {{{2
+ syn match   texMathDelimBad	contained		"\S"
+ syn match   texMathDelim	contained		"\\\(left\|right\|[bB]igg\=[lr]\)\>"	skipwhite nextgroup=texMathDelimSet1,texMathDelimSet2,texMathDelimBad
+ syn match   texMathDelim	contained		"\\\(left\|right\)arrow\>\|\<\([aA]rrow\|brace\)\=vert\>"
+ syn match   texMathDelim	contained		"\\lefteqn\>"
+ syn match   texMathDelimSet2	contained	"\\"		nextgroup=texMathDelimKey,texMathDelimBad
+ syn match   texMathDelimSet1	contained	"[<>()[\]|/.]\|\\[{}|]"
+ syn keyword texMathDelimKey	contained	backslash       lceil           lVert           rgroup          uparrow
+ syn keyword texMathDelimKey	contained	downarrow       lfloor          rangle          rmoustache      Uparrow
+ syn keyword texMathDelimKey	contained	Downarrow       lgroup          rbrace          rvert           updownarrow
+ syn keyword texMathDelimKey	contained	langle          lmoustache      rceil           rVert           Updownarrow
+ syn keyword texMathDelimKey	contained	lbrace          lvert           rfloor
+endif
+
+" Special TeX characters  ( \$ \& \% \# \{ \} \_ \S \P ) : {{{1
+syn match texSpecialChar	"\\[$&%#{}_]"
+if b:tex_stylish
+  syn match texSpecialChar	"\\[SP@][^a-zA-Z@]"me=e-1
+else
+  syn match texSpecialChar	"\\[SP@]\A"me=e-1
+endif
+syn match texSpecialChar	"\\\\"
+if !exists("tex_no_math")
+ syn match texOnlyMath		"[_^]"
+endif
+syn match texSpecialChar	"\^\^[0-9a-f]\{2}\|\^\^\S"
+
+" Comments: {{{1
+"    Normal TeX LaTeX     :   %....
+"    Documented TeX Format:  ^^A...	-and-	leading %s (only)
+syn cluster texCommentGroup	contains=texTodo,@NoSpell
+syn case ignore
+syn keyword texTodo		contained		combak	fixme	todo	xxx
+syn case match
+if b:extfname == "dtx"
+  syn match texComment		"\^\^A.*$"	contains=@texCommentGroup
+  syn match texComment		"^%\+"		contains=@texCommentGroup
+else
+  if g:tex_fold_enabled
+   " allows syntax-folding of 2 or more contiguous comment lines
+   " single-line comments are not folded
+   syn match  texComment	"%.*$"		contains=@texCommentGroup
+   syn region texComment	start="^\zs\s*%.*\_s*%"	skip="^\s*%"	end='^\ze\s*[^%]' fold
+  else
+   syn match texComment		"%.*$"		contains=@texCommentGroup
+  endif
+endif
+
+" Separate lines used for verb` and verb# so that the end conditions {{{1
+" will appropriately terminate.  Ideally vim would let me save a
+" character from the start pattern and re-use it in the end-pattern.
+syn region texZone		start="\\begin{verbatim}"		end="\\end{verbatim}\|%stopzone\>"	contains=@Spell
+" listings package:
+syn region texZone		start="\\begin{lstlisting}"		end="\\end{lstlisting}\|%stopzone\>"	contains=@Spell
+" moreverb package:
+syn region texZone		start="\\begin{verbatimtab}"		end="\\end{verbatimtab}\|%stopzone\>"	contains=@Spell
+syn region texZone		start="\\begin{verbatimwrite}"		end="\\end{verbatimwrite}\|%stopzone\>"	contains=@Spell
+syn region texZone		start="\\begin{boxedverbatim}"		end="\\end{boxedverbatim}\|%stopzone\>"	contains=@Spell
+if version < 600
+ syn region texZone		start="\\verb\*\=`"			end="`\|%stopzone\>"
+ syn region texZone		start="\\verb\*\=#"			end="#\|%stopzone\>"
+else
+  if b:tex_stylish
+    syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z@]\)"	end="\z1\|%stopzone\>"
+  else
+    syn region texZone		start="\\verb\*\=\z([^\ta-zA-Z]\)"	end="\z1\|%stopzone\>"
+  endif
+endif
+
+" Tex Reference Zones: {{{1
+syn region texZone		matchgroup=texStatement start="@samp{"			end="}\|%stopzone\>"	contains=@texRefGroup
+syn region texRefZone		matchgroup=texStatement start="\\nocite{"		end="}\|%stopzone\>"	contains=@texRefGroup
+syn region texRefZone		matchgroup=texStatement start="\\bibliography{"		end="}\|%stopzone\>"	contains=@texRefGroup
+syn region texRefZone		matchgroup=texStatement start="\\label{"		end="}\|%stopzone\>"	contains=@texRefGroup
+syn region texRefZone		matchgroup=texStatement start="\\\(page\|eq\)ref{"	end="}\|%stopzone\>"	contains=@texRefGroup
+syn region texRefZone		matchgroup=texStatement start="\\v\=ref{"		end="}\|%stopzone\>"	contains=@texRefGroup
+syn match  texRefZone		'\\[cC]ite\%(\%(al\)\=\%([tp]\*\=\)\|num\|author\|year\|yearpar\|fullauthor\)\=' nextgroup=texRefOption,texCite
+syn match  texRefZone		'\\[cC]itetext' nextgroup=texRefOption,texFreeCite
+syn region texRefOption	contained	matchgroup=Delimiter start='\[' end=']'		contains=@texRefGroup,texCite	nextgroup=texRefOption,texCite
+syn region texCite	contained	matchgroup=Delimiter start='{' end='}'		contains=@texRefGroup
+syn region texFreeCite	contained	matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]" matchgroup=Delimiter end="}" contains=@texMatchGroup
+
+" Handle newcommand, newenvironment : {{{1
+syn match  texNewCmd				"\\newcommand\>"			nextgroup=texCmdName skipwhite skipnl
+syn region texCmdName contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texCmdArgs,texCmdBody skipwhite skipnl
+syn region texCmdArgs contained matchgroup=Delimiter start="\["rs=s+1 end="]"		nextgroup=texCmdBody skipwhite skipnl
+syn region texCmdBody contained matchgroup=Delimiter start="{"rs=s+1 skip="\\\\\|\\[{}]"	matchgroup=Delimiter end="}" contains=@texCmdGroup
+syn match  texNewEnv				"\\newenvironment\>"			nextgroup=texEnvName skipwhite skipnl
+syn region texEnvName contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texEnvBgn skipwhite skipnl
+syn region texEnvBgn  contained matchgroup=Delimiter start="{"rs=s+1  end="}"		nextgroup=texEnvEnd skipwhite skipnl contains=@texEnvGroup
+syn region texEnvEnd  contained matchgroup=Delimiter start="{"rs=s+1  end="}"		skipwhite skipnl contains=@texEnvGroup
+
+" Definitions/Commands: {{{1
+syn match texDefCmd				"\\def\>"				nextgroup=texDefName skipwhite skipnl
+if b:tex_stylish
+  syn match texDefName contained		"\\[a-zA-Z@]\+"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
+  syn match texDefName contained		"\\[^a-zA-Z@]"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
+else
+  syn match texDefName contained		"\\\a\+"				nextgroup=texDefParms,texCmdBody skipwhite skipnl
+  syn match texDefName contained		"\\\A"					nextgroup=texDefParms,texCmdBody skipwhite skipnl
+endif
+syn match texDefParms  contained		"#[^{]*"	contains=texDefParm	nextgroup=texCmdBody skipwhite skipnl
+syn match  texDefParm  contained		"#\d\+"
+
+" Tex URL Zones: {{{1
+syn region texURLZone		matchgroup=texURLZone start="\\\%(url\|href\){"		end="}\|%stopzone\>"	contains=@texURLGroup
+syn region texURLZone		matchgroup=texURLZone start="\\burl\%(alt\)\={"		end="}\|%stopzone\>"	contains=@texURLGroup
+syn region texURLZone		matchgroup=texURLZone start="\\\%(link\|email\){"	end="}\|%stopzone\>"	contains=@texURLGroup
+
+" Tex Acronym Zones: {{{1
+syn region texAcroZone		matchgroup=texAcroZone start="\\ac\%(fi\|[fls]\=p\=\)\*\={"	end="}\|%stopzone\>"	contains=@texAcroGroup
+syn region texAcroZone		matchgroup=texAcroZone start="\\ac\%(used\|[ls]u\*\=\){"		end="}\|%stopzone\>"	contains=@texAcroGroup
+
+" TeX Lengths: {{{1
+syn match  texLength		"\<\d\+\([.,]\d\+\)\=\s*\(true\)\=\s*\(bp\|cc\|cm\|dd\|em\|ex\|in\|mm\|pc\|pt\|sp\)\>"
+
+" TeX String Delimiters: {{{1
+syn match texString		"\(``\|''\|,,\)"
+
+" LaTeX synchronization: {{{1
+syn sync maxlines=200
+syn sync minlines=50
+
+syn  sync match texSyncStop			groupthere NONE		"%stopzone\>"
+
+" Synchronization: {{{1
+" The $..$ and $$..$$ make for impossible sync patterns
+" (one can't tell if a "$$" starts or stops a math zone by itself)
+" The following grouptheres coupled with minlines above
+" help improve the odds of good syncing.
+if !exists("tex_no_math")
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{abstract}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{center}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{description}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{enumerate}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{itemize}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{table}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\end{tabular}"
+ syn sync match texSyncMathZoneA		groupthere NONE		"\\\(sub\)*section\>"
+endif
+
+" Highlighting: {{{1
+if did_tex_syntax_inits == 1
+ let did_tex_syntax_inits= 2
+  " TeX highlighting groups which should share similar highlighting
+  if !exists("g:tex_no_error")
+   if !exists("tex_no_math")
+    HiLink texBadMath		texError
+    HiLink texMathDelimBad	texError
+    HiLink texMathError		texError
+    if !b:tex_stylish
+      HiLink texOnlyMath	texError
+    endif
+   endif
+   HiLink texError		Error
+  endif
+
+  HiLink texCite		texRefZone
+  HiLink texDefCmd		texDef
+  HiLink texDefName		texDef
+  HiLink texDocType		texCmdName
+  HiLink texDocTypeArgs		texCmdArgs
+  HiLink texInputFileOpt	texCmdArgs
+  HiLink texInputCurlies	texDelimiter
+  HiLink texLigature		texSpecialChar
+  if !exists("tex_no_math")
+   HiLink texMathDelimSet1	texMathDelim
+   HiLink texMathDelimSet2	texMathDelim
+   HiLink texMathDelimKey	texMathDelim
+   HiLink texMathMatcher	texMath
+   HiLink texMathZoneW		texMath
+   HiLink texMathZoneX		texMath
+   HiLink texMathZoneY		texMath
+   HiLink texMathZoneZ		texMath
+  endif
+  HiLink texSectionMarker	texCmdName
+  HiLink texSectionName		texSection
+  HiLink texSpaceCode		texStatement
+  HiLink texTypeSize		texType
+  HiLink texTypeStyle		texType
+
+   " Basic TeX highlighting groups
+  HiLink texAcroZone		Special
+  HiLink texCmdArgs		Number
+  HiLink texCmdName		Statement
+  HiLink texComment		Comment
+  HiLink texDef			Statement
+  HiLink texDefParm		Special
+  HiLink texDelimiter		Delimiter
+  HiLink texInput		Special
+  HiLink texInputFile		Special
+  HiLink texLength		Number
+  HiLink texMath		Special
+  HiLink texMathDelim		Statement
+  HiLink texMathOper		Operator
+  HiLink texNewCmd		Statement
+  HiLink texNewEnv		Statement
+  HiLink texOption		Number
+  HiLink texRefZone		Special
+  HiLink texSection		PreCondit
+  HiLink texSpaceCodeChar	Special
+  HiLink texSpecialChar		SpecialChar
+  HiLink texStatement		Statement
+  HiLink texString		String
+  HiLink texTodo		Todo
+  HiLink texType		Type
+  HiLink texURLZone		Special
+  HiLink texZone		PreCondit
+
+  delcommand HiLink
+endif
+
+" Current Syntax: {{{1
+unlet b:extfname
+let   b:current_syntax = "tex"
+" vim: ts=8 fdm=marker
diff --git a/.vim/vimplaterc b/.vim/vimplaterc
new file mode 100644
index 0000000..0af8747
--- /dev/null
+++ b/.vim/vimplaterc
@@ -0,0 +1,30 @@
+# This is an example configuration.
+# please see: http://napali.ch/vimplate
+
+# you can use $Config::opt instead command options:
+#   -user= -dir=
+$Config::opt = {
+                  dir  => '/home/madduck/templates',
+                  user => 'madduck',
+};
+
+# we need $Config::user with the option -user=
+$Config::user = {
+                   madduck  => {
+                                      firstname => 'Martin',
+                                      lastname  => 'Krafft',
+                                      mail      => 'mail@martin-krafft.net',
+                                      etc       => '...',
+                   },
+                   otherUser   => {
+                                      firstname => 'otherFirstname',
+                                      lastname  => 'otherLastname',
+                                      mail      => 'otherMail@example.org',
+                   },
+};
+
+# use $Config::var for your own variables or subroutines
+$Config::var = {
+                 yourArray => [ 'Perl', 'C', 'C++' ],
+                 example   => sub{ time },
+};
diff --git a/.vimrc b/.vimrc
new file mode 100644
index 0000000..3ea3e40
--- /dev/null
+++ b/.vimrc
@@ -0,0 +1,1523 @@
+" obtained from the output of :options, then postprocessed:
+"   d2}
+"   :%s/^ *[[:digit:]]\+/"""
+"   qa
+"   ma
+"   wi\n
+"   /^\([^[:space:]"].*\)\?$/
+"   k
+"   :'a,.s/^/" /
+"   /^[^[:space:]"]
+"   O
+"   :%s,\n\n\n",\r\r"
+
+""" important
+
+" compatible
+" behave very Vi compatible (not advisable)
+"       set cp  nocp
+set nocp
+
+" cpoptions
+" list of flags to specify Vi compatibility
+"       set cpo=aABceFs
+
+" insertmode
+" use Insert mode as the default mode
+"       set noim        im
+
+" paste
+" paste mode, insert typed text literally
+"       set nopaste     paste
+
+" pastetoggle
+" key sequence to toggle paste mode
+"       set pt=
+set pt=
+
+" runtimepath
+" list of directories used for runtime files and plugins
+"       set rtp=/home/madduck/.vim,/usr/share/vim/vimfiles,/usr/share/vim/vimcurrent,/usr/share/vim/vimfiles/after,/home/madduck/.vim/after
+
+" helpfile
+" name of the main help file
+"       set hf=/usr/share/vim/vimcurrent/doc/help.txt
+
+""" moving around, searching and patterns
+
+" whichwrap
+" list of flags specifying which commands wrap to another line
+"       (local to window)
+"       set ww=
+set ww=b,s,[,<,>,],~
+
+" startofline
+" many jump commands move the cursor to the first non-blank
+"       character of a line
+"       set sol nosol
+
+" paragraphs
+" nroff macro names that separate paragraphs
+"       set para=IPLPPPQPP\ LIpplpipbp
+
+" sections
+" nroff macro names that separate sections
+"       set sect=SHNHH\ HUnhsh
+
+" path
+" list of directory names used for file searching
+"       (global or local to buffer)
+"       set pa=.,/usr/include,,
+
+" cdpath
+" list of directory names used for :cd
+"       set cd=,,
+
+" wrapscan
+" search commands wrap around the end of the buffer
+"       set ws  nows
+"set ws
+
+" incsearch
+" show match for partly typed search command
+"       set nois        is
+set is
+
+" magic
+" change the way backslashes are used in search patterns
+"       set magic       nomagic
+
+" ignorecase
+" ignore case when using a search pattern
+"       set noic        ic
+set ic
+
+" smartcase
+" override 'ignorecase' when pattern has upper case characters
+"       set noscs       scs
+set scs
+
+" casemap
+" What method to use for changing case of letters
+"       set cmp=internal,keepascii
+
+" maxmempattern
+" maximum amount of memory in Kbyte used for pattern matching
+"       set mmp=1000
+
+" define
+" pattern for a macro definition line
+"       (global or local to buffer)
+"       set def=^\\s*#\\s*define
+
+" include
+" pattern for an include-file line
+"       (local to buffer)
+"       set inc=^\\s*#\\s*include
+
+" includeexpr
+" expression used to transform an include line to a file name
+"       (local to buffer)
+"       set inex=
+
+""" tags
+
+" tagbsearch
+" use binary searching in tags files
+"       set tbs notbs
+
+" taglength
+" number of significant characters in a tag name or zero
+"       set tl=0
+
+" tags
+" list of file names to search for tags
+"       (global or local to buffer)
+"       set tag=./tags,./TAGS,tags,TAGS
+
+" tagrelative
+" file names in a tags file are relative to the tags file
+"       set notr        tr
+
+" tagstack
+" a :tag command will use the tagstack
+"       set tgst        notgst
+
+" showfulltag
+" when completing tags in Insert mode show more info
+"       set nosft       sft
+
+" cscopeprg
+" command for executing cscope
+"       set csprg=cscope
+
+" cscopetag
+" use cscope for tag commands
+"       set nocst       cst
+
+" cscopetagorder
+" 0 or 1; the order in which ":cstag" performs a search
+"       set csto=0
+
+" cscopeverbose
+" give messages when adding a cscope database
+"       set nocsverb    csverb
+
+" cscopepathcomp
+" how many components of the path to show
+"       set cspc=0
+
+" cscopequickfix
+" When to open a quickfix window for cscope
+"       set csqf=
+
+""" displaying text
+
+" scroll
+" number of lines to scroll for CTRL-U and CTRL-D
+"       (local to window)
+"       set scr=8
+
+" scrolloff
+" number of screen lines to show around the cursor
+"       set so=0
+set so=5
+
+" wrap
+" long lines wrap
+"       set wrap        nowrap
+set nowrap
+
+" linebreak
+" wrap long lines at a character in 'breakat'
+"       (local to window)
+"       set nolbr       lbr
+" does not work with autocmd set list/nolist below
+
+" breakat
+" which characters might cause a line break
+"       set brk=\ \     !@*-+;:,./?
+
+" showbreak
+" string to put before wrapped screen lines
+"       set sbr=
+
+" sidescroll
+" minimal number of columns to scroll horizontally
+"       set ss=0
+
+" sidescrolloff
+" minimal number of columns to keep left and right of the cursor
+"       set siso=0
+set siso=0
+
+" display
+" include "lastline" to show the last line even if it doesn't fit
+"       include "uhex" to show unprintable characters as a hex number
+"       set dy=
+set dy=lastline,uhex
+
+" fillchars
+" characters to use for the status line, folds and filler lines
+"       set fcs=vert:\|,fold:-
+
+" cmdheight
+" number of lines used for the command-line
+"       set ch=1
+
+" columns
+" width of the display
+"       set co=80
+
+" lines
+" number of lines in the display
+"       set lines=25
+
+" lazyredraw
+" don't redraw while executing macros
+"       set nolz        lz
+set lz
+
+" writedelay
+" delay in msec for each char written to the display
+"       (for debugging)
+"       set wd=0
+
+" list
+" show  as ^I and end-of-line as $
+"       (local to window)
+"       set nolist      list
+set list
+
+" listchars
+" list of strings used for list mode
+"       set lcs=eol:$
+set lcs=tab:⇝·,trail:·
+
+" number
+" show the line number for each line
+"       (local to window)
+"       set nonu        nu
+
+" numberwidth
+" number of columns to use for the line number
+"       (local to window)
+"       set nuw=8
+
+""" syntax, highlighting and spelling
+
+" background
+" "dark" or "light"; the background color brightness
+"       set bg=light
+
+" filetype
+" type of file; triggers the FileType event when set
+"       (local to buffer)
+"       set ft=
+
+" syntax
+" name of syntax highlighting used
+"       (local to buffer)
+"       set syn=
+
+" synmaxcol
+" maximum column to look for syntax items
+"       (local to buffer)
+"       set smc=3000
+
+" highlight
+" which highlighting to use for various occasions
+"       set hl=8:SpecialKey,@:NonText,d:Directory,e:ErrorMsg,i:IncSearch,l:Search,m:MoreMsg,M:ModeMsg,n:LineNr,r:Question,s:StatusLine,S:StatusLineNC,c:VertSplit,t:Title,v:Visual,V:VisualNOS,w:WarningMsg,W:WildMenu,f:Folded,F:FoldColumn,A:DiffAdd,C:DiffChange,D:DiffDelete,T:DiffText,>:SignColumn,B:SpellBad,P:SpellCap,R:SpellRare,L:SpellLocal,+:Pmenu,=:PmenuSel,x:PmenuSbar,X:PmenuThumb,*:TabLine,#:TabLineSel,_:TabLineFill,!:CursorColumn,.:CursorLine
+
+" hlsearch
+" highlight all matches for the last used search pattern
+"       set nohls       hls
+set hls
+
+" cursorcolumn
+" highlight the screen column of the cursor
+"       (local to window)
+"       set nocuc       cuc
+
+" cursorline
+" highlight the screen line of the cursor
+"       (local to window)
+"       set nocul       cul
+
+" spell
+" highlight spelling mistakes
+"       (local to window)
+"       set nospell     spell
+
+" spelllang
+" list of accepted languages
+"       (local to buffer)
+"       set spl=en
+
+" spellfile
+" file that "zg" adds good words to
+"       (local to buffer)
+"       set spf=
+
+" spellcapcheck
+" pattern to locate the end of a sentence
+"       (local to buffer)
+"       set spc=[.?!]\\_[\\])'\"\       \ ]\\+
+set spc=
+
+" spellsuggest
+" methods used to suggest corrections
+"       set sps=best
+
+" mkspellmem
+" amount of memory used by :mkspell before compressing
+"       set msm=460000,2000,500
+
+""" multiple windows
+
+" laststatus
+" 0, 1 or 2; when to use a status line for the last window
+"       set ls=1
+
+" statusline
+" alternate format to be used for a status line
+"       set stl=
+
+" equalalways
+" make all windows the same size when adding/removing windows
+"       set ea  noea
+
+" eadirection
+" in which direction 'equalalways' works: "ver", "hor" or "both"
+"       set ead=both
+
+" winheight
+" minimal number of lines used for the current window
+"       set wh=1
+
+" winminheight
+" minimal number of lines used for any window
+"       set wmh=1
+
+" winfixheight
+" keep the height of the window
+"       (local to window)
+"       set nowfh       wfh
+
+" winfixwidth
+" keep the width of the window
+"       (local to window)
+"       set nowfw       wfw
+
+" winwidth
+" minimal number of columns used for the current window
+"       set wiw=20
+
+" winminwidth
+" minimal number of columns used for any window
+"       set wmw=1
+
+" helpheight
+" initial height of the help window
+"       set hh=20
+
+" previewheight
+" default height for the preview window
+"       set pvh=12
+
+" previewwindow
+" identifies the preview window
+"       (local to window)
+"       set nopvw       pvw
+
+" hidden
+" don't unload a buffer when no longer shown in a window
+"       set nohid       hid
+
+" switchbuf
+" "useopen" and/or "split"; which window to use when jumping
+"       to a buffer
+"       set swb=
+
+" splitbelow
+" a new window is put below the current one
+"       set nosb        sb
+
+" splitright
+" a new window is put right of the current one
+"       set nospr       spr
+
+" scrollbind
+" this window scrolls together with other bound windows
+"       (local to window)
+"       set noscb       scb
+
+" scrollopt
+" "ver", "hor" and/or "jump"; list of options for 'scrollbind'
+"       set sbo=ver,jump
+
+""" multiple tab pages
+
+" showtabline
+" 0, 1 or 2; when to use a tab pages line
+"       set stal=1
+
+" tabpagemax
+" maximum number of tab pages to open for -p and "tab all"
+"       set tpm=10
+
+" tabline
+" custom tab pages line
+"       set tal=
+
+""" terminal
+
+" term
+" name of the used terminal
+"       set term=rxvt-unicode
+
+" ttytype
+" alias for 'term'
+"       set tty=rxvt-unicode
+
+" ttybuiltin
+" check built-in termcaps first
+"       set tbi notbi
+
+" ttyfast
+" terminal connection is fast
+"       set tf  notf
+
+" weirdinvert
+" terminal that requires extra redrawing
+"       set nowiv       wiv
+
+" esckeys
+" recognize keys that start with  in Insert mode
+"       set noek        ek
+
+" scrolljump
+" minimal number of lines to scroll at a time
+"       set sj=1
+
+" ttyscroll
+" maximum number of lines to use scrolling instead of redrawing
+"       set tsl=999
+
+" title
+" show info in the window title
+"       set notitle     title
+set notitle
+
+" titlelen
+" percentage of 'columns' used for the window title
+"       set titlelen=85
+
+" titlestring
+" when not empty, string to be used for the window title
+"       set titlestring=
+
+" titleold
+" string to restore the title to when exiting Vim
+"       set titleold=Thanks\ for\ flying\ Vim
+
+" icon
+" set the text of the icon for this window
+"       set noicon      icon
+
+" iconstring
+" when not empty, text for the icon of this window
+"       set iconstring=
+
+""" using the mouse
+
+" mouse
+" list of flags for using the mouse
+"       set mouse=
+
+" mousemodel
+" "extend", "popup" or "popup_setpos"; what the right
+"       mouse button is used for
+"       set mousem=extend
+
+" mousetime
+" maximum time in msec to recognize a double-click
+"       set mouset=500
+
+" ttymouse
+" "xterm", "xterm2", "dec" or "netterm"; type of mouse
+"       set ttym=xterm
+
+""" printing
+
+" printoptions
+" list of items that control the format of :hardcopy output
+"       set popt=
+
+" printdevice
+" name of the printer to be used for :hardcopy
+"       set pdev=
+
+" printexpr
+" expression used to print the PostScript file for :hardcopy
+"       set pexpr=system('lpr'\ .\ (&printdevice\ ==\ ''\ ?\ ''\ :\ '\ -P'\ .\ &printdevice)\ .\ '\ '\ .\ v:fname_in)\ .\ delete(v:fname_in)\ +\ v:shell_error
+set pexpr=system('lp'\ .\ (&printdevice\ ==\ ''\ ?\ ''\ :\ '\ -d'\ .\ &printdevice)\ .\ '\ '\ .\ v:fname_in)\ .\ delete(v:fname_in)\ +\ v:shell_error
+
+" printfont
+" name of the font to be used for :hardcopy
+"       set pfn=courier
+
+" printheader
+" format of the header used for :hardcopy
+"       set pheader=%<%f%h%m%=Page\ %N
+
+" printencoding
+" encoding used to print the PostScript file for :hardcopy
+"       set penc=
+
+" printmbcharset
+" the CJK character set to be used for CJK output from :hardcopy
+"       set pmbcs=
+
+" printmbfont
+" list of font names to be used for CJK output from :hardcopy
+"       set pmbfn=
+
+""" messages and info
+
+" terse
+" add 's' flag in 'shortmess' (don't show search message)
+"       set noterse     terse
+
+" shortmess
+" list of flags to make messages shorter
+"       set shm=
+set shortmess=atTWoOI
+
+" showcmd
+" show (partial) command keys in the status line
+"       set nosc        sc
+
+" showmode
+" display the current mode in the status line
+"       set nosmd       smd
+
+" ruler
+" show cursor position below each window
+"       set noru        ru
+set ruler
+
+" rulerformat
+" alternate format to be used for the ruler
+"       set ruf=%20(%=%-14(%l,%c%V%)\ %P%)
+
+" report
+" threshold for reporting number of changed lines
+"       set report=2
+
+" verbose
+" the higher the more messages are given
+"       set vbs=0
+
+" verbosefile
+" file to write messages in
+"       set vfile=
+
+" more
+" pause listings when the screen is full
+"       set nomore      more
+
+" confirm
+" start a dialog when a command fails
+"       set nocf        cf
+
+" errorbells
+" ring the bell for error messages
+"       set noeb        eb
+
+" visualbell
+" use a visual bell instead of beeping
+"       set novb        vb
+
+" helplang
+" list of preferred languages for finding help
+"       set hlg=en
+
+""" selecting text
+
+" selection
+" "old", "inclusive" or "exclusive"; how selecting text behaves
+"       set sel=inclusive
+
+" selectmode
+" "mouse", "key" and/or "cmd"; when to start Select mode
+"       instead of Visual mode
+"       set slm=
+
+" keymodel
+" "startsel" and/or "stopsel"; what special keys can do
+"       set km=
+
+""" editing text
+
+" undolevels
+" maximum number of changes that can be undone
+"       set ul=1000
+
+" modified
+" changes have been made and not written to a file
+"       (local to buffer)
+"       set nomod       mod
+
+" readonly
+" buffer is not to be written
+"       (local to buffer)
+"       set noro        ro
+
+" modifiable
+" changes to the text are not possible
+"       (local to buffer)
+"       set ma  noma
+
+" textwidth
+" line length above which to break a line
+"       (local to buffer)
+"       set tw=0
+set tw=78
+
+" wrapmargin
+" margin from the right in which to break a line
+"       (local to buffer)
+"       set wm=0
+
+" backspace
+" specifies what , CTRL-W, etc. can do in Insert mode
+"       set bs=
+set bs=indent,eol,start
+
+" comments
+" definition of what comment lines look like
+"       (local to buffer)
+"       set com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
+
+" formatoptions
+" list of flags that tell how automatic formatting works
+"       (local to buffer)
+"       set fo=vt
+set fo=tcroqn1l
+
+" formatlistpat
+" pattern to recognize a numbered list
+"       (local to buffer)
+"       set flp=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
+let &flp='^\v\s*(((#|\a|\d{,4}|[ivx]{,4})[]:.)}/])+|[-\*.·→+])\s+'
+
+" formatexpr
+" expression used for "gq" to format lines
+"       (local to buffer)
+"       set fex=
+
+" complete
+" specifies how Insert mode completion works for CTRL-N and CTRL-P
+"       (local to buffer)
+"       set cpt=.,w,b,u,t,i
+
+" completeopt
+" whether to use a popup menu for Insert mode completion
+"       set cot=menu,preview
+
+" pumheight
+" maximum height of the popup menu
+"       set ph=0
+
+" completefunc
+" user defined function for Insert mode completion
+"       (local to buffer)
+"       set cfu=
+
+" omnifunc
+" function for filetype-specific Insert mode completion
+"       (local to buffer)
+"       set ofu=
+
+" dictionary
+" list of dictionary files for keyword completion
+"       (global or local to buffer)
+"       set dict=
+
+" thesaurus
+" list of thesaurus files for keyword completion
+"       (global or local to buffer)
+"       set tsr=
+
+" infercase
+" adjust case of a keyword completion match
+"       (local to buffer)
+"       set noinf       inf
+set inf
+
+" digraph
+" enable entering digraps with c1  c2
+"       set nodg        dg
+"set dg
+
+" tildeop
+" the "~" command behaves like an operator
+"       set notop       top
+"set tildeop
+
+" operatorfunc
+" function called for the"g@"  operator
+"       set opfunc=
+
+" showmatch
+" When inserting a bracket, briefly jump to its match
+"       set nosm        sm
+
+" matchtime
+" tenth of a second to show a match for 'showmatch'
+"       set mat=5
+
+" matchpairs
+" list of pairs that match for the "%" command
+"       (local to buffer)
+"       set mps=(:),{:},[:]
+
+" joinspaces
+" use two spaces after '.' when joining a line
+"       set js  nojs
+set nojs
+
+" nrformats
+" "alpha", "octal" and/or "hex"; number formats recognized for
+"       CTRL-A and CTRL-X commands
+"       (local to buffer)
+"       set nf=octal,hex
+
+""" tabs and indenting
+
+" tabstop
+" number of spaces a  in the text stands for
+"       (local to buffer)
+"       set ts=8
+"
+"         You could set the 'tabstop' option to 2.  However, if you edit the file
+"         another time, with 'tabstop' set to the default value of 8, it will look
+"         wrong.  In other programs and when printing the indent will also be
+"         wrong.  Therefore it is recommended to keep 'tabstop' at eight all the
+"         time.  That's the standard value everywhere.
+"
+"set ts=2
+
+" shiftwidth
+" number of spaces used for each step of (auto)indent
+"       (local to buffer)
+"       set sw=8
+set sw=2
+
+" smarttab
+" a  in an indent inserts 'shiftwidth' spaces
+"       set nosta       sta
+set sta
+
+" softtabstop
+" if non-zero, number of spaces to insert for a 
+"       (local to buffer)
+"       set sts=0
+set sts=2
+
+" shiftround
+" round to 'shiftwidth' for "<<" and ">>"
+"       set nosr        sr
+set sr
+
+" expandtab
+" expand  to spaces in Insert mode
+"       (local to buffer)
+"       set noet        et
+set et
+
+" autoindent
+" automatically set the indent of a new line
+"       (local to buffer)
+"       set noai        ai
+set ai
+
+" smartindent
+" do clever autoindenting
+"       (local to buffer)
+"       set nosi        si
+
+" cindent
+" enable specific indenting for C code
+"       (local to buffer)
+"       set nocin       cin
+
+" cinoptions
+" options for C-indenting
+"       (local to buffer)
+"       set cino=
+
+" cinkeys
+" keys that trigger C-indenting in Insert mode
+"       (local to buffer)
+"       set cink=0{,0},0),:,0#,!^F,o,O,e
+
+" cinwords
+" list of words that cause more C-indent
+"       (local to buffer)
+"       set cinw=if,else,while,do,for,switch
+
+" indentexpr
+" expression used to obtain the indent of a line
+"       (local to buffer)
+"       set inde=
+
+" indentkeys
+" keys that trigger indenting with 'indentexpr' in Insert mode
+"       (local to buffer)
+"       set indk=0{,0},:,0#,!^F,o,O,e
+
+" copyindent
+" Copy whitespace for indenting from previous line
+"       (local to buffer)
+"       set noci        ci
+set ci
+
+" preserveindent
+" Preserve kind of whitespace when changing indent
+"       (local to buffer)
+"       set nopi        pi
+""" set pi this ABORTS < 1:7.1-135+1 (see #446268)
+if has('patch073')
+  set pi
+endif
+
+" lisp
+" enable lisp mode
+"       (local to buffer)
+"       set nolisp      lisp
+
+" lispwords
+" words that change how lisp indenting works
+"       set lw=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object
+
+""" folding
+
+" foldenable
+" set to display all folds open
+"       (local to window)
+"       set fen nofen
+
+" foldlevel
+" folds with a level higher than this number will be closed
+"       (local to window)
+"       set fdl=0
+
+" foldlevelstart
+" value for 'foldlevel' when starting to edit a file
+"       set fdls=-1
+
+" foldcolumn
+" width of the column used to indicate folds
+"       (local to window)
+"       set fdc=0
+
+" foldtext
+" expression used to display the text of a closed fold
+"       (local to window)
+"       set fdt=foldtext()
+
+" foldclose
+" set to "all" to close a fold when the cursor leaves it
+"       set fcl=
+
+" foldopen
+" specifies for which commands a fold will be opened
+"       set fdo=block,hor,mark,percent,quickfix,search,tag,undo
+
+" foldminlines
+" minimum number of screen lines for a fold to be closed
+"       (local to window)
+"       set fml=1
+
+" commentstring
+" template for comments; used to put the marker in
+"       set cms=/*%s*/
+
+" foldmethod
+" folding type: "manual", "indent", "expr", "marker" or "syntax"
+"       (local to window)
+"       set fdm=manual
+set fdm=marker
+
+" foldexpr
+" expression used when 'foldmethod' is "expr"
+"       (local to window)
+"       set fde=0
+
+" foldignore
+" used to ignore lines when 'foldmethod' is "indent"
+"       (local to window)
+"       set fdi=#
+
+" foldmarker
+" markers used when 'foldmethod' is "marker"
+"       (local to window)
+"       set fmr={{{,}}}
+
+" foldnestmax
+" maximum fold depth for when 'foldmethod is "indent" or "syntax"
+"       (local to window)
+"       set fdn=20
+
+""" diff mode
+
+" diff
+" use diff mode for the current window
+"       (local to window)
+"       set nodiff      diff
+
+" diffopt
+" options for using diff mode
+"       set dip=filler
+
+" diffexpr
+" expression used to obtain a diff file
+"       set dex=
+
+" patchexpr
+" expression used to patch a file
+"       set pex=
+
+""" mapping
+
+" maxmapdepth
+" maximum depth of mapping
+"       set mmd=1000
+
+" remap
+" recognize mappings in mapped keys
+"       set remap       noremap
+
+" timeout
+" allow timing out halfway into a mapping
+"       set to  noto
+
+" ttimeout
+" allow timing out halfway into a key code
+"       set nottimeout  ttimeout
+
+" timeoutlen
+" time in msec for 'timeout'
+"       set tm=1000
+
+" ttimeoutlen
+" time in msec for 'ttimeout'
+"       set ttm=-1
+
+""" reading and writing files
+
+" modeline
+" enable using settings from modelines when reading a file
+"       (local to buffer)
+"       set noml        ml
+set ml
+
+" modelines
+" number of lines to check for modelines
+"       set mls=5
+
+" binary
+" binary file editing
+"       (local to buffer)
+"       set nobin       bin
+
+" endofline
+" last line in the file has an end-of-line
+"       (local to buffer)
+"       set eol noeol
+
+" bomb
+" Prepend a Byte Order Mark to the file
+"       (local to buffer)
+"       set nobomb      bomb
+
+" fileformat
+" end-of-line format: "dos", "unix" or "mac"
+"       (local to buffer)
+"       set ff=unix
+
+" fileformats
+" list of file formats to look for when editing a file
+"       set ffs=
+
+" textmode
+" obsolete, use 'fileformat'
+"       (local to buffer)
+"       set notx        tx
+
+" textauto
+" obsolete, use 'fileformats'
+"       set nota        ta
+
+" write
+" writing files is allowed
+"       set write       nowrite
+
+" writebackup
+" write a backup file before overwriting a file
+"       set wb  nowb
+
+" backup
+" keep a backup after overwriting a file
+"       set nobk        bk
+
+" backupskip
+" patterns that specify for which files a backup is not made
+"       set bsk=/tmp/*
+
+" backupcopy
+" whether to make the backup as a copy or rename the existing file
+"       set bkc=yes
+
+" backupdir
+" list of directories to put backup files in
+"       set bdir=.,/home/madduck/tmp,/home/madduck/
+
+" backupext
+" file name extension for the backup file
+"       set bex=~
+
+" autowrite
+" automatically write a file when leaving a modified buffer
+"       set noaw        aw
+set aw
+
+" autowriteall
+" as 'autowrite', but works with more commands
+"       set noawa       awa
+set awa
+
+" writeany
+" always write without asking for confirmation
+"       set nowa        wa
+
+" autoread
+" automatically read a file when it was modified outside of Vim
+"       (global or local to buffer)
+"       set noar        ar
+set ar
+
+" patchmode
+" keep oldest version of a file; specifies file name extension
+"       set pm=
+
+" fsync
+" forcibly sync the file to disk after writing it
+"       set fs  nofs
+
+" shortname
+" use 8.3 file names
+"       (local to buffer)
+"       set nosn        sn
+
+""" the swap file
+
+" directory
+" list of directories for the swap file
+"       set dir=.,/home/madduck/tmp,/var/tmp,/tmp
+set dir=.,$TMPDIR//,/var/tmp//,/tmp//
+
+" swapfile
+" use a swap file for this buffer
+"       (local to buffer)
+"       set swf noswf
+
+" swapsync
+" "sync", "fsync" or empty; how to flush a swap file to disk
+"       set sws=fsync
+set sws=
+
+" updatecount
+" number of characters typed to cause a swap file update
+"       set uc=200
+
+" updatetime
+" time in msec after which the swap file will be updated
+"       set ut=4000
+set ut=10000
+
+" maxmem
+" maximum amount of memory in Kbyte used for one buffer
+"       set mm=1030480
+
+" maxmemtot
+" maximum amount of memory in Kbyte used for all buffers
+"       set mmt=1030480
+
+""" command line editing
+
+" history
+" how many command lines are remembered 
+"       set hi=0
+set hi=100
+
+" wildchar
+" key that triggers command-line expansion
+"       set wc=5
+
+" wildcharm
+" like 'wildchar' but can also be used in a mapping
+"       set wcm=0
+
+" wildmode
+" specifies how command line completion works
+"       set wim=full
+set wim=list:full
+
+" suffixes
+" list of file name extensions that have a lower priority
+"       set su=.bak,~,.o,.h,.info,.swp,.obj
+
+" suffixesadd
+" list of file name extensions added when searching for a file
+"       (local to buffer)
+"       set sua=
+
+" wildignore
+" list of patterns to ignore files for file name completion
+"       set wig=
+set wig=*.o,*.pyc,*.pyo,*~,*.bk,*.bak
+
+" wildmenu
+" command-line completion shows a list of matches
+"       set nowmnu      wmnu
+
+" cedit
+" key used to open the command-line window
+"       set cedit=
+
+" cmdwinheight
+" height of the command-line window
+"       set cwh=7
+
+""" executing external commands
+
+" shell
+" name of the shell program used for external commands
+"       set sh=/bin/zsh
+
+" shellquote
+" character(s) to enclose a shell command in
+"       set shq=
+
+" shellxquote
+" like 'shellquote' but include the redirection
+"       set sxq=
+
+" shellcmdflag
+" argument for 'shell' to execute a command
+"       set shcf=-c
+
+" shellredir
+" used to redirect command output to a file
+"       set srr=>%s\ 2>&1
+
+" shelltemp
+" use a temp file for shell commands instead of using a pipe
+"       set nostmp      stmp
+
+" equalprg
+" program used for "=" command
+"       (global or local to buffer)
+"       set ep=
+
+" formatprg
+" program used to format lines with "gq" command
+"       set fp=
+
+" keywordprg
+" program used for the "K" command
+"       set kp=man
+
+" warn
+" warn when using a shell command and a buffer has changes
+"       set warn        nowarn
+set warn
+
+""" running make and jumping to errors
+
+" errorfile
+" name of the file that contains error messages
+"       set ef=errors.err
+
+" errorformat
+" list of formats for error messages
+"       (global or local to buffer)
+"       set efm=%*[^\"]\"%f\"%*\\D%l:\ %m,\"%f\"%*\\D%l:\ %m,%-G%f:%l:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,%-G%f:%l:\ for\ each\ function\ it\ appears\ in.),%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',%D%*\\a:\ Entering\ directory\ `%f',%X%*\\a:\ Leaving\ directory\ `%f',%DMaking\ %*\\a\ in\ %f,%f\|%l\|\ %m
+
+" makeprg
+" program used for the ":make" command
+"       (global or local to buffer)
+"       set mp=make
+
+" shellpipe
+" string used to put the output of ":make" in the error file
+"       set sp=2>&1\|\ tee
+
+" makeef
+" name of the errorfile for the 'makeprg' command
+"       set mef=
+
+" grepprg
+" program used for the ":grep" command
+"       (global or local to buffer)
+"       set gp=grep\ -n\ $*\ /dev/null
+
+" grepformat
+" list of formats for output of 'grepprg'
+"       set gfm=%f:%l:%m,%f:%l%m,%f\ \ %l%m
+
+""" language specific
+
+" isfname
+" specifies the characters in a file name
+"       set isf=@,48-57,/,.,-,_,+,,,#,$,%,~,=
+
+" isident
+" specifies the characters in an identifier
+"       set isi=@,48-57,_,192-255
+
+" iskeyword
+" specifies the characters in a keyword
+"       (local to buffer)
+"       set isk=@,48-57,_
+
+" isprint
+" specifies printable characters
+"       set isp=@,161-255
+
+" quoteescape
+" specifies escape characters in a string
+"       (local to buffer)
+"       set qe=\\
+
+" rightleft
+" display the buffer right-to-left
+"       (local to window)
+"       set norl        rl
+
+" rightleftcmd
+" When to edit the command-line right-to-left
+"       (local to window)
+"       set rlc=search
+
+" revins
+" Insert characters backwards
+"       set nori        ri
+
+" allowrevins
+" Allow CTRL-_ in Insert and Command-line mode to toggle 'revins'
+"       set noari       ari
+
+" aleph
+" the ASCII code for the first letter of the Hebrew alphabet
+"       set al=224
+
+" hkmap
+" use Hebrew keyboard mapping
+"       set nohk        hk
+
+" hkmapp
+" use phonetic Hebrew keyboard mapping
+"       set nohkp       hkp
+
+" altkeymap
+" use Farsi as the second language when 'revins' is set
+"       set noakm       akm
+
+" fkmap
+" use Farsi keyboard mapping
+"       set nofk        fk
+
+" arabic
+" Prepare for editing Arabic text
+"       (local to window)
+"       set noarab      arab
+
+" arabicshape
+" Perform shaping of Arabic characters
+"       set noarshape   noarshape
+
+" termbidi
+" Terminal will perform bidi handling
+"       set notbidi     tbidi
+
+" keymap
+" name of a keyboard mappping
+"       set kmp=
+
+" langmap
+" translate characters for Normal mode
+"       set lmap=
+
+" iminsert
+" in Insert mode: 1: use :lmap; 2: use IM; 0: neither
+"       (local to window)
+"       set imi=0
+
+" imsearch
+" entering a search pattern: 1: use :lmap; 2: use IM; 0: neither
+"       (local to window)
+"       set ims=0
+
+""" multi-byte characters
+
+" encoding
+" character encoding used in Vim: "latin1", "utf-8"
+"       "euc-jp", "big5", etc.
+"       set enc=utf-8
+
+" fileencoding
+" character encoding for the current file
+"       (local to buffer)
+"       set fenc=utf-8
+
+" fileencodings
+" automatically detected character encodings
+"       set fencs=ucs-bom,utf-8,default,latin1
+
+" termencoding
+" character encoding used by the terminal
+"       set tenc=
+
+" charconvert   expression
+" used for character encoding conversion
+"       set ccv=
+
+" delcombine
+" Delete combining (composing) characters on their own
+"       set nodeco      deco
+
+" maxcombine
+" Maximum number of combining (composing) characters displayed
+"       set mco=2
+
+" ambiwidth
+" Width of ambiguous width characters
+"       set ambw=single
+
+""" various
+
+" virtualedit
+" when to use virtual editing: "block", "insert" and/or "all"
+"       set ve=
+
+" eventignore
+" list of autocommand events which are to be ignored
+"       set ei=
+
+" loadplugins
+" load plugin scripts when starting up
+"       set nolpl       lpl
+set lpl
+
+" exrc
+" enable reading .vimrc/.exrc/.gvimrc in the current directory
+"       set noex        ex
+
+" secure
+" safer working with script files in the current directory
+"       set nosecure    secure
+set secure
+
+" gdefault
+" use the 'g' flag for ":substitute"
+"       set nogd        gd
+
+" edcompatible
+" 'g' and 'c' flags of ":substitute" toggle
+"       set noed        ed
+
+" maxfuncdepth
+" maximum depth of function calls
+"       set mfd=100
+
+" sessionoptions
+" list of words that specifies what to put in a session file
+"       set ssop=blank,buffers,curdir,folds,help,options,tabpages,winsize
+
+" viewoptions
+" list of words that specifies what to save for :mkview
+"       set vop=folds,options,cursor
+
+" viewdir
+" directory where to store files with :mkview
+"       set vdir=/home/madduck/.vim/view
+set vdir=$VARDIR/vim/view
+
+" viminfo
+" list that specifies what to write in the viminfo file
+"       set vi=
+set vi=<1000,'1000,\"1000,:100,/100,@100,f1,%,!,h,n$VARDIR/vim/viminfo
+
+" bufhidden
+" what happens with a buffer when it's no longer in a window
+"       (local to buffer)
+"       set bh=
+
+" buftype
+" "", "nofile", "nowrite" or "quickfix": type of buffer
+"       (local to buffer)
+"       set bt=
+
+" buflisted
+" whether the buffer shows up in the buffer list
+"       (local to buffer)
+"       set bl  nobl
+
+" debug
+" set to "msg" to see all error messages
+"       set debug=
+
+if &cp | set nocp | endif
+let s:cpo_save=&cpo
+set cpo&vim
+
+let g:netrw_home="$VARDIR/vim"
+
+filetype plugin indent on
+syntax on
+colorscheme madduck
+
+" leave the w mark whenever a file is written
+autocmd BufWrite * normal mw
+
+autocmd BufRead *.vcf set filetype=vcard
+
+" leave the i mark whenever we go idle (after updatetime)
+"augroup markidle
+  "autocmd CursorHold * normal mi
+  "autocmd CursorHoldI * normal mi "DISABLED while broken (shifts left)
+"augroup end
+
+" disable list mode when inserting stuff, otherwise keep it enabled, it's
+" useful (see also setting lcs)
+augroup listinsert
+  autocmd InsertEnter * set nolist
+  autocmd InsertLeave * set list
+augroup end
+" flag trailing spaces as error only when not inserting
+augroup tsperrorinsert
+  autocmd InsertEnter * match none /\s\+$/
+  autocmd InsertLeave * match Error /\s\+$/
+augroup end
+
+" this isn't windows, screw the F1->help key
+map  
+imap  
+vmap  
+
+" ignore Q -- Ex mode
+map Q 
+
+let mapleader = ';'
+let maplocalleader = ';'
+
+" replace fake tab chars with real ones
+map ft :%s,⇝·*,	,g:nohlsearch``
+" replace fake spaces with real ones
+map fs :%s,·, ,g:nohlsearch``
+
+function WhatHighlight()
+  echon 'hi<' . synIDattr(synID(line('.'),col('.'),1),'name') . '> '
+  echon 'trans<' . synIDattr(synID(line('.'),col('.'),0),'name') . '> '
+  echon 'lo<' . synIDattr(synIDtrans(synID(line('.'),col('.'),1)),'name') . '>'
+endfunction
+
+map sy :call WhatHighlight()
+
+map / :nohlsearch
+
+iab → ➬
+
+try
+  execute pathogen#infect()
+catch
+  "echo "Pathogen not installed"
+endtry
+
+let g:is_posix = 1
+
+let g:ycm_add_preview_to_completeopt="popup"
+let g:ycm_autoclose_preview_window_after_completion = 1
+
+let g:UltiSnipsExpandTrigger = ""
+let g:UltiSnipsJumpForwardTrigger = ""
+let g:UltiSnipsJumpBackwardTrigger = ""
+map  :UltiSnipsEdit
+imap  :UltiSnipsEdit
+
+let &cpo=s:cpo_save
+unlet s:cpo_save
diff --git a/.zsh/zshenv/parts.d/50-vim b/.zsh/zshenv/parts.d/50-vim
new file mode 100644
index 0000000..51d633e
--- /dev/null
+++ b/.zsh/zshenv/parts.d/50-vim
@@ -0,0 +1,15 @@
+#
+# set the editor variables to Vim
+#
+# Copyright © 1994–2017 martin f. krafft 
+# Released under the terms of the Artistic Licence 2.0
+#
+# Source repository: http://git.madduck.net/v/etc/zsh.git
+#
+
+if command -v vim >/dev/null; then
+  export EDITOR==vim
+  export VISUAL=$EDITOR
+fi
+
+# vim:ft=zsh